歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> OpenSUSE 11.3下編譯Linux內核

OpenSUSE 11.3下編譯Linux內核

日期:2017/2/28 16:20:36   编辑:Linux內核
很久之前就想寫篇關於編譯Linux內核的文章了,一直拖到了現在。好吧廢話少說,下面進入主題。 一、准備工作   1,編譯Linux內核首先得有內核代碼吧。去這裡下最新穩定版源代碼吧。我這裡使用的版本是2.6.37.2   2,gcc編譯工具,如果沒有裝請先去這裡吧。
二、配置 拿到內核源代碼後一般解壓到 “/usr/src/”目錄下,以我使用的linux-2.6.37.2.tar.bz2為例:
tar vxjf linux-2.6.37.2.tar.bz2
su
mv linux-2.6.37.2 /usr/src/
我這裡沒有打任何內核補丁,直接進入內核目錄開始進行配置工作:
cd /usr/src/linux-2.6.37.2
下面就進入正式的編譯階段了,一般第一步是清理源代碼(我們是從官方下載的代碼,應該是干淨的),這樣做的目的主要是清楚之前的配置和一些之前編譯生成的文件等等。這裡有3個命令可以使用: make clean  清除大部分的生成文件,但是保留配置文件 make mrproper 清除全部的生成文件和配置文件 make distclean 清除全部的生成文件、配置文件、編輯器備份文件和路徑文件。是清除最徹底的一個,推薦使用。
make distclean

清理完內核代碼以後,開始配置工作。配置命令可用的一般是下面 make config 基於文本交互模式,即會一項一項的問你這個選擇什麼...當然我們不推薦使用這個命令。 make menuconfig 基於文本的菜單模式,這裡會顯示菜單進行你選擇配置如下圖: 這裡每個選項前面有個[]使用空格鍵可以在[],[*],[M]之間進行選擇,這裡說明一下區別,如一項選擇[]則有關功能將不會被編譯,選擇[*]則相關功能會被編譯為.o文件之後被編譯進內核bImage,如被選擇[M]則只會被編譯為.o文件,不會被編譯進內核,這些就是內核模塊,可以手動加載。推薦使用
make oldconfig 這個命令使用已有的配置文件,但是會詢問新增的配置選項。 make xconfig 圖形化的配置,但是需要安裝qt。推薦使用 我們常用的就是make menuconfig 以及make xconfig。這裡我們使用make menuconfig,由於我這裡是編譯本機使用的內核,所以我只須把現存內核(2.6.34)中的配置文件(/boot/config-2.6.34-desktop)拷貝過來就行了。一般情況下我們是不需要每項都手動配置的,因為裡面一般都有內核默認的選項。
cp /boot/config-2.6.34-desktop /usr/src/linux-2.6.37.2/.config
make menuconfig
配置菜單打開後如果沒有需要改動的就直接選擇Exit,這樣我們的內核就配置好了。下面就開始編譯了。
三、編譯內核   一切就緒下面我們就下命令開始編譯內核吧:
make bzImage
這裡大約需要10分鐘,耐心等待吧。 內核編譯完成後,下面就要編譯內核模塊了:
make modules
這個時間比較長,你可以去沖咖啡看電視了... 模塊編譯完成後我們就要安裝了,首先安裝內核模塊:
make modules_install
這個很快,因為其實就是一個復制的動作。
下面我們安裝內核:
make install
到此已經基本完成了。至於修改啟動項神馬的,SUSE下是安裝內核後就直接修改好了(不信可以打開/boot/grub/menu.lst文件看看就行了),至於其它的版本不是很清楚,沒有驗證過。重新啟動後就可以從新內核進入了,不過顯卡驅動需要重新安裝一下。 在編譯內核前打內核補丁的方法,以及編譯完成後的清理工作請參考這裡。
Copyright © Linux教程網 All Rights Reserved