學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux內核編譯測試方法

Linux內核編譯測試方法

時間: 恒輝636 分享

Linux內核編譯測試方法

  Step 1:配置內核編譯選項。

  make menuconfig

  Optional Step :排除編譯結果文件(.o)等之間的依賴性。

  make mrproper

  Optional Step:清除歷史編譯結果。

  make clean

  Step 2:編譯內核。

  make bzImage #編譯內核

  make modules #編譯各內核模塊,如驅動等。

  make modules_install #將編譯好的模塊安裝至 /lib/modules/x.xx.x 目錄下。

  Step 3:生成初始盤鏡像 initrd.img。

  cd linux-source-x.xx.x/.config #復制配置文件至/boot目錄

  sudo cp .config /boot/config-x.xx.x

  #x.xx.x 對應 /lib/modules/x.xx.x 目錄。

  # -o 指示了鏡像的輸出目錄。

  sudo mkinitramfs -o /boot/initrd.img-x.xx.x x.xx.x

  Step 4:修改Grub配置。

  在/boot/grub/grub.cfg中復制一段已有的啟動項條目,將其中的內核相關文件地址修改至新內核相關文件所在位置。

  如:

  復制下段:

  menuentry'Ubuntu,Linux 3.2.0-36-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {

  recordfail

  gfxmode $linux_gfx_mode

  insmod gzio

  insmod part_msdos

  insmod ext2

  set root='(hd0,msdos1)'

  search --no-floppy --fs-uuid --set=root 7b4e922c-d943-4b84-9c75-4fdc57cf1a3f

  linux /boot/vmlinuz-3.2.0-36-generic-pae root=UUID=7b4e922c-d943-4b84-9c75-4fdc57cf1a3f ro quiet splash $vt_handoff

  initrd /boot/initrd.img-3.2.0-36-generic-pae

  }

  修改為:

  menuentry 'Test,Linux 3.7.4' --class ubuntu --class gnu-linux --class gnu --class os {

  recordfail

  gfxmode $linux_gfx_mode

  insmod gzio

  insmod part_msdos

  insmod ext2

  set root='(hd0,msdos1)'

  search --no-floppy --fs-uuid --set=root 7b4e922c-d943-4b84-9c75-4fdc57cf1a3f

  linux /boot/core/vmlinuz-3.7.4root=UUID=7b4e922c-d943-4b84-9c75-4fdc57cf1a3f ro quiet splash $vt_handoff

  initrd /boot/core/initrd.img-3.7.4

  }

  Step 5:測試

  在虛擬機啟動時按Esc,強制進入Grub啟動菜單。

  在菜單中選擇’Test,Linux 3.7.4,使用剛編譯的內核初始化系統(tǒng),查看啟動過程,看是否存在異常,如一切正常,則表明內核編譯正確,反之則需要繼續(xù)修改編譯選項。

168517