2021-05-12 14:32:11
CentOS 7.2編譯安裝Linux 4.12核心
編譯核心
前提:
(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
相關文章