首頁 > 軟體

CentOS 7下原始碼編譯安裝新版本核心

2020-06-16 16:29:57

在工作中,很多時候由於需要使用新的技術方案,需要較新版本的核心來支援新的功能,而CentOS系統自帶的核心版本普遍都比較舊,因此我們需要對系統的核心進行升級,安裝新版的核心。在此,以CentOS 7系統為例,對編譯安裝最新版核心的過程做如下總結:

Linux 最新版本的核心可以通過 https://www.kernel.org/ 網站獲取

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

2、解壓核心原始碼包

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

[root@localhost src]# cd linux-5.2.11

[root@localhost linux-5.2.11]# cp /boot/config-3.10.0-957.el7.x86_64 ./.config

從boot目錄拷貝原核心的config檔案過來主要是為了方便,這個檔案儲存了在安裝系統時核心所安裝的模組設定資訊(否則需要重新手動指定每一個模組的編譯設定)。

4、安裝依賴包

安裝開發工具包組

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

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

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

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

修改核心名稱:

General setup --->local version -append to kernel release

此處修改核心名稱為 5.2.11-001.el7.x86_64

新新增NTFS檔案系統支援模組:

File systems --->DOS/FAT/NT Filesystems --->NTFS file system support

建議選擇以模組方式(M選項)編譯。(*號則是以靜態方式編譯打包進核心檔案中,如果新新增的模組較多,會導致核心檔案體積增大)

6、編譯核心

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

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

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

[root@localhost linux-5.2.11]# yum -y install openssh-devel elfutils-libelf-devel bc

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

7、編譯安裝模組

編譯完成後執行make modules_install 安裝核心模組

[root@localhost linux-5.2.11]# make modules_install

8、安裝核心核心檔案

[root@localhost linux-5.2.11]# make install

reboot重新啟動

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

grub2-set-default 0  #0表示 /boot/grub2/grub.cfg 檔案中排在第一位的 menuentry 段

重新啟動進入系統後,檢視一下核心版本,已經是最新的5.2.11版本

[root@localhost ~]# uname -r

5.2.11-001.el7.x86_64

至此,整個核心的編譯安裝過程完成。


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