系統:KUbuntu 10.10(Ubuntu、Lubuntu、Xubuntu都一樣)
我古老的硬件:P4 2.0A,QDI 845E,2 x 1G DDR,GF FX5200,40G PATA硬盤x2,無光驅、軟驅
1、下載內核源碼包,linux-2.6.37.tar.bz2
代碼:mkdir kernel
cd kernel
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2
2、下載傳說中的BFS補丁,2.6.37-sched-bfs-363.patch
代碼:wget http://ck.kolivas.org/patches/bfs/2.6.37/2.6.37-sched-bfs-363.patch
3、安裝編譯工具
代碼:sudo apt-get install build-essential kernel-package libncurses5-dev
4、解壓源碼,打上BFS補丁
代碼:tar -jxf linux-2.6.37.tar.bz2
cd linux-2.6.37
patch -p1 < ../2.6.37-sched-bfs-363.patch
注:解壓到任何目錄都可以,不一定是教程中常用的/usr/src,但可用空間要達到2.5G
5、確保源代碼目錄是“干淨的”,可省略
代碼:make mrproper
6、載入當前的內核模塊配置,將為接下來的配置節約大量時間
代碼:make localmodconfig
期間會提示未配置過的項目(新功能)的選擇,不明白的輸入"?"可以看說明。
提示(N/y/?)時N掉即可(絕大多數);
提示(Y/n/?) 時最好先看一下,比如第一個問題“是否開啟BFS”當然要選Y;
有些不確定的可以選"m"將其編譯為模塊,但並不是所有選項都有"m"可選;還有些選項會提示輸入數值,一般會提供默認值作參考。
7、開始詳細配置
代碼:make menuconfig
打BFS補丁,這幾個是必須注意的
* Processor type and features -> Tickless System (Dynamic Ticks) 留空(不選)
* Processor type and features -> Preemption Model -> 選 Preemptible Kernel (Low-Latency Desktop)
* Processor type and features -> Timer frequency -> 選1000Hz
(這裡我覺得選300Hz也可以,體會不出和1000Hz的差別,而1000Hz會讓CPU發熱量更大一些,對於筆記本而言則是耗電量明顯增加。反正用的是老機器,願不願意折騰就看個人了)
第一次我精簡得比較凶,連SCSI驅動都去掉了,直接導致提示無法進系統(找不到UUID xxxx/找不到sda),這才想起來Linux的磁盤策略,添加回來後重新編譯一切正常。
對於我的古董機,我把多核支持、SATA、PCI-E,以及大量的驅動去掉了,編譯後header和image的deb包加起來不到11M。感覺還是有精簡的空間。
8、清理
代碼:sudo make-kpkg clean
9、編譯
代碼:sudo make-kpkg --initrd --append-to-version -abc kernel_image kernel_headers
"-abc"換成你自己的
編譯之前最好把不用的程序通通關掉,乃至注銷,按Ctrl+Alt+F1進入命令行界面(Alt+F7回到圖形界面)
可以使用fakeroot代替sudo,我比較懶,直接用sudo了
在我的機器上,編譯耗時約一小時。
10、安裝
代碼:cd ../
sudo dpkg -i *.deb
11、安裝完畢,重啟
代碼:sudo reboot
與其它教程中所述不同的是,按上述步驟Ubuntu 10.10會自動mkinitramfs並update-grub,所以直接重啟即可使用
GRUB引導時默認使用新內核,因此在遠程機器上也可輕松操作。
跟原來的“通用”內核比,個人感覺,GNOME快了,剛好超過了一個感覺上的臨界點,一下子舒適了許多;KDE也快了不少,但是開了特效依然有點卡;XFCE和LXDE就不用說了,本來就很快。