cnetos 6.7 內核編譯

簡介

    Linux內核的體積結構是單內核的,但充分借鑒了微內核設計體系的優點,為內核引入模塊化機制,使得雖然是單內核、但工作在模塊化的方式下、并且這個模塊可以動態裝載或卸載;Linux負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定著系統的性能和穩定性。如是我們在了解Linux內核的基礎上根據自己的需要、量身定制一個更高效,更穩定的內核,就需要我們手動去編譯和配置內核里的各項相關的參數和信息。

一 編譯內核之前的準備

  前提:

    1.獲取當前內核版本信息,我這里的內核版本是2.6.32-573.el6.x86_64

     blob.png  

    2.獲取內核源代碼,建議直接去官方網站(www.kernel.org)下載. 我這里準備的是linux-3.10.96.tar.xz的版本,盡量不要直接編譯最新版本的內核,可能會造成不兼容等問題。

       blob.png

    3.準備好開發環境,包組(CentOS 6): Server Platform Development 和 Development Tools

     yum groupinstall -y Server Platform Development  Development Tools

      blob.png

    4.配置內核之前可以查看當前系統的設備信息,了解系統詳細配置

     查看CPU信息:

     cat /proc/cpuinfo

     x86info             #此工具需手動安裝,yum -y install x86info

     lscpu

     查看PCI信息:

     lspci               #可用選項-v查看詳細信息

     查看USB信息:

     lsusb               #可用選項-v查看詳細信息

     查看塊設備信息:

     lsblk

          

    5.建議使用現有的模板編譯安裝,我這里的現有的模板在 /boot/config-2.6.32-573.el6.x86_64 (備注:這個模板文件適用在2.6.32 版本的,在3.0 內核以 上版本有可能出現不兼容的情況)

      blob.png

二 編譯內核

    1.把下載的內核源碼包解壓,一般把源碼解壓到/usr/src目錄下,解壓完成后會在該目錄下生成一個與源碼包版本號一致的目錄,為了方便起見,我們可將它做一個鏈接,鏈接為linux目錄。

     tar xf linux-3.10.96.tar.xz -C /usr/src/

     cd /usr/src/

     ln -sv linux-3.10.96 linux

     blob.png

    2.把內核模板文件復制放進/usr/src/linux

     cp /boot/config-2.6.32-573.el6.x86_64 .config

     blob.png

    3.配置內核,這步配置內核的方法有多種,每一個make就是一種方法,我們只在選一種就可以了.    

     支持“更新”模式進行配置:

             (a) make config:基于命令行以遍歷的方式去配置內核中可配置的每個選項;

             (b) make menuconfig:基于curses的文本窗口界面,這個命令需要打開的窗口大于80字符的寬度,打開后就可以在里面選擇要編譯的項了,用此命令需安裝gcc和ncurses-devel

             (c) make gconfig:基于GTK開發環境的窗口界面;

             (d) make xconfig:基于Qt開發環境的窗口界面;

     支持“全新配置”模式進行配置:

             (a) make defconfig:基于內核為目標平臺提供的“默認”配置進行配置;

             (b) make allnoconfig: 所有選項均回答為"no";

     內核功能選項:

            [*]  #編譯進內核本體

            [M]  #編譯成內核模塊

            [ ]  #不選擇使用

      使用make menuconfig開啟菜單選項,手動選擇內核功能

      make menuconfig  #打開了剛才的.config 的模板配置文件

      blob.png

     配置完成后,配置信息會存儲于名為.config的隱藏文件 

      blob.png

    4.開始編譯內核安裝

     注意:編譯時如果是遠程連接,一旦斷開連接,編譯就會出問題。所以我們使用一個叫screen這個命令來操作,沒安裝自己Yum安裝上就是了,可以在一個窗口上啟          動n個虛擬的桌面,即使退出了也會保留之前的內容,切換進screen就可以看到窗口標題欄上的screen標志了:        

        screen           #開啟窗口

        Ctrl+a d       #隱藏窗口

        screen -ls        #查看運行的窗口

        screen -r SCREEN_ID  #返回窗口

      開始編譯

      make 

      blob.png

       安裝模塊 

      make modules_install 

      blob.png   

     這步完了之后你可以查看一下/lib/modules/目錄下就會生成一個以同版本號命名的一個文件模塊了

     blob.png

     安裝內核

     blob.png 

     安裝完成后會在/boot目錄下生成幾個新內核的文件

     blob.png

     查看grub.conf配置文件,會發現新內核的信息已經寫入了

     blob.png

    5.重啟啟動系統,以新內核啟動系統

     blob.png

     查看內核版本

     blob.png

