內核編譯,安裝

之內核linux-3.15.6.tar.xz爲例,在ubuntu14.04下進行。。linux

第一步:配置內核。ubuntu

1,對內核進行解壓。vim

      $tar  -Jxvf linux-3.15.6.tar.xz  (注意:J是大寫的)
架構

獲得文件夾linux-3.15.6ide

2,配置內核,因爲內核源碼是對多個計算機架構設計的,所以在編譯以前要對內核的功能進行選擇。spa

     配置內核完成後會在linux-3.15.6文件夾下造成.config文件,這個文件就是內核功能列表文件,/boot/config-3.15.6就是根據這個.config來的。在linux-3.15.6注意:本文的全部命令都是在此目錄下進行目錄下經常使用的配置方法有:架構設計

(1),$make  oldconfig
設計

這個命令使用存在的./.config的內容,使用該文件的內容做爲默認,而後把新內核增長的功能列出來讓用戶選擇,能夠大大簡化選擇功能的過程。源碼

(2),$make menuconfigit

(3),$make xconfig

(4),$make gconfig

(5),$make config

以上命令選擇之一,具體怎樣選擇功能,看其它的資料吧(絕對是個複雜的過程)。。


第二步:編譯內核

選擇(1)$make  vmlinux  (獲得的是未壓縮的內核)

選項(2)$make bzImage (獲得的是壓縮的內核)

實際的編譯內核經常使用的是:

$make  clean

$make  bzImage

上述兩個命令可能花費不少時間(make  -j4  bzImage能夠節約不少時間,4指的是cpu的核數)。

編譯完成後會在arch/x86/boot/bzImage發現內核該內核文件。。


第三步:編譯模塊

編譯模塊是由於 全部的功能若是都放在內核文件bzImage中就會致使內核比較大,因此把一些不經常使用的功能變成模塊,須要使用的時候自動加載。哪些功能須要編譯成模塊仍是在內核中,在配置內核的階段已經選擇過了。

編譯模塊的命令:

$make modules

會花很長的時間。。


第四步:安裝模塊

模塊文件是在/lib/modules/`uname -r` 下的,要把模塊文件安裝正確的位置,須要的命令

$make modules_install

就會在/lib/modules下找到3.15.6的文件夾。。說明模塊成功安裝了。。


第五步:安裝內核

系統的內核是在/boot/下的,且文件名通常未vmlinz-版本(vmlinz-3.15.6),所以須要將內核複製到目的目錄下:

$sudo cp /arch/x86/boot/bzImage   /boot/vmlinz-3.15.6

這樣內核就算安裝好了。。


第六步:保存.config文件:

$sudo cp  .config  /boot/config-3.15.6


第七步:創建與修改相關文件

1,創建inintrd.p_w_picpath-3.15.6文件

$mkinitramfs -o  initrd.p_w_picpath-3.15.6  3.15.6

$sudo cp initrd.p_w_picpath-3.15.6 /boot/

(注意:後面那個3.15.6是根據/boot/modules/下的模塊文件夾3.15.6來的)

2,修改grub2,文件/boot/grub/grub.cfg

$sudo vim /boot/grub/grub.cfg

加入有關 vmlinz和initrd的信息,具體能夠參照grub.cfg中的其它一些選項來寫。。


注意:用make編譯的時候能夠加參數 例如 make  -j4  bzImage;這樣能夠加快編譯的速度。。

相關文章
相關標籤/搜索