Linux核心的配置與編譯(X86平台)__Linux

來源:互聯網
上載者:User

Linux核心的配置與編譯(X86平台)

 

本文轉自:http://www.linuxidc.com/Linux/2013-07/87360.htm

 

說明:只供學習交流

目的:

(1):配置、編譯X86平台下的Linux-2.6.29核心

(2):在vmware下安裝編譯好的核心並啟動

工具:

Gcc編譯器, Linux-2.6.29核心

步驟:

(一):清除臨時檔案,中間檔案和設定檔等(剛從網上下載下來的檔案這步可省略)。

make clean

刪除大多數的由編譯產生的檔案、但會保留核心的設定檔.config。

make mrproper

刪除所有的編譯產生的檔案,還有核心設定檔,再加上各種備份檔案。

make distclean

mrproper刪除的檔案,加上編輯備份檔案和一些補丁檔案。

(二)選擇參考設定檔

使用正在啟動並執行核心設定檔作為參考配製檔案,該設定檔在/boot目錄下,使用命令

cp /boot/config-2.6.18-53.el5 .config。

(三)配置核心

配置核心有如下命令:

make config:基於檔案模式的互動式配置(也就是一問一答)。

make menuconfig:基於文字模式的菜單式配置(強烈推薦)。

make oldconfig:使用已有的設定檔(.config)但是會詢問新增的配置選項。

make xconfig:圖形化配置(需要安裝圖形化系統)。

make menuconfig是最為常用的核心配置方式,使用方法如下:

1、使用方向鍵在各選項間移動;

2、使用“Enter”鍵進入下一層選單;每個選項上的高亮字母是鍵盤快速鍵,使用它可以快速地到達想要設定的選單項。

3、在括弧中按“y”將這個項目編譯進核心中,按“m”編譯為模組,按“n”為不選擇(按空格鍵也可在編譯進核心、編譯為模組和不編譯三者間進行切換),按“h”將顯示這個選項的協助資訊,按“Esc”鍵將返回到上層選單。

核心配置通常在一個已有的設定檔基礎上,通過修改得到新的設定檔Linux核心提供了一系列可供參考的核心設定檔,位於Arch/$cpu/configs

注意:要運行make menuconfig的介面需要調整終端的視窗大小,至少為80*19。

(四)編譯核心

(1):make zImage

(2):make bzImage

區別:在X86平台,在zImage只能用於小於512Kd的核心(注意是X86平台)

如需擷取詳細編譯資訊,可使用:

make zImage V=1

make bzImage V=1

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

(五)編譯核心模組

使用命令make  modules

核心模組編譯的時間比較長,一般需要1~2小時的時間。這些模組源於使用命令make menuconfig啟動的菜單型配置介面中選擇<m>的項。

(六)安裝核心模組

使用命令:make  modules_install,完成安裝後,編譯好的核心模組會從核心原始碼目錄拷貝至/lib/modules/2.6.29目錄下。

(七)製作init ramdisk

使用cd跳動linux-2.6.29/,目錄的上層目錄,使用命令:mkinitrdinitrd-$version $version(mkinitrd initrd-2.6.29 2.6.29)將上一步中產生的模組目錄/lib/modules/2.6.29製作成initrd-2.6.29。

提示:initrd是“initial ramdisk”的縮寫,initrd是在實際根檔案系統可用之前掛載到系統中的一個初始根檔案系統。在案頭或伺服器Linux系統中,initrd是一個臨時的檔案系統。其生命週期很短,只會用作真實檔案系統的一個橋樑。在沒有存放裝置的嵌入式系統中,initrd可以是永久的根檔案系統。

Linux的眾多發行版之所以使用initrd主要是為了在核心啟動之後能夠判斷哪些硬體驅動需要載入,哪些不需要,檔案系統有沒有問題等,最終使得根分區能順利載入。在scsi和sata裝置上啟動,usb啟動盤,無盤伺服器等都需要initrd來做判斷,這樣可以提高Linux核心的通用性。

(八)安裝核心

由於Linux系統啟動時,會從/boot目錄下尋找核心檔案與init ramdisk,所以需要將核心和initrd拷貝至/boot目錄。使用命令:

cp initrd-2.6.29  /boot

cp linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29

(九)修改/etc/grub.conf或者/etc/lilo.conf

為了讓grub在啟動時能提供一項我們自己製作的linux核心的選項,需要修改grub的設定檔/etc/grub.conf。(添加的代碼為title My Linux(2.6.29)以下的)

注意:/etc/grub.conf實際上是/boot/grub/grub.conf的一個連結,因此真正的設定檔存在與/boot/grub目錄下。

(十):重啟系統

使用命令reboot,重新啟動系統,按住空格鍵不放,直到進入grub介面,選擇My Linux(2.6.29)啟動。

推薦閱讀:

Linux核心原始碼情景分析(上下全集高清版) PDF http://www.linuxidc.com/Linux/2013-04/82908.htm

Linux核心驅動開發之KGDB單步調試核心 http://www.linuxidc.com/Linux/2013-06/86233.htm

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.