centos源碼編譯安裝新版本內核


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

  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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM