1. 程式人生 > 其它 >Centos原始碼編譯升級指定核心版本

Centos原始碼編譯升級指定核心版本

1.檢視當前核心版本:

使用的系統版本,當前日期CentOS最新版:

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 8.4.2105

檢視當前系統核心版本

[root@localhost ~]# uname -r

4.18.0-305.10.2.el8_4.x86_64

2.下載最新穩定版本的核心原始碼包到 /usr/src/kernels ,並解壓到當前目錄

[root@localhost ~]# tar -zxvf linux-5.11.tar.gz -C /usr/src/kernels/

3.從 /boot 目錄將現有版本的核心編譯config配置檔案拷過來到放到新的核心原始碼解壓目錄內並重命名為.config的隱藏檔案

[root@localhost ~]#cp -v /boot/config-4.18.0-305.3.1.el8.x86_64 /usr/src/kernels/linux-5.11/.config

4.安裝依賴包

[root@localhost ~]#yum -y groupinstall "development tools"

安裝ncurse-devel包 (make menuconfig 文字介面視窗依賴包)

[root@localhost ~]#yum -y install ncurses-devel

5.執行 [root@localhost /usr/src/kernels/linux-5.11/]#make menuconfig,

開啟文字介面的編譯選項選單視窗,可以對核心載入的模組編譯選項進行調整,如修改編譯後的核心名稱、新新增之前系統缺少的模組等。

這裡可以自定義核心特性,如果對核心不熟悉的話,直接使用tab鍵 選save 儲存,然後退出即可。

6.編譯核心

檢視本機核心數#lscpu 或者 nproc

這裡,如果不超過4核, -j 後面接cpu核心數量;超過4核,建議使用-j 4,嗯,穩一點

[root@localhost/usr/src/kernels/linux-5.11/]# make -j 4#根據CPU核數開啟多執行緒編譯以加快編譯速度

開始漫長的編譯過程,大概需要2小時左右,具體視CPU硬體的效能決定。

如果編譯開始提示錯誤,則可能需要預先安裝對應的元件包,例如:

[root@localhost/usr/src/kernels/linux-5.11/] yum -y install openssh-devel elfutils-libelf-devel bc

根據對應的錯誤提示,yum 方式安裝對應的元件包,部分元件包在epel源,所以需要預先配置好epel源倉庫。

(常見編譯出錯問題,見下一篇Kernel 原始碼升級問題指南)

7.編譯安裝模組

編譯完成後執行make modules_install 安裝核心模組(一般編譯的時候不出錯,後面就不會出錯的。)

[root@localhost/usr/src/kernels/linux-5.11/]make modules_install

8.[root@localhost/usr/src/kernels/linux-5.11/]make install

如需將新版本核心設定為預設啟動核心,可以使用此命令

[root@localhost/usr/src/kernels/linux-5.11/]grub2-set-default 0 #0表示 /boot/grub2/grub.cfg 檔案中排在第一位的 menuentry 段

9.安裝完後重啟裝置reboot

    進入系統後,再檢視一下uname -r,已經是升級為指定核心版本。