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引導項了。選擇你的引導項,如果內核的功能編譯沒有問題的話,應該就會啓動你的系統了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章