在源代碼的目錄下,有一個配置文件,.config文件,可使用默認的,也可使用
命令清除,而後從新配置內文配置文件,把/boot/下的配置文件拿來修改使用,或者在源代碼下/arch/平臺下ide
選擇相應的配置文件,而後再這個基礎上來配置本身的內核it
一、make distclean 清除一些臨時文件,也可使用make clean和make mrproper
distclean是完全的清除,就是清除的更完全,其次是mrproper
二、make menuconfig 固然還有make config命令menuconfig是基於圖形界面的配置
使用起來更方便
在配置裏面選擇CPU、文件系統、硬件模塊等 內核的配置選項能夠另外參考
配置項前面的選項,經過空格鍵選擇爲M和*或者 空 的不一樣
選擇爲M A.C會變成A.O ,源代碼會有編譯的階段,可是不在向下鏈接,造成了模塊文件
選擇爲* A.C會變成A.O 在生成A.O後還會繼續鏈接等,最後造成zImag,e
選擇爲 空 A.C不會發生變化,源代碼沒有編譯的階段編譯
在/boot目錄下的config-2.6.18...文件時當前運行的系統的配置文件,咱們能夠參考
改文件來編譯內核
固然內核源代碼中也有配置參考文件,在arch/下相應的體系結構下面,咱們能夠看到config文件
咱們能夠拷貝他們到源代碼目錄下,而後參考配置
三、編譯內核模塊 make modules
編譯完模塊後,安裝內核make modules_install,其實它的做用是把內核模塊從內核源代碼目錄
copy到/lib/modules/下
四、製做init ramdisk
命令 makeinitrd initrd-2.6.18 2.6.18(後面的版本號根據具體本身內核的版本狀況來寫,是哪一個版本的內核,就寫那個)class
完了後會在當前目錄下生成initrd-2.6.18文件,這個就是ramdisk文件基礎
五、安裝內核版本
(1)把內核拷貝到/boot/目錄下,
(2)把ramdisk文件拷貝到/boot目錄下
(3)修改/etc/grub.conf文件,複製grub.conf文件最後幾行,而後拷貝到最後幾行
而後根據實際狀況修改 title後面的信息,kenerl /***ro root=/....只能修改**中的位置module
重啓,咱們發現grub下多了一個選擇,第二個選擇就是咱們剛編譯過的內核配置
只是不明白本身編譯的新內核,爲何模塊要copy到舊的文件系統/lib/module下?硬件