如何在CentOS下原始碼編譯安裝新版本核心?
在工作中,很多時候由於需要使用新的技術方案,需要較新版本的核心來支援新的功能,而CentOS系統自帶的核心版本普遍都比較舊,因此我們需要對系統的核心進行升級,安裝新版的核心。在此,以CentOS 7系統為例,對編譯安裝最新版核心的過程做如下總結:
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
[root@localhost linux-5.2.11]# make install
grub2-set-default 0 #0表示 /boot/grub2/grub.cfg 文件中排在第一位的 menuentry 段
[root@localhost ~]# uname -r 5.2.11-001.el7.x86_64
以上是如何在CentOS下源碼編譯安裝新版本內核的詳細內容。更多資訊請關注PHP中文網其他相關文章!