還是關於linux 內核編譯問題,再次轉貼 配置並編譯內核[更新到linux-2.6.34]

來源:http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=110461

配置並編譯內核

從linux-2.6.32開始可以使用make localmodconfig自動精簡內核, 菜鳥也能輕鬆精簡內核 到十幾MB
如果想手動精簡看3樓
:em06

最新NV驅動才能在2.6.34及其以後的內核上使用
ATI官方(受限)顯卡驅動無法在最新內核上運行

一、下載源代碼和編譯軟件準備
下載內核源代碼:http://www.kernel.org/
注意,點擊2.6.34內核的Full source版,即完整版。
如果你懶得去網站點鏈接,運行下列命令:

代碼:
cd ~/
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2



安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行xconfig等等和編譯內核相關的工具。安裝不了,請檢查/etc/apt/sources.list 文件。
有關命令:

代碼:
sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot



二、解壓源代碼並打上補丁
注意,很多教程上說應該解壓到 /usr/src, 但是實際上解壓到任何目錄上都可以。
/usr/src下面需要root權限反而容易出問題.

代碼:
tar jfx linux-2.6.34.tar.bz2 -C ~/linus


你要把'~/linus'改成你自己解壓linux-2.6.34.tar.bz2的目錄,
注意目錄容量要到達1.5G

現在,源代碼就在 ~/linus/linux-2.6.34/
進入源代碼的目錄,準備下一步的工作。後面都在這個目錄裏面進行。

代碼:
cd ~/linus/linux-2.6.34/



升級內核可以參考下面的附件(這項暫時沒用, 不用看)

附件:
.pdf [26.46 KiB]
被下載 1891 次



三、開始編譯前的準備工作。
首先,清理以前編譯時留下的臨時文件,如果是剛剛解開的包,據我的實踐,不需要執行這步。執行與否,自己考慮。
相關命令如下:

代碼:
make mrproper


很多教程上說把現在使用的內核的config拷貝過來參考,據我的實踐,也不需要,ubuntu還有debian會自動做這步。
不過ubntu的config存在很多問題, 建議改用附件中arch的2.6.23的config

附件:
kernel26-config.tar.xz [25.66 KiB]
被下載 63 次


裏面的config是32位的config, 裏面的config.x86_64是64位的config
把kernel26-config.tar.xz裏的解壓出來, 然後把config和config.x86_64複製到源代碼目錄, 然後如果你是32位系統
命令如下:

代碼:
cp config ./.config


如果你是64位系統

代碼:
cp config.x86_64 ./.config




四、開始配置內核選項。
從linux-2.6.32開始可以使用make localmodconfig自動精簡內核, 菜鳥也能輕鬆精簡內核 到十幾MB

首先自動精簡內核模塊(如果想手動精簡看3樓)[/size]
注意: 該方法會自動去掉一些從開機到當前沒用使用的模塊(主要是驅動模塊),
所以你可以使用一下你的攝像頭, 掛載一下iso文件.....
以保證需要的模塊不會被精簡掉, 否則使用新內核時會發現不能掛載iso文件, 不能使用某些外設等等.
命令如下:

代碼:
make localmodconfig



然後就可以直接跳到後面的第五段進行編譯了.

也可以再使用qconfig檢查一下
相關命令

代碼:
sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers  libqt3-mt#安裝xconfig依賴包,
make xconfig



上面這個qconfig是qt3的, 如果要用qt4的看後面的附2.

選項意義:圓中點是編譯成可以隨時加人的模塊(以下簡稱M),方塊中一勾是編譯進入內核(以下簡稱Y),空就是不要(簡稱N)。(如下圖)

附件:
Screenshot-4.png
Screenshot-4.png [ 191.05 KiB | 被瀏覽 31614 次 ]



1、在“General setup”裏面,有幾項普通用戶可以放心的去掉,
分別是:POSIX Message Queues 、Cpuset Support、Create deprecated sysfs files、Kernel->user space relay support (formerly relayfs)
2、在“ Timer frequency ”裏,默認是250Hz,最好選擇1000Hz以提高gui響應
3、其他的具體看3樓

