1. 准備編譯環境
yum groupinstall "Development Tools"
2. 下載內核文件
選擇目標內核版本並下載: https://mirrors.edge.kernel.org/pub/linux/kernel/
(進入kernels常用存放目錄)
[root@linetwork ~]# cd /usr/src/kernels/
(以3.10.20為例,下載源文件)
[root@linetwork kernels]# wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.20.tar.gz
(解壓文件)
[root@linetwork kernels]# tar zxvf linux-3.10.20.tar.gz
(得到解壓后文件夾linux-3.10.20)
[root@linetwork kernels]# ls linux-3.10.20 linux-3.10.20.tar.gz
3. 編譯內核
目的: 將內核源碼文件(如*.c)編譯成可執行文件(如*.o)
(進入Kernel源碼文件夾linux-3.10.20)
[root@linetwork kernels]# cd linux-3.10.20/
(可選步驟A: 可直接通過menuconfig 增減內核模塊或組件,選擇后可查看.config參數文件的更新情況)
[root@linetwork linux-3.10.20]# make menuconfig [root@linetwork linux-3.10.20]# cat .config
(可選步驟B: 也可通過現有內核參數去生成新的配置參數文件.config)
[root@linetwork linux-3.10.20]# cp /boot/config-3.10.0-957.el7.x86_64 ./.config [root@linetwork linux-3.10.20]# make oldconfig [root@linetwork linux-3.10.20]# cat .config
(編譯內核)
[root@linetwork linux-3.10.20]# make -j16 all
all: 編譯所有選擇模塊
-j16: 將使用16核CPU資源去編譯內核
4. 安裝Kernel Module
(將新內核中的可執行module,集中放於/lib/modules/ 下的新內核文件夾中)
[root@linetwork linux-3.10.20]# make module_install [root@linetwork ~]# ls /lib/modules/ 3.10.0-1127.10.1.el7.x86_64 3.10.0-1127.el7.x86_64 3.10.20
5. 安裝Kernel
(將Kernel注冊到系統引導程序)
[root@linetwork linux-3.10.20]# make install [root@linetwork linux-3.10.20]# ls /boot/
6. 設置開機默認從新kernel啟動
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
sudo grub2-set-default 0
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
7. 刪除舊的kernel
yum install yum-utils
package-cleanup --oldkernels