在學習Linux內核移植部分,今天先在虛擬機上安裝linux-3.0.8上做個雙系統。
內核配置:
我們一般是找一個配置好的內核配置文件.config來作為配置參考
步驟
1.make clean/ make mrproper/make distclean清除以前對內核所做的工作
2.選擇目標系統的的軟硬件配置情況,如CPU類型,網卡型號,所支持的網絡協議等
本文為X86相關的
3.配置方式選擇 /make menuconfig(圖形化和字符下都可以 推薦)/make config/mkae oldconfig/make xconfig
完成後會生成一個隱藏的配置文件.config,保存了我們的配置信息。
——————————————————————
make menuconfig方法:
1,使用方向鍵來上下切換
2,使用enter進入下一層菜單 使用空格切換編譯選擇(y:* ,m:m ,n:空)h:help,esc退回上一層菜單。(*編譯並連接 m只編譯不連接)
——————————————————————
內核編譯
輸入命令:make bzlmage
編譯好的內核在(arch/<cpu>/boot/) cpu為你選的型號 如:arm、X86
內核模塊編譯
#make modules
安裝內核模塊
#make modules_install
/**安裝完成後,將編譯好的內核模塊從內核源碼目錄拷貝至/lib/modules/3.0.8**/
(中間出了一個問題,呵呵,後來解決了)
制作init rmdisk
#mkinitrd initrd-3.0.8 3.08 (3.0.8與上一步新建目錄一致)
完成本操作後,在當前目錄下會生成initrd-3.0.8
安裝內核
因為linux啟動時,會從/boot目錄下尋找內核文件與 init rmdisk,所以要將內核和init rmdisk拷貝
到/boot下
下面是我的內核 和 init rmdisk的原位置,拷貝過程如下:
#cp linux-3.0.8/arch/x86/boot/bzImage /boot/linux-3.0.8/(vmlinuz-3.0.8可任意取)
#cp linux-3.0.8/initrd-3.0.8 /boot
——————————————————————
注意:
linux-3.0.8/為內核
initrd-3.0.8為init rmdisk
——————————————————————
修改grub
是為了讓grub在啟動時能提供一項我們自己制作的linux內核的選項,需要修改grub的配置文件:
#vi /etc/grub.config
——————————————————————
title my linux(3.0.8)
root (hd0,0)
kernel/vilinuz-3.0.8 ro root=LABEL=/rhgb quiet
initrd /initrd-3.0.8
_____________________________________________________
重啟linux
reboot