打造自己的專屬linux(四):Linux核心編譯過程簡介

來源:互聯網
上載者:User

linux在前不久剛發布了最新的3.0核心,在linux的學習中,瞭解核心的編譯是一個必不可少的功課。前幾天,學習了linux核心的編譯流程,在此總結下,大家來一起學習。

以最新的3.0核心為例,我下載的是linux3.0.1 :http://www.kernel.org

前提條件:1.確定你的linux有裝Development Tools  ,Development Libraris,他們是實現編譯的前提工具,如果沒有請使用yum groupinstall安裝

                    2.下載核心源碼檔案並拷貝進虛擬機器裡

核心編譯的原則:1.編譯時間需要一個新版本,漏洞少一點
                                2.儘可能選擇和自己硬體對應的驅動模組,相容性好
                                3.伺服器一般不用過新的核心,因為它沒有發現一些bug,有可能不穩定

--------------------------------------------------------------------------------------------------------------------------

第一步:將您的核心檔案複製到/usr/src/目錄下,解壓縮核心源碼檔案,以為的電腦為例

[root@server56 src]# lsbusybox-1.18.5          linux                   linux-3.0.1.tar.bz2[root@server56 src]# tar -xf linux-3.0.1.tar.bz2           # 解壓縮過程比較長,耐心等待[root@server56 src]# lsbusybox-1.18.5          linux                   linux-3.0.1         # 這就是源待碼檔案目錄

第二步:進入原始碼目錄,拷貝/boot/config-2.6.18-164.el5 到原始碼目錄並改名為.config

[root@server56 src]# cd linux-3.0.1                      [root@server56 linux-3.0.1]# cp /boot/config-2.6.18-164.el5 ./.config

## 這裡需要做一個說明:由於我們是初次編譯核心,而核心的選項多達上千條,所有我們以redhat官方提供的核心版本設定檔為藍本,在它的基礎上配置,保證核心的穩定性,而redhat核心的設定檔就是/boot/config-`uname-r`   uname-r指的是當前系統的版本號碼,我的是2.6.18-164.el5,編譯時間,系統會將你的配置儲存在.config檔案中

第三步:輸入make menuconfig 進去編譯配置介面   (其實有很多中方式,這裡只介紹一種常用的)

[root@server56 linux-3.0.1]# make menuconfig

可以看到,這裡面有很多核心選項。裡面的選項對應的翻譯可以查看這個連結:http://lamp.linux.gov.cn/Linux/kernel_options.html  

*號表示編譯進核心,  M表示編譯成模組,按空格鍵選擇 ,斷行符號鍵進入選擇分支,我們已經使用了.config檔案,所以可以直接編譯,當然你可以選擇自己想要的功能。

作者:金步國,國內有名的linuxer,翻譯過很多linux書籍

選擇接受後按按下面的ESC,彈出的介面選yes儲存

第四步:使用make命令編譯核心  #!需要注意的是,這個過程相當漫長,大概需要幾十分鐘到一個多小時的時間,而且最好不要在終端內進行,任何中斷連線都會造成編譯失敗,建議這一步在虛擬機器控制台內進行

[root@server56 linux-3.0.1]# make

第五步:編譯結束後,安裝模組

[root@server56 linux-3.0.1]# makemake modules_install 

第六步:安裝核心,這一步會將核心資訊寫入到你的grub裡,(可以手動編輯grub.conf檔案去掉)你可以用現有的虛擬機器體驗新版本核心(前提不出錯,核心出錯會在啟動時顯示kernel panic!核心恐慌,可能是選擇的模組沒有對應的依賴關係,只能重新編譯)

[root@server56 linux-3.0.1]# make install   

在完成編譯後,核心檔案會存放在/boot目錄下

[root@server56 boot]# lsSystem.map                 initrd-2.6.18-164.el5.img  vmlinuz-2.6.18-164.el5System.map-2.6.18-164.el5  initrd-2.6.28.10.img       vmlinuz-2.6.28.10

相關文章

聯繫我們

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