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 15:50
下一篇 2016-02-28 12:03

相關推薦

  • sed與vim淺析

    sed與vim sed Stream EDitor, 行編輯器,sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出?!?/p>

    Linux干貨 2016-08-10
  • 裝飾器

    裝飾器(Decorator) 裝飾器推導過程 需求 一個加法函數,想增強它的功能,能夠輸出被調用過以及調用的參數信息 def add(x,y): return x + y 增加信息輸出功能 def add(x,y): print(‘call {},{}+{}’.format(add.__name__, x, y)) return x + y 不足:打印語句的…

    2017-10-23
  • Centos圖形界面和命令界面模式切換

    大家都知道,centos有兩種用戶界面模式,一種是圖形界面,也就是我們常說的Xwindows界面;另一種就是命令界面。有時因為方便需要在圖形模式下安裝一些程序,因圖形界面占用的內存等資源較大,影響系統的運行,安裝完后需要把系統切換到命令模式下運行,下面就兩種模式如何進行切換做一下說明。 CentOS的啟動模式共分為7級,分別是: 0-  停機 1-…

    系統運維 2015-07-19
  • sed工具的基本用法

    sed -n(不輸出模式,不自動打?。?sed -d(刪除匹配到的內容) sed-e(多點編輯) sed-r(支持擴展正則表達式) sed#,#(地址定界,在此范圍中匹配) sed 1~2   sed 2~2 (找奇數行和偶數行) sed =(為打印到的內容編輯行號)  sed!(取反) sed s///(查找替換,支持使用其他…

    Linux干貨 2017-05-02
  • 文件權限

    淺談文件權限 Linux系統中的每個文件和目錄都有訪問許可權限,用他來確定誰能通過何種方式對文件和目錄進行訪問和操作。  文件權限: 文件或目錄的訪問權限分為只讀,只寫和可執行三種。  文件的權限主要針對三類對象進行定義:          owne…

    Linux干貨 2016-08-07
  • bash 循環和函數

    回顧: 循環 循環控制:break,continuewhile , for循環的特殊用法for (());do     循環體donewhile read VARAIBLE;do     循環體done <&nbs…

    Linux干貨 2016-08-24
欧美性久久久久