多种方法更换不同版本的Linux内核

1,290 阅读2分钟

更新内核的好处:

  1. 可以获得在新内核中的工具,例如rtla在5.17内核才引入。
  2. 兼容某些工具,例如5.14中的osnoise。

当前我使用的虚拟机Ubuntu的Linux内核为5.10版本,需要更换到更高的版本。 接下来是几种做法。

1、使用ubuntu-mainline-kernel脚本升级

1.通过命令:

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh

下载ubuntu-mainline-kernel脚本

2.安装脚本

sudo install ubuntu-mainline-kernel.sh /usr/local/bin/

3.运行脚本进行更换内核版本

sudo ubuntu-mainline-kernel.sh -i V5.16.20

-i xx.xx.xx更换成自己需要的内核版本,我这里先更换成5.16.20版本

4.重启虚拟机,查看内核版本

reboot
uname -r

image.png

可以通过sudo ubuntu-mainline-kernel.sh -u, 卸载掉不需要的内核版本。

2、手动用deb包进行更换内核

1.在kernel.ubuntu.com/mainline/ 下载需要的内核版本的deb包。这里选则amd64的deb包,也可以通过git方式获取。下载后放到ubuntu中。

image.png

2.进入下载好的文件的文件夹,运行命令

sudo dpkg -i *.deb

image.png

安装过程可能会报错,缺少什么装什么。我运行的时候报错,但是重启后内核版本已经更新。

3.重启虚拟机,查看内核版本

reboot
uname -r

3、使用包管理工具apt进行更新

1.先更新一下ubuntu

sudo apt update
sudo apt upgrade

2.查看当前可获取的内核

sudo apt search linux-image

image.png

3.选择一个版本进行安装

sudo apt install linux-image-<version>

4.更新grub

sudo update-grub

5.重启虚拟机,查看内核版本

reboot
uname -r

由于我的虚拟机运行sudo apt search linux-image里最高版本只有5.15,因此我采用的是最后一种方法,用源码进行更新。

4、用Linux内核源码进行更新

1.wget获取源码 或者 到官网去下载源码

wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.gz

linux-5.x.x.tar.gz换成自己需要的版本。

或者到网站Index of /pub/linux/kernel/ 下载对应的源码。

2.解压获取源码

tar -xzvf linux-5.x.x.tar.gz

3.进入到源码目录下

cp /boot/config-$(uname -r) /path/to/linux-5.x.x/.config

将当前系统配置文件复制到源码目录下,这里cp的目录换成刚解压的源码目录。

4.进入menuconfig界面

make menuconfig

image.png 直接选择exit,保存当前配置。

5.编译源码

make -j8

根据自己配置的核数选择,我这里是8核

6.编译和安装内核模块

sudo make modules_install
sudo make install

7.更新grub并重启

sudo update-grub
reboot