3.1Linux內核的配置和編譯

Linux內核的配置和編譯 linux

之因此要對內核進行配置,這是不少都是硬件的需求,和軟件的需求。就是選擇本身須要的,去掉本身不要的。 spa

配置內核的方法: 3d

  1. make config:基於文本模式的交互式配置。
  2. make menuconfig:基於文本模式的菜單型配置。

 

上面有兩種配置方法,可是make config是幾乎不用的。他是一問一答的配置方法。很費時間。因此,都是採用make menuconfig來配置內核的。 blog

1.3內核配置結果 內存

內核配置一般在一個已有的配置文件基礎上,經過修改獲得新的配置文件,linux內核提供的一系列能夠供參考的內核配置文件,位於Arch/$cpu/configs. 源碼

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. 內核編譯:
    1. 編譯內核。
    2. 編譯內核模塊
    3. 製做ramdisk。

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目錄下。

 

 

 

接下來是配置的簡單實例:

  1. 運行make menuconfig:

    而後選擇倒數第二項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是清除全部生成的的中間文件。

相關文章
相關標籤/搜索