2009年2月4日 星期三

編譯 Kernel for 2.6.xxx

編譯 Kernel for 2.6.xxx ( 感謝Bruce、Ryan 提供 )

下戴source code:
  1. 可到 kernel.org 下戴
  2. 下戴 debian/ubuntu 自行的 ( apt-get source linux-headers-`uname -r` )
  3. apt-get install linux-source-版本 (下載路徑 /usr/src)
先行安裝:
  1. make
  2. libncurses5-dev
編譯: (root)
  1. cd /usr/src/linux-2.6.xx # ( 切到下戴的kernel路徑就對了 )
  2. make mrproper ( make defconfig <--- 會幫你勾選 i386 系列 (也可以不用作這一步)  )
  3. make menuconfig
  4. make -j2 <--- 分配工作數量
  5. make install
  6. make modules_install   <-- 產生 /lib/modules/2.6.xx 目錄檔案
  7. /boot # mkinitramfs -o initrd-2.6.xx /lib/modules/2.6.xx  <--  產生initrd檔案 
    BTW:
    fadora產生initrd檔案:  mkinitrd initrd-2.6.xx 2.6.xx

p.s: ( 感謝 Ryan 提供 )
可以使用$ make -j
其中n = 2 * cpu 的個数
對於一般的單CPU系统,通常用 $ make -j2
為编譯過程分配2個工作數量,這樣在進行磁碟I/O時候,CPU就不會空閒了。
一般這個選项可以将速度提高10%左右


p.s:指令 功能
  • make mrproper 清除之前編譯核心所遺留下的設定檔案
  • make menuconfig 設定要編譯進核心的功能以及模組
  • make clean 清除上一版本編輯過程中所產生的檔案
  • make 根據先前的設定來編譯核心
  • make modules 把module的原始碼轉成*.o檔
  • make modules_install 將模組複製到 /lib/modules/(kernel_version)/
  • make install 自動複製核心檔案及更改開機設定檔
  • depmod -a 建立模組關係

沒有留言:

張貼留言