Linux核心(二)

來源:互聯網
上載者:User

核心的配置與編譯

Linux的核心是可以配置的,就是說可以根據使用者的需要進行配置,正是因為Linux的核心可以自由的配置,自由的裁剪,減小核心的體積,才使得Linux的核心可以移植到arm平台上去。

Linux核心配置具體步驟如下:

1.  清除臨時檔案,中間檔案和設定檔(為什麼要清除呢?在得到一個核心以後會有許多垃圾檔案需要清除)

$make clean(刪除垃圾檔案 保留設定檔)

$make mrproper(刪除垃圾檔案 刪除設定檔)

$make distclean(刪除垃圾檔案 刪除設定檔 刪除補丁檔案)

2.  確定目標系統硬體設定情況,比如cpu的類型,網卡型號,所需支援的網路通訊協定,修改Makefile

3.  使用如下命令之一配置核心

$make conifg 基於文字模式的互動式配置(執行之後會在配置的過程中通過提問的方式來配置)

$make menuconfig 基於文字模式的菜單配置

$make oldconfig 使用已有的設定檔(.config)與make config的區別只做表明為new的配置項

$make xconfig圖形化配置選項(需要安裝圖形化介面)

 有一些預設的符號其含義如下:
       y:載入
       n:不載入
       m:作為模組載入 

使用完以上congfig命令之後,會自動產生一個.config檔案,檔案的資訊儲存了核心配置的結果。

要配置arm的核心,可以根據arch中的預設配置在此基礎上修改。

root=/dev/nfs rw nfsroot=192.168.1.100:/source/rootfs ip=192.168.1.200 init=/linuxrc console=ttySAC0,115200

root 指定根檔案系統

rw/ro 指定掛載檔案系統的屬性,讀寫、唯讀

nfsroot 指定nfs服務掛載點,<nfs server ip>:<export directory>

ip 指定目標板ip地址

init 指定核心初始化完成後調用的使用者空間程式,預設為/sbin/init

console 指定列印資訊的終端

mem 指定記憶體大小

initrd 指定ramdisk引導時根檔案系統所在記憶體位置和大小

 

4.  編譯核心

make zimage

make bzimage(big的意思)

區別:在X86平台,Zimage只能用於小於512k的核心

編譯好的核心位於arch/cpu/boot目錄下

5.  編譯核心模組

make modules

6.  安裝核心模組

make modules_install(將編譯好的核心模組從核心原始碼目錄copy到/lib/modules下)

7. 製作 init ramdisk

mkinitrd  initrd-$version  $version例:mkinitrd  initrd-2.6.29  2.6.29      $version 可以通過查詢/lib/modules/下的目錄得到,看上一步的命令是否有在/lib/modules/下產生2.6.29/目錄。該命令執行後會在核心根目錄下產生"initrd-2.6.29"檔案。

       init ramdisk的作用:提供一種讓核心可以簡單使用ramdisk的能力。這些能力包括:格式化一個ramdisk;負載檔案系統內容到ramdisk;將ramdisk作為根檔案系統。

      8.核心安裝       由於Linux系統啟動時,會從/boot目錄下來尋找核心檔案與init ramdisk,所以需要將核心檔案和init ramdisk拷貝到/boot目錄。(1) cp   ./arch/x86/boot/bzImage    /boot/vmlinuz-$version例:cp ./arch/x86/boot/bzImage    /boot/vmlinuz-2.6.29註:vmlinuz-2.6.29可以任意取名,這裡只是取比較有意義的名字而已。(2) cp   $initrd    /boot/      $initrd指命令mkinitrd  initrd-$version  $version執行後在核心根目錄下產生的"initrd-2.6.29"檔案,即init ramdisk檔案。例:cp   initrd-2.6.29    /boot/(3) 修改/etc/grub.conf或者/etc/lilo.conf將代碼:title CentOS-base (2.6.18-238.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.el5 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-238.el5.img複製並且改成:

title chen (2.6.29)
        root (hd0,0)
        kernel /vmlinuz-2.6.29 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.29

其只是根據本文的具體情況,對kernel的vmlinuz-2.6.18-238.el5 改成vmlinuz-2.6.29 ,將initrd的initrd-2.6.18-238.el5.img改成initrd-2.6.29

**$version為所編譯的核心版本號碼,本文採用2.6.29(即$version=2.6.29)** 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.