當前位置:編程學習大全網 - 源碼下載 - 怎樣使用新編譯的內核進行啟動

怎樣使用新編譯的內核進行啟動

step 1

準備:(1). 所需的內核源碼

step2:

切換到源碼所在的目錄,make distclean 命令:刪除生產的.o 和 .config 文件

編譯內核之前需要壹份配置文件,並在此基礎上修改,故借用本地/boot/config-3.13.0-24-generic?配置文件,命令: cp /boot/config-3.13.0-24-generic /home/yangqi/code/linux/linux-4.2.3/.config

該配置文件.config 即是對內核裁剪的配置,不用直接打開修改,系統提供menu界面修改,命令:make menuconfig (如果此命令報錯,說明需要裝ncurses庫,安裝命令:sudo apt-get install libncurses5-dev) (menu目錄如下:)

配置完,保存即可。

接下來,根據配置文件,編譯內核:? make bzImage V=1 (V=1 會顯示編譯的過程),編譯時間大概1個小時

編譯完內核,得到的bzImage會存放在linux-4.2.3/arch/x86_64 內,(x86_64為妳選擇的系統架構,配置的時候,妳選擇什麽架構,編譯好的內核文件就存放在對應的以架構命名的文件夾下)(下圖為:以架構命名的文件夾)

接下來,編譯模塊: make modules 大約需要2個小時

將編譯後的模塊文件註入到系統的/lib/modules 下,命令: make modules_install (成功如圖:? ,存放在4.2.3文件夾下)

接下來,制作init ramdisk文件 : RedHat 下使用mkinitrd init-4.2.3 4.2.3? + cp init4.2.3 /boot/init4.2.3 (init-4.2.3為自擬,後壹個參數4.2.3 必須與/lib/modules下的文件4.2.3壹致,這是內核的版本號);ubutun下使用mkinitramfs 4.2.3 -o /boot/init-4.2.3

然後,還需要將第6步編譯好的bzImage (linux-4.2.3/arch/x86_64/boot/下)拷貝到/boot/下:cp?/home/yangqi/code/linux/linux-4.2.3/arch/x86_64/boot? /root/vmlinux-4.2.3? (保證bzImage 和 initrd-4.2.3 都放在/boot/下)

最後,修改系統啟動配置文件:(RedHat下修改/etc/grub.conf或者/etc/lilo.conf)

ubuntu下修改/boot/grub/grub.cfg 文件,命令:sudo gedit /boot/grub/grub.cfg (如下圖修改:?menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cfd7566c-18ef-47bf-9b04-b285d20564ee' {

gfxmode $linux_gfx_mode

insmod gzio

insmod ntfs

set root='hd1,msdos1'

if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1? FA5CCE605CCE1773

else

search --no-floppy --fs-uuid --set=root FA5CCE605CCE1773

fi

loopback loop0 /ubuntu/disks/root.disk

set root=(loop0)

linux /boot/vmlinuz-3.13.0-24-generic root=UUID=FA5CCE605CCE1773 loop=/ubuntu/disks/root.disk rw rootflags=sync? quiet splash $vt_handoff

initrd /boot/initrd.img-3.13.0-24-generic

}

menuentry 'Ubuntu My Linux-4.2.3' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cfd7566c-18ef-47bf-9b04-b285d20564ee' {

gfxmode $linux_gfx_mode

insmod gzio

insmod ntfs

set root='hd1,msdos1'

if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1? FA5CCE605CCE1773

else

search --no-floppy --fs-uuid --set=root FA5CCE605CCE1773

fi

loopback loop0 /ubuntu/disks/root.disk

set root=(loop0)

linux/boot/vmlinux-4.2.3?root=UUID=FA5CCE605CCE1773 loop=/ubuntu/disks/root.disk rw rootflags=sync? quiet splash $vt_handoff

initrd /boot/initrd-4.2.3

}

修改說明:藍色為壹開始就存在的代碼,紅色是復制藍色的部分,並在此基礎之上加以修改的,修改的地方為綠色部分。(註:menuentry命令為在開機啟動時候,通過enter鍵鍵入那壹刻,觸發的命令)

12.? 最後,還需要將該文件set default="0"(舊)修改 set default="1"(新),應該表示的是系統數目。

13.? 保存完畢,重啟電腦就可以看到新添加的選項。 進入系統後,使用 uname -r 即可查看到新的內核4.2.3

  • 上一篇:全職獵人,大家為什麽不喜歡小傑?
  • 下一篇:在嵌入式開發平臺上使風扇的轉速從慢到快。使用C語言程序編寫實現上述過程,謝謝!!!
  • copyright 2024編程學習大全網