首頁 > 軟體

CentOS 7.2編譯安裝Linux 4.12核心

2020-06-16 16:58:58

編譯核心

    前提:

        (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 設定視窗:如下圖

           

                 

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

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

           

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

           

              設定完核心選項後,按TAB建切換<Save> 儲存然後推出。

               設定好的核心選項,就被儲存到了,/root/linux4.12/.config 檔案裡,可以檢視已經設定的內容

 

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

                   

             

                通過lscpu 命令看到有4個CPU,核心編譯支援多執行緒編譯,執行命令:

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

                  由於編譯時間過長,這裡編寫一個下迴圈,編譯結束時發聲,提醒便宜結束。     

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

               

                      上圖中提示缺少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目下;

             會生成一個資料夾如下圖:

                 

 

     7、  #make install

            安裝核心相關檔案 :安裝bzImage為/boot/vmlinuz-VERSION-RELEASE 生成initramfs檔案, 編輯grub2的組態檔

           

 

      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的檔案都刪了。如下圖:

                               

            3、刪除/boot/grub2/grub.conf檔案下生成的組態檔刪除了:如下圖選中的部分都刪除了;

         

 

Ubuntu 上安裝 Linux Kernel 4.9.26 核心  http://www.linuxidc.com/Linux/2017-05/143609.htm

Ubuntu 16.04.2 安裝Linux kernel 4.10 核心並解決 VMware 問題  http://www.linuxidc.com/Linux/2017-03/141456.htm

Linux Kernel 4.2.2 編譯安裝教學  http://www.linuxidc.com/Linux/2015-10/123714.htm

Ubuntu,Linux Mint,Elementary OS 和其他Ubuntu衍生版上安裝Linux Kernel 4.15 RC1  http://www.linuxidc.com/Linux/2017-12/149484.htm

Ubuntu 15.10 將使用 Linux Kernel 4.2 核心  http://www.linuxidc.com/Linux/2015-09/122826.htm

怎樣在 CentOS 7 上安裝 Kernel 4.0.2  http://www.linuxidc.com/Linux/2015-05/117574.htm

怎樣在 CentOS 7 系統上安裝Linux Kernel 4.0  http://www.linuxidc.com/Linux/2015-04/116461.htm

如何在Ubuntu/CentOS上安裝Linux核心4.0  http://www.linuxidc.com/Linux/2015-04/116565.htm

Ubuntu、Linuxmint 及衍生版本安裝Linux Kernel 4.10.1  http://www.linuxidc.com/Linux/2017-03/141469.htm

如何在Ubuntu 14.10,Ubuntu 14.04及其衍生版本安裝 3.16.7 CKT2核心 http://www.linuxidc.com/Linux/2014-12/110189.htm 


IT145.com E-mail:sddin#qq.com