Linux內核的配置和編譯 linux
之因此要對內核進行配置,這是不少都是硬件的需求,和軟件的需求。就是選擇本身須要的,去掉本身不要的。 spa
配置內核的方法: 3d
上面有兩種配置方法,可是make config是幾乎不用的。他是一問一答的配置方法。很費時間。因此,都是採用make menuconfig來配置內核的。 blog
1.3內核配置結果 內存
內核配置一般在一個已有的配置文件基礎上,經過修改獲得新的配置文件,linux內核提供的一系列能夠供參考的內核配置文件,位於Arch/$cpu/configs. 源碼
2.1編譯內核: flash
make zImage: it
make bzImage: io
區別:在X86平臺,zImage只能用於小宇512K的內核。 編譯
若是須要瀏覽詳細的編譯信息,可以使用參數V=1。
便是:
make zImage V=1
make bzImage V=1
編譯好的內核位於arch/<cpu>/boot目錄下。
接下來是配置的簡單實例:
而後選擇倒數第二項Load an Alternate Configuration File:
選擇咱們準備好的配置文件:(放在該linux源碼的根目錄的):
而後保持退出。這樣,咱們就完成了一個配置文件的導入。接下來咱們就能夠在此基礎上進行修改,去掉咱們不要的,加上咱們想要的功能。最後,保存修改退出。這樣就配置好了一個內核。
而後執行make bzImage。進行內核編譯。
編譯好的內核文件存放在/arch/x86/boot/。如上所顯示的。
2.2編譯內核模塊
1.make modules.
2.make modules_install.
編譯內核模塊。
將編譯好的內核模塊,從內核源代碼目錄複製到/lib/modules下,爲打包作準備。
接下來就是編譯內核模塊:make modules。[M]表示的就是內核模塊。
通過差很少一個多鍾,內核模塊編譯完成:
編譯完成的內核模塊是散落在咱們linux內核的各個文件夾裏的。因此咱們須要把他們收集起來,打包。
在打包前咱們先看一下/lib/modules目錄:
這是原來系統的。
接着咱們執行:make modules_install這個命令:
開始安裝內核模塊:
這其實不是在安裝,是在將散落的內核模塊集中到咱們的/lib/modules目錄下面。
完成以後,咱們查看一下/lib/modules目錄:
咱們看到增長了一個目錄:2.6.39.裏面就是咱們編譯好的內核模塊。
接下來就是將它打包:
命令:
最後在/boot/的目錄下會有:initrd.img-2.6.39:
接着將內核拷貝到該目錄:
最後就是修改/boot/grub.conf/grub.cfg增長剛纔內核的啓動項。
保存退出,從新啓動。
登錄時選擇從咱們剛纔製做的內核啓動。登錄後,使用uname -r 命令查看內核的版本號:
這個就是咱們剛纔製做的內核。咱們看見,全部的文件資料都沒有變化。這是咱們更換的只是運行在內存的內核,而運行在硬盤/flash的文件系統沒有變化。
用戶空間的文件系統:在硬盤/flash.
內核:運行在內存。
4.清理內核
1.make clean.
2.make distclean.
咱們清理的就是在配置和編譯的時候產生的中間文件。Make clean是清除.o文件,Make distclean是清除全部生成的的中間文件。