HowTo: Compile BFS Kernel

BFS 是什麼?
請參考LinuxToy

如何為核心打patchPatch
1.從The Linux Kernel Archives下載最新的核心(2.6.31)
2.從這裡
下載最新的BFS Patch
3.解壓縮

tar -jxf linux-2.6.31.tar.bz

4.打入Patch(假設我下載的kernel和patch放在同一層資料夾)

cd linux-2.6.31
patch -p1 < ../2.6.31-sched-bfs-300.patch

5.將原始碼移到/usr/src(這個步驟也可以不要,只是如果利用make-kpkg指令建立deb的話,他會建立一個符號連結到原始碼的資料夾,所以假如你編好後刪掉原始碼資料夾,就找不到原始碼囉~)

sudo mv linux-2.6.31 /usr/src


設定編譯參數
1.建議使用原本distro的設定就好

sudo cp /boot/config-$version /usr/src/linux-2.6.31/.config

2.安裝相依套件

sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot wget bzip2

3.menuconfig

make menuconfig

這時會出現一個設定畫面,如果要套用distro的設定:將游標移到最下面Load an Alternate Configuration File,接著他會要求你輸入檔名,直接使用剛剛複製的.config就可以了

接下來設定是選擇性的,以下操作可以使桌面延遲減到最低,但會降低穩定性。要不要就看你自己囉,是說我到現在沒出過問題~
* 到Processor type and features -> Tickless System (Dynamic Ticks) 對他按空白鍵直到變成空白
* 到Processor type and features -> Preemption Model (Preemptible Kernel(Low-Latency Desktop)) -> 選擇 Preemptible Kernel (Low-Latency Desktop)
* 到Processor type and features -> Timer frequency -> 選擇1000Hz

4.編譯核心
接下來呢有兩種方式
(1) 如果是debian系的話可以利用kernel-package裡的功能,還可以自動生成deb安裝包並幫你加入開機選單,很方便喔~

sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd kernel_image kernel_headers

然後就是等待啦...要很久呢

(2) 傳統的方法,所有distro適用

sudo make clean
sudo make bzImage
sudo make modules

然後等待...

5.安裝核心
(1) 使用make-kpkg
產生的deb檔會出現在上層目錄,如果你是在/usr/src/linux-2.6.31編譯核心的話,就會出現在/usr/src

cd ../
sudo dpkg -i *.deb

就安裝好核心了,連GRUB選單都幫你處理好了呢~真方便~

(2) 傳統方法

sudo cp arch/x86/boot/bzImage /boot
sudo make modules_install
sudo update-initramfs -c -k 2.6.31-bfs300

然後記得要自己加入開機選單

6.完成啦~

留言

這個網誌中的熱門文章

決定了!!!

P.S. I Love You

Tips: PPTP client on Openwrt