補充:

如何在已經執行過編譯操作的內核源碼樹做重新編譯:

    事先清理操作:    

1. make clean:清理大多數編譯生成的文件,但會保留config文件等;

2. make mrproper: 清理所有編譯生成的文件、config及某些備份文件;

3. make distclean:完全清理

如何加速編譯

    make [-j #]         #為cup核心數

如何只編譯內核中的一部分功能:

    (a) 只編譯某子目錄中的相關代碼:

      # cd /usr/src/linux

      # make dir/

    (b) 只編譯一個特定的模塊:

      # cd /usr/src/linux

      # make dir/file.ko

三 總結編譯安裝步驟

1.獲取內核源碼,解壓至/usr/src ,做個軟鏈接

    tar xf linux-3.10.96.tar.xz -C /usr/src/

     cd /usr/src/

     ln -sv linux-3.10.96 linux

    cp /boot/config-2.6.32-573.el6.x86_64 .config

2.配置內核特性

    make menuconfig

3.編譯內核

    make

4.安裝內核模塊

    make modules_install

5.安裝內核

    make install

6.查看grub.conf配置文件,確認新編譯的內核版本信息,重啟啟動測試

    cat /boot/grub/grub.conf

    reboot

    

原創文章,作者:liangkai,如若轉載,請注明出處:http://www.www58058.com/11697

(0)
liangkailiangkai
上一篇 2016-02-25
下一篇 2016-02-28

相關推薦

  • 編譯安裝httpd

    編譯安裝httpd   1 去官網下載源碼包                                      為避免非法軟件,一定要去官網下載http…

    2017-04-24
  • 文件系統知一二

    文件系統知一二 What?文件系統是什么?     我們經常說文件系統,那么文件系統是什么東西呢?    計算機的文件系統是一種存儲和組織計算機數據的組織結構。 常見的文件系統有哪些?           &n…

    Linux干貨 2016-03-09
  • 終端的類型

    Linux下的終端是一個連接系統的接口,它有以下幾個分類     tty:虛擬終端       tty是Teletype的縮寫。Teletype是最早出現的一種終端設備,很象電傳打字機(或者說就是?),是由Teletype公司生產的。   &nbsp…

    Linux干貨 2016-10-20
  • rpm命令詳解及和yum之間的關系

        RPM 全名是“ RedHat Package Manager ”簡稱則為 RPM 顧名思義,當初這個軟件管理的機制是由 Red Hat 這家公司發展出來的。 RPM 是以一種數據庫記錄的方式來將你所需要的軟件安裝到你的 Linux 系統的一套管理機制。    &nbsp…

    Linux干貨 2016-08-21
  • 廉價磁盤陣列(RAID)與邏輯卷(lvm)

    RAID的作用介紹與LVM的創建分析   有計算機基礎常識的人們都能了解,現如今生產出來的存儲設備比如機械式磁盤,作為個體它的存儲容量是有上限的,雖然曾經有人開發出大容量磁盤,但是成本太高,無法在社會中普及應用。對于這種大型服務器系統迫切需要的功能,催生出了一個叫做廉價冗余磁盤陣列的技術,歪果仁將它稱為RAID。而后隨著歲月的發展,又產生了邏輯卷l…

    Linux干貨 2016-09-11
  • 第一周博客作業

       第一次自己動手寫博客,而不是轉載或者收藏,還是滿忐忑的,希望是一個好的開始,以下內容均為依照記憶或者說學習到的知識總結,之后會另寫一篇博文根據網絡查詢到的更嚴謹完整的答案作為總結。一、描述計算機的組成及其功能。答:計算機主要有五個部分組成,分別是:運算器、控制器、存儲器、輸入設備、輸出設備。  1、控制器為整個計算機工作中的核心,負責調度所有組件之間的…

    Linux干貨 2016-12-04
欧美性久久久久