全部設置完成,請保存設置。按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config
然後保存到當起目錄,文件名 .config
退出設置程序。

五、開始編譯內核。
ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。
相關命令:

代碼:
sudo make-kpkg clean #這條命令好像不要超級權限,很多資料上說要,不過這不是原則問題。
fakeroot make-kpkg --initrd --append-to-version=gould0.76 kernel_image


上述命令中的gould0.76大家用自己喜歡的字符代替.
輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。我的p4 1.7G機器用了30分鐘。

六、安裝內核
編譯完成就是安裝工作。編譯好的內核在上一層目錄。我的是linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb

代碼:
cd..
sudo dpk -i linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb


文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。
安裝完成後和老內核比較一下大小

代碼:
ls -l /boot/


注意:安裝完後先不要動linux-2.6.34的目錄,可能還要安裝驅動
七、重新啓動驗證新內核。
sudo reboot

八、如果。。。
grub菜單上選用老內核啓動機器,推倒重來

附1, 重啓後N卡驅動安裝
最新NV驅動才能在2.6.34內核上使用

讓系統在內核升級時自動安裝nvdia驅動的方法:http://forum.ubuntu.org.cn/viewtopic.php?t=141431&start=0&postdays=0&postorder=asc&highlight=
重啓後不能直接進入X11,先編譯nvidia驅動官方(先刪除舊的驅動)

代碼:
sudo sh NV******.run


如果顯示找不到內核源碼用

代碼:
sudo sh NV******.run --kernel-source-path=你編譯內核的目錄,

sudo sh NV******.run --kernel-source-path=/home/david/linus/linux-2.6.34



具體安裝方法見http://wiki.ubuntu.org.cn/Nvidia%E6%89%8B%E5%86%8C (看了wiki還解決不了N卡驅動樓下提問)

附2, 把qconfig改成qt4界面
下載下面的補丁

附件:
2900_xconfig-with-qt4.patch.tar.xz [5.48 KiB]
被下載 5 次


解壓到源碼目錄, 然後使用命令

代碼:
patch -p1 <  2900_xconfig-with-qt4.patch


如果之前編譯過xconfig, 先用下面的命令清除編譯殘留.

代碼:
sudo make-kpkg clean


然後需要安全qt4編譯環境, 不過我現在在arch下, 不清楚編譯依賴, 應該就是qt4的dev包, ls有清楚的請補充.
安裝好qt4編譯環境後, 編譯命令如下.

代碼:
make xconfig

 

附件:
Screenshot-Linux Kernel v2.6.34 Configuration-1.png
Screenshot-Linux Kernel v2.6.34 Configuration-1.png [ 41.66 KiB | 被瀏覽 1194 次 ]



ATI官方(受限)顯卡驅動不支持新內核

inter顯卡和用開源驅動(沒裝受限驅動)打開特效的ati顯卡編譯內核後不需要安裝驅動

drcom-1.4.8才支持linux-2.6.28以上內核

附件:
drcom-1.4.8.tar.gz [42.02 KiB]
被下載 181 次

http://forum.ubuntu.org.cn/viewtopic.php?t=115048&start=15&postdays=0&postorder=asc&highlight=


補充1:如果編譯內核後,只是希望修改某些模塊(M)選項,可以不用完全 重新編譯。
只需要執行
make xconfig
然後之添加或減少模塊(M)選項
然後(不要執行make mrproper和sudo make-kpkg clean),
直接執行編譯命令如
sudo make-kpkg -initrd --initrd --append-to-version=david0.68 kernel_image #整條命令要和上次編譯時一樣
make就會在原來編譯的基礎上,編譯新選上的模塊(如果有的話),而不會全部重新編譯。
這樣可以節省大量時間和能源,尤其是你電腦不是很快的話。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章