標籤:linux核心 編譯 核心引導啟動 編譯核心 linux添加引導啟動項
Linux源碼編譯的步驟,其實很簡單,主要是在配置哪些模組的功能開啟方面需要熟悉下,下面來看看,編譯Linux核心需要有哪些步驟:
1、需要去Linux官網上去下載一個核心版本的源碼,
https://www.kernel.org/
執行個體使用的是如下版本:
linux-2.6.32.65.tar.xz
2、需要解壓下載下來的壓縮包,解壓出來後會出現如下檔案夾
xz linux-2.6.32.65.tar.xz
tar xvf linux-2.6.32.65.tar
linux-2.6.32.65
3、進入到linux-2.6.32.65檔案目錄中。運行如下命令:
make menuconfig
註:此命令是用來配置需要編譯的功能項,linux核心提供了很多種配置的命令,本文只講述使用圖形介面來配置功能項的命令
運行命令後會出現圖形化的配置介面,按照提示,配置自己需要的功能項即可
4、使用如下命令編譯核心
make -j2 > /dev/null
註:-j2 -> 此選項是表示在編譯的過程中,衍生出2個作業同時進行(當cpu在做耗時操作時,可以保證充分利用多核處理器的效能)16核處理器 可以衍生出32個作業同時進行,即-j32
> /dev/null -> 此選項是用來處理編譯過程中的編譯資訊。如此配置的意思是將編譯過程中的無用的資訊重新導向到無返回值的黑洞,錯誤資訊會輸出到控制台
以上幾步結束,linux核心的編譯也就結束了
下面是產生引導鏡像的操作:
5、使用make modules_install 命令,既可在/boot/目錄下產生如下引導檔案:
initramfs-2.6.32.65.img
vmlinuz-2.6.32.65
System.map-2.6.32.65 -> 記憶體位址與函數的映射關係
6、修改Linux的引導檔案 /etc/grub.conf
仿照模板修改。
註:解釋下grup.conf檔案中的選項的意思
default=X為預設啟動的系統,0為排在第一個的系統,以此類推。
timeout=X為Grub菜單停留的時間,單位為秒
title XXX,XXX為標題,也就是你要引導的作業系統的名字,可以自己修改
root(hdX,Y)X和Y都代表一個數值,X是linux的根分區在哪個硬碟上。如你只有一個硬碟。那就是hd0。如果你的linux的一個發行版是安裝在第
二個硬碟,這個X,就是1。Y是代表您所安裝的linux是在哪個區。這個數值有點不同,不太好說清楚。舉個例子來說。比如我把Mandrake安裝到第
二塊硬碟的第二個分區,也就是hdb5了。那他的root (hdX,Y),就應該寫為root(hd1,4),也就是說Y=hdaZ或hdbZ中的Z減去1。
kernel (hdX,Y)/boot/vmlinuz root=/dev/hdaZ和initrd (hdX,Y)/boot/initrd.img就是要引導哪個硬碟分區的映像和initrd檔案,一定要寫正確XY的數值,不然無法引導系統
以上步驟結束後,重啟電腦,在grub介面按下enter鍵。你就可以看到你添加的title引導項了。選擇你的引導項,如果核心的功能編譯沒有問題的話,應該就會啟動你的系統了。
Linux核心編譯以及核心引導啟動