歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> openSUSE 11.4編譯內核2.6.38.2筆記

openSUSE 11.4編譯內核2.6.38.2筆記

日期:2017/2/28 16:15:02   编辑:Linux教程

下面說說我編譯內核2.6.38.2的過程,因為中文Wiki有些年代了,所以我搜羅了一些資料,然後才成功完成的編譯工作。

1.從http://www.kernel.org/ 下載最新的穩定(stable)源碼包(Full source).

2.解壓縮到任意一個目錄(所在分區可用空間最好有10G左右),不需要放在/usr/src下,不過放在/usr/src下比較方便也符合傳統做法,這裡我是解壓縮到/home/will/下,即源碼存在於/home/will/linux-2.6.38.2/下。

3.打開一個終端:

cd /home/will/linux-2.6.38.2

cp /boot/config-strings .config //這裡的config-strings指的輸入config後用tab鍵自動補全後的結果

make menuconfig

這個時候將進入內核編譯前的配置階段,按照自己的硬件信息進行常規的優化,縮小編譯後的內核尺寸。按空格鍵進行選擇/反選。關於內核config配置的優化,網上一搜就是一大堆,這裡仁者見仁,智者見智的事情了。配置完成後一定記得要保存config!(保存為 .config )

4.

make -j4

我是四核CPU,所以用-j4的參數來並行編譯,如果你是單核就不用加參數,而雙核CPU就用-j2,類似,六核CPU就用-j6參數……

其實這裡一般可以直接就用make的,編譯器會自動進行並行編譯。

編譯時間很長,可能要一個小時左右。

5.編譯完成後,就進行相關的安裝步驟:

su

make modules_install //安裝模塊(配置中標記為M的選項)到系統根目錄。

make install //安裝vmlinuz,initrd和system.map以及完成一些必要的操作,openSUSE下編譯內核也挺方便的,:-)

make headers_install //安裝內核的頭文件,如果你從不編譯和內核有關的軟件的話可以不安裝,但是一般還是建議做這一步的。

6.修改好grub的引導文件,啟用新內核!(可以使用update-grub或者update-grub2自動更新grub的配置文件)

修改好內核源碼目錄:

rm -rf /usr/src/linux

ln -s /home/will/linux-2.6.38.2 /usr/src/linux

重啟進入新內核,uname -r確認使用的是新內核,確認系統正常,硬件工作正常後,可以開始進行下面的清理工作了。

7.cd進入編譯內核的目錄後:

make clean

cd /lib/modules/

sudo rm -rf oldkernel //oldkernel指舊內核的Modules文件夾

cd /boot/

sudo rm -f *-old //*-old代指所有舊內核的文件,如vmlinuz和initrd等

8.使用新內核後,閉源的顯卡驅動必須要重新手動安裝哦~從ATI或者nvidia官網下載最新的驅動資料進行安裝吧。我還是使用的KMS開源驅動,現在開源驅動性能已經接近閉源驅動了,www.linuxidc.com反正桌面流暢,正常播放1080P的MKV影片,我也沒必要去安裝閉源驅動……

曬一曬我編譯完成內核2.6.38.2的截圖:

內核2.6.38傳說是有200行雞血補丁的,重啟後確實感覺桌面性能提升不少啊!當然,你可以試著打上BFS補丁,可能獲得更高速度!

我編譯出來的initrd居然有20MB!不過vmlinu比原來的要小一點點,4.1MB……好吧,我承認我沒有認真的配置config文件。如果童鞋們有耐心的話,推薦弄清楚自己的硬件信息,不要將不必要的硬件驅動編譯進入模塊(M)或者內核(*)了,這樣不僅能縮小內核尺寸,還能加快系統速度。

P.S. 我沒有找到apparmor的補丁,而且我在編譯內核之前就刪除了apparmor的相關軟件包,開機時候提示了apparmor的錯誤信息,所以如果需要保留Apparmor功能的話,可能需要打相關補丁,否則Apparmor可能會工作不正常。

2011-04-06後記:我打上了BFS補丁,並且再次調整了config文件,刪掉了更多的壓根用不上的模塊,initrd縮小到17MB了,但是借助BFS補丁的強大威力,系統速度相當快!本來2.6.38就傳言是打了雞血的內核,加上一直有雞血補丁的盛名的BFS,啧啧……不說了。。。

Copyright © Linux教程網 All Rights Reserved