Ubuntu內核(kernel)編譯

http://wiki.debian.org.hk/w/Compile_Linux_Kernel_as_deb

http://www.howtoforge.com/kernel_compilation_ubuntu

有wiki教學

設定編譯選項提示

一般要留意的選項

  • Processor type and features
    • Symmetric multi-processing support (SMP) - 如果你的電腦有多過一個微處理器或多核心(Dual/Quad Core),請開啟這選項。
    • Processor family - 選擇適合你的微處理器家族,你可以看看檔案/proc/cpuinfo查閱你現時的微處理器型號。
      • 386 (M386) - Intel 80386系列及AMD, Cyrix的相容微處理器。
      • 486 (M486) - Intel 80486系列及AMD, Cyrix, IBM的相容微處理器。
      • 586/K5/5x86/6x86/6x86MX (M586) - 非Intel的586/686微處理器,包括AMD K5、Cyrix 5x86, 6x86及6x86MX。
      • Pentium-Classic (M586TSC) - 原始Intel Pentium
      • Pentium-MMX (M586MMX) - 支援MMX圖形及多媒體擴充指令的Intel Pentium
      • Pentium-Pro (M686) - Intel Pentium Pro
      • Pentium-II/Celeron(pre-Coppermine) (MPENTIUMII) - Intel Pentium II 及 pre-Coppermine Celeron
      • Pentium-III/Celeron(Coppermine)/Pentium-III Xeon (MPENTIUMIII) - Intel Pentium III、Coppermine Celeron 及Intel Pentium-III Xeon
      • Pentium M (MPENTIUMM) - Intel Pentium III Mobile (不是 Pentium 4 Mobile)
      • Pentium-4/Celeron(P4-Based)/Pentium-4 M/Xeon (MPENTIUM4) - Intel Pentium 4,包括 Celeron 、 Xeon及Mobile
      • K6/K6-II/K6-III (MK6) - AMD K6系列
      • Athlon/Duron/K7 (MK7) - AMD Athlon K7系列
      • Opteron/Athlon64/Hammer/K8 (MK8) - AMD Opteron 或 Athlon64 Hammer系列
      • Crusoe (MCRUSOE) - Transmeta Crusoe
      • Efficeon (MEFFICEON) - Transmeta Efficeon
      • Winchip-C6 (MWINCHIPC6) - IDT Winchip C6
      • Winchip-2 (MWINCHIP2) - IDT Winchip-2
      • Winchip-2A/Winchip-3 (MWINCHIP3D) - IDT Winchip-2A或3
      • GeodeGX1 (MGEODEGX1) - Geode GX1 (Cyrix MediaGX)
      • GeodeGX/LX (MGEODE_LX) - AMD Geode GX 或 LX
      • CyrixIII/VIA-C3 (MCYRIXIII) - Cyrix III 或 C3
      • VIA C3 (Nehemiah) (MVIAC3_2) - VIC C3 "Nehemiah"
    • Maximum number of CPUs (2-255) - 填入你電腦的CPU數量。例如Duo Core填「2」。CPU最大數量每多一就會令Linux核心大約八千左右位元組。
    • High Memory Support - 如果你的電腦不會擁有1GB或以上的記憶體,請選off。如記憶體大小界符1GB和4GB之間,選4GB。如果多於4GB,請選64GB。
  • Device Drivers -> ATA/ATAPI/MFM/RLL support -> Include IDE/ATA-2 DISK support (BLK_DEV_IDEDISK) - 建議開啟。不開啟這選項,你就使用不到IDE硬盤,連開動Linux都不能。(當然,用SCSI硬盤的朋友可以不開啟這選項。)
  • Device Drive -> Block Devices -> Low Performance USB Block Driver (BLK_DEV_UB) - 建議關閉。不要開啟這選項或編譯成為模組。這選項會開啟效能較低的USB驅動器(ub)。[1] [2] (2.6.9 或以後)

如果你使用 nVidia 顯示咭,請關閉下列選項:

  • Graphics Support -> nVidia Riva support (FB_RIVA)
  • Kernel Hacking -> Use 4Kb for kernel stacks instead of 8Kb (4KSTACKS)
  • Processor Type and Features -> Local APIC support on uniprocessors (X86_UP_APIC)
並請參考 Andrew's Debian-nVidia HOWTO 加入有關 patch 才編譯。

設定桌面電腦(Desktop)要留意的選項

  • Preemption Model
    • Preemption (Low-Latency Desktop) (PREEMPT) - 開啟這選項可以令多媒體播放更流暢,是桌面電腦必用的選項。
    • Preempt The Big Kernel Lock (PREEMPT_BKL) - 建議開啟。
    • Timer frequency (CONFIG_HZ_250 或者 CONFIG_HZ_1000) - 對桌面電腦來說,選250Hz而可以令多媒體播放很流暢,但如果你對這方便要求高,可以考慮使用1000Hz,但留意電量較高。
  • Block Layer -> IO Schedulers - 建議使用CFQ I/O排程器。這是決定使用硬碟存取排程器。在桌面平代方面,CFQ的表現較平均。

設定筆記簿型電腦(Laptop/Notebook)要留意的選項

  • 留意上面設定桌面電腦(Desktop)要留意的選項
    • Timer frequency (CONFIG_HZ_250) - 對筆記簿型電腦來說,選250Hz而可以令多媒體播放很流暢,而1000Hz會令電池壽命大大縮短。

設定伺服器(Server)要留意的選項

  • Preemption Model
    • Preemptible Kernel (PREEMPT) - 建議關閉。開啟這選項可以令多媒體播放更流暢,但如果你是用來作伺服器之用,這選項可能會降低系統效能,請把此選項關掉。
    • No Forced Preemption (Server) (PREEMPT_NONE) - 建議選用。
    • Preempt The Big Kernel Lock (PREEMPT_BKL) - 建議關閉。
    • Timer frequency (CONFIG_HZ_100) - 建議使用100Hz。
  • Block Layer
    • Support for Large Block Devices (LBD) - 如要存取超過2TB大小的儲存設備(如硬碟、RAID或硬碟映像檔等),就需要開啟選項。
    • Support for Large Single Files (LSF) - 如要處理超過2TB大小的檔案,就需要開啟選項。
    • IO Schedulers - 決定使用硬碟存取排程器。如果你的伺服器是用來跑資料庫(Database),請使用deadline排程器。

大家都要畢業了

我卻還留在這...
又要跟以前重考一樣了...
不過這次卻還有學分沒修完
變得兩邊都要顧....看來要比以前更拼命了
到數一年