Linux-Centos7編譯內核

編譯內核

    前提:

        (1)準備好開發環境

        (2) 獲取目標主機上硬件設備的相關信息

        (3) 獲取目標主機系統功能的相關信息

                       例如:需要啟用相應的文件系統

        (4) 獲取內核源代碼包

                  www.kernel.org

開發環境準備

           包組(Centos 7):Development Tools

                       #yum grouplist  查看包組信息  

           目標主機硬件設備相關信息:

                   CPU:  #cat /proc/cpuinfo

                             #lscpu

                   PCI設備:

                           lspci     (-v|-vv)

                           lsusb    (-v|-vv)

                           lsblk  塊設備

  

這是在虛擬機上做的實驗,可以把cpu設置成4核的,內存設置成2G,這樣可以快速的編譯:

   步驟如下:

             1、下載源碼文件:linux-4.12.tar ;并解壓縮到/root下

                      #tar xvf linux-4.12.tar

             2、安裝開發包組

                     #yum groupinstall  “Development Tools”

              3、準備文本配置文件,為了省事,直接參考當前的內核配置文件作為要編譯的內核模塊:

                    #cd /boot

                    #cp /boot/config-3.10.0-514.e17.x86_64    /root/linux-4.12/.config

              4、配置內核選項,通過菜單的方式,定義內核的選項:

                    cd /root/linux-4.12

                    運行 #make menucofig命令時,發現報錯,缺ncurses-devel包

                    #yum install  ncurses-devel   安裝包

                    繼續運行#make menuconfig,會打開一個Kernel Configuration 配置窗口:如下圖

           Linux-Centos7編譯內核

                  

                        上圖中”[ ]“  里*表示打到核心里,M:是以模塊方式打到核心里;空白就表示不設置。

                         上圖中選中General setup  ,回車展開如下圖:

           Linux-Centos7編譯內核

                在下圖中輸入內核的版本,以及編譯者信息,可以自己隨便設定:

           Linux-Centos7編譯內核

              設置完內核選項后,按TAB建切換<Save> 保存然后推出。

               設置好的內核選項,就被保存到了,/root/linux4.12/.config 文件里,可以查看已經設置的內容

       5、開始編譯,操作如下圖:

                    Linux-Centos7編譯內核

              

                通過lscpu 命令看到有4個CPU,內核編譯支持多線程編譯,執行命令:

                        # make  -j  4  &&  for  i  in  {1..10} ;do  echo  -e “-a”;sleep 1 ;done

                  由于編譯時間過長,這里編寫一個下循環,編譯結束時發聲,提醒便宜結束。     

                 編譯過程發現報錯,如下圖:

               Linux-Centos7編譯內核

                      上圖中提示缺少openssl工具;缺什么就安裝什么:yum -y install openssl-devel

                        然后繼續運行:# make  -j  4  &&  for  i  in  {1..10} ;do  echo  -e “-a”;sleep 1 ;done

                       編譯過程時間比較長,所以不要急。可以再打開一個終端窗口,cd /root/linux-4.12  下;

                         wach -n 5  du -sh .   可以每隔5秒統計一下大小,總計大小差不多9個多G.請耐心等待。

     6、 當聽到發聲提醒時,說明第5 步已經完成了。然后執行如下操作:

               make modules_install  安裝模塊。把/root/linux-4.12目錄下的大量的內核模塊包,復制生成到/lib/modules目下;

             會生成一個文件夾如下圖:

                  Linux-Centos7編譯內核

     7、  #make install

            安裝內核相關文件 :安裝bzImage為/boot/vmlinuz-VERSION-RELEASE 生成initramfs文件, 編輯grub2的配置文件

            Linux-Centos7編譯內核

      8、重啟就可以選擇linux-4.12的內核啟動加載了。

      

在編譯完成后,那么怎么在已經執行過編譯操作的內核源碼樹做重新編譯呢?如下描述:

                               1、#make clean  :清理大多數編譯生成的文件,但會保留condig文件等

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

                               3、#make distclean : mrproper、patches以及編輯器備份文件

  

如果編譯有錯誤,或者還想用舊的內核啟動,那么怎么刪除新的內核呢?

  只要把上述編譯的每一步驟生成的文件目錄刪除就可以了;如下操作:

              1、rm -rf /lib/modules/4.12.0.1.0-wangkernel/

              2、rm -rf /boot/*4.12*  把帶有4.12的文件都刪了。如下圖:

                Linux-Centos7編譯內核                

            3、刪除/boot/grub2/grub.conf文件下生成的配置文件刪除了:如下圖選中的部分都刪除了;

          Linux-Centos7編譯內核

                

                               

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

(1)
shenjialongshenjialong
上一篇 2017-07-16
下一篇 2017-07-16

相關推薦

  • N22-第五周作業-冥界之王

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;    [root@CentOS6 ~]# cat /boot/grub/grub.conf | grep -E  "^[[:space:]]{1,}"…

    Linux干貨 2016-09-19
  • puppet進階管理之終極應用

         上一篇博客寫了puppet操作file、cron、user、group、exec基礎資源的使用,連接地址為 http://www.www58058.com/13990  這次實驗puppet的操作Package、Server和puppet的特殊資源屬性Metaparameters。 回顧下…

    Linux干貨 2016-04-12
  • Linux網絡功能協議介紹(二)

      上個內容中,我們知道了只要是本地通信得廣播,而廣播不是邏輯(IP)地址對應的MAC地址,所以主要是將邏輯地址轉換成目標地址,這叫地址解析稱為ARP,還有一種是反向解析RARP,都是在本地網絡中完成的,邏輯IP地址分為兩個階段,前一段分為網絡地址,后一段分為主機地址,如何判定?用子網掩碼用來判斷那一部分是網絡位,那一部分是主機位,最重要…

    Linux干貨 2016-11-25
  • HTTP的基礎配置

    目錄: 1.修改監聽的IP和PORT 2.持久連接(保持連接,長連接) 3.MPM 4.DSO 5.定義’Main’ server_name的文檔頁面路徑 6.站點訪問控制常見機制 7.定義站點主頁面: 8.定義路徑別名 9.設定默認字符集 10.日志設定 11.基于用戶的訪問控制 12.虛擬主機 13.status頁面 14.cur…

    Linux干貨 2017-08-08
  • 文本處理工具 grep

    文件查看:       文件查看命令:cat,tac,rev               cat [OPTION]… [FILE]…            …

    Linux干貨 2016-08-07
  • Linux軟件管理(rpm,yum)

    Linux的應用程序安裝提供了兩中格式的軟件包:一種是軟件開發者直接提供的源碼包;另一種是發行版廠商提供事先編譯好打包的軟件包;用戶需要根據需要來選擇何種方式安裝軟件,作為系統管理運維人員,要想合理應用,必須熟悉這兩者之間的內在聯系以及各自的特性和差異; *軟件包管理工具)   — RPM軟件包管理工具  — YUM軟件包前端管理工具 軟…

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