編譯Linux內核

在源代碼的目錄下,有一個配置文件,.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下?硬件

相關文章
相關標籤/搜索