linux-2.6.11內核編譯筆記

一、緒論:

Linux以其開源的開發方式贏得了越來越多人的關注,而作爲操作系統的核心的內核尤爲重要。

linux的開發中採用了集市模型(bazaar,與cathedral--教堂模型對應)的版本控制方式,即Linux採用了雙樹系統。一個樹是穩定樹(stable tree),另一個樹是非穩定樹(unstable tree)或者開發樹(development tree)。一些新特性、實驗性改進等都將首先在開發樹中進行。如果在開發樹中所做的改進也可以應用於穩定樹,那麼在開發樹中經過測試以後,在穩定樹中將進行相同的改進。一旦開發樹經過了足夠的發展,開發樹就會成爲新的穩定樹。開發數就體現在源程序的版本號中;源程序版本號的形式爲x.y.z:對於穩定樹來說,y是偶數;對於開發樹來說,y比相應的穩定樹大一(奇數)。下載內核版本請訪問http://www.kernel.org

Linux中定製內核爲linux系統提供了更好的處理方式,可以根據用戶自己的系統度身定製一個更高效,更穩定的內核。Linux下內核的編譯模式有如下二種:直接加載到內核中(build-in)方式和動態加載到內核中(module)。前一種方式在內核啓動時就可以支持相應部分的功能,這樣的優點是方便、速度快,機器一啓動,就可以使用這部分功能了;缺點是會使內核變得龐大起來,不管是否需要這部分功能,它都存在(例如:Windows)。後一種方式則可以動態的加載和卸載,在需要模塊進行處理時加載內核模塊,使用完畢後則進行卸載,這樣不會使得內核過分龐大,缺點是必需通過命令來加載。

二、本文的寫作內容

本篇文章涉及的內容:

1.       linux-2.6.11內核的編譯過程

本篇文章不包含的內容:

1.        內核編譯中模塊功能選項說明

2.       Linux內核編譯中有關編譯錯誤

三、文章正文

1.       下載linux2.6.11版本,在ftp://ftp.kernel.org/pub/中找到相關版本的壓縮包 linux-2.6.11.tar.bz2

2.       將壓縮包放到/usr/src/redhat/SOURCES/下,解壓縮包:

$tar -xvf linux-2.6.11.tar.bz2

3.         /usr/src/redhat/SOURCES/下得到解壓後的文件linux-2.6.11,linux-2.6.11當前目錄下進行編譯,在進行以下幾步之前,先要對linux-2.6.11中的一個頭文件進行修改

i2c.h中對58197行進行修改,修改內容如下:

extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],int num);

修改爲

extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg,int num);

4.         清除當前目錄下編譯設置:

$make mrproper

該命令確保目錄下沒有相關的文件和配置,如果已經編譯過linux內核,建議使用該命令

5.         配置內核模塊的功能,有幾種方式可以進行界面選擇:

$make config(文本的配置方式,需要用戶自己寫配置文件)

$make menuconfig(文本選單的配置方式,在有字符終端下才能使用)

$make xconfig(圖形窗口模式的配置方式,必須支持Xwindow下才能使用)

$make oldconfig(文本配置方式,在原內核配置的基礎修改時使用)

這裏推薦make xconfig方式,圖形窗口的配置比較直觀,對應每一項相應的配置時,有三種選擇:

Y-該模塊編譯進內核

N-該模塊不編譯進內核

M-該模塊編譯成可加載內核模塊

     內核編譯中各項模塊功能的選擇請參考其它文章(參見參考文獻)。

6.         內核模塊文件連接   

$make

在進行該步時如果出現錯誤,而且這些錯誤支持的模塊省略了對編譯沒有影響,可以去掉,在進行了修改之後要重新進行make

7.          內核模塊的編譯       

$make modules

8.          內核模塊的安裝       

$make modules_install

9.          安裝環境的安裝        

$make install

 三、參考文獻

文章名

作者

來源

Linux內核編譯

b_2_bomber    6

http://www.linuxbbs.cn/TopicOther.asp?t=5&BoardID=71&id=424

Linux操作系統的內核編譯內幕詳解

 

http://school.21tx.com

Linux內核完全剖析

趙炯

機械工業出版社

The Linux Installation HOWTO

Eric Steven Raymond

http://www.kernel.org

 

 

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