天天看點

總結之:CentOS 6.5核心編譯步驟及配置詳解

前言

   Linux核心是作業系統的核心,也是作業系統最基本的部分。

   Linux核心的體積結構是單核心的、但是他充分采用了微核心的設計思想、使得雖然是單核心、但工作在子產品化的方式下、并且這個子產品可以動态裝載或解除安裝;Linux負責管理系統的程序、記憶體、裝置驅動程式、檔案和網絡系統,決定着系統的性能和穩定性。如是我們在了解Linux核心的基礎上根據自己的需要、量身定制一個更高效,更穩定的核心,就需要我們手動去編譯和配置核心裡的各項相關的參數和資訊了。

注意、如果兩個核心子產品的版本不完全相同是不可以跨版本使用的。

正文

   首先我們要去獲得Linux核心的壓縮檔案、獲得的路徑很多了、最直接的就是去核心官網獲得了(http://www.kernel.org),也可以到各鏡像站上去下載下傳、這裡就不再說明了。

注意:/usr/src;一般而言、我們制做linux核心的時候源碼一般放在這個路徑下、并且有一個連結叫linux什麼的、是以展開時應該放在這個路徑下。

   我這裡下載下傳有一個3.13.2版本的核心、展開時指定一個展開路徑就可以了,檔案比較大、70多M、可能需要點時間的。

   # tar xf linux-3.13.2.tar.xz -C /usr/src/

   展開之後在/usr/src/這個目錄下就看到了生成一個linux-3.13.2的檔案了

   為以後使用友善、我們給他建立一個連結:

   # ln -sv linux-3.13.2 linux

   我們cd到linux目錄裡面看一下裡面的檔案看:

   # cd /usr/src/linux

   裡面的目錄我這裡就不一一介紹了、有興趣的朋友可以去了解一下哦。

   到下一步就是去配置核心了、這步配置核心的方法有多種、每一個make就是一種方法、我們隻在選一種就可以了:

   make config:周遊選擇所要編譯的核心特性

   make allyesconfig:配置所有可編譯的核心特性

   make allnoconfig:并不是所有的都不編譯,而是能選的都回答為NO、隻有必須的都選擇為yes。

   make menuconfig:這種就是打開一個檔案視窗選擇菜單,這個指令需要打開的視窗大于80字元的寬度,打開後就可以在裡面選擇要編譯的項了

   下面兩個是可以用滑鼠點選擇的、比較友善哦:

   make kconfig(KDE桌面環境下,并且安裝了qt開發環境)

   make gconfig(Gnome桌面環境,并且安裝gtk開發環境)

   menuconfig:使用這個指令的話、如果是新安裝的系統就要安裝gcc和ncurses-devel這兩個包才可以打開、然後再裡面選擇就可以了、通這個方法也是用得比較多的:

<a href="http://s3.51cto.com/wyfs02/M02/22/4D/wKiom1MapVCCGRSaAAMP-pFlTno636.jpg" target="_blank"></a>

   如果想友善點又不想用别的方法那就複制目前系統上的/boot/config-版本-平台,這個檔案到/usr/src/linux/.config覆寫這個檔案,再改一下裡面的配置資訊;哪些用得着就保留、哪些用不着就删除了都可以、有什麼新的也可以加進來、這就是按自己的需求來配置了;

<a href="http://s3.51cto.com/wyfs02/M00/22/4E/wKioL1MapU-xI3JzAAGGyCZYZIg932.jpg" target="_blank"></a>

   注意:如果編譯是在遠端連接配接上的話、make會出問題的、如果遠端連接配接斷開的話那運作的程序是不是也都斷開了、這個make的程序一定是目前系統上運作的子程序、有些一旦父程序挂了、子程序也将不複存在、俗話說:皮之不存毛将焉附,是這個道理吧;

   是以我們使用一個叫screen這個指令來操作,沒安裝自己安裝上就是了、可以在一個視窗上啟動n個虛拟的桌面,即使退出了也會保留之前的内容,切換進screen就可以看到視窗标題欄上的screen标志了:

   # screen -ls:可以檢視目前啟用了多少個screen

   按Ctrl+a,松開再按d可以隐藏screen桌面

   因為編譯核心需要比較長的時間、是以我們在screen上編譯、然後再把screen桌面隐藏就可以了;

   重新接入screen:

   # screen -r 跟上screenID就可以了

   然後我們就開始編譯吧;(我這裡編譯差不多用了兩小時、make的時候我不指定cpu的核心數、預設就是用一個核來編譯、是以很久)

   # make

   編譯好了之後我們就可以進行下一步了:

   # make modules_install

   這步完了之後你可以檢視一下/lib/modules/目錄下就會生成一個以版本号命名的一個檔案子產品了

    modules之後再往下走、敲指令吧

   # make install

   安裝完之後會在/boot/目錄下生成一個核心檔案vmlinuz-3.13.2、還有幾個跟你目前編譯的版本一樣的檔案、可以ls去看一下:

   # ls /boot/

   如果沒出什麼問題到這裡我們應該算是編譯好了一個新核心了;可以到grub.conf配置檔案時看一下:

   # vim /boot/grub/grub.conf

   好了、要不我們重新開機一下看看、OK、重新開機吧!如果順利的話就可以進到核心選擇界面了,選項我們編譯的新核心就OK了,好了、到這就結束了!

<a href="http://s3.51cto.com/wyfs02/M02/22/4F/wKioL1Maxz2ge3GNAAC6wW-iFY0072.jpg" target="_blank"></a>

   總結一下我們的安裝步驟:

       1、擷取核心源碼,解壓至/usr/src

           # tar xf linux-3.13.5.tar.xz -C /usr/src

           # ln -sv /usr/src/linux-3.13.5  /usr/src/linux

       2、配置核心特性(選擇一種方法就可以了)

           make config:周遊選擇所要編譯的核心特性

           make allyesconfig:配置所有可編譯的核心特性

           make allnoconfig:并不是所有的都不編譯

           make menuconfig:這種就是打開一個檔案視窗選擇菜單

           make kconfig(KDE桌面環境下,并且安裝了qt開發環境)

           make gconfig(Gnome桌面環境,并且安裝gtk開發環境)

       3、編譯核心

           # make [-j #] : #号最多為CPU實體核心總數的兩倍,這樣會快點哦            

       4、安裝核心子產品

           # make modules_install

       5、安裝核心

           # make install

       6、驗正并測試

           # cat /boot/grub/grub.conf

           檢視新核心是否已經添加, 而後重新開機系統并測試

結束:

   其實編譯一個新的核心好像也不是很難是吧、跟我們之前源碼編譯的httpd的步驟差不多、也就是第一步麻煩點、細心點就OK了,當然如果有什麼不對的地方還望各路諸侯多多提點!

本文轉自 wei0164 51CTO部落格,原文連結:http://blog.51cto.com/tanxw/1370606,如需轉載請自行聯系原作者

繼續閱讀