具体升级内核还是降级内核,需要根据ubuntu版本所能正确运行的内核版本范围(比如在10.04ubuntu上面升级一个5.19的内核,大概率是会跑崩的)。因此要选一个适当的版本来安装你所需的内核。
更换内核大致分为以下步骤:1.增加目标内核、2.更换当前内核、3.删除多余内核,具体看下面的描述;
0.须知
- 查看当前内核:
uname -a
- 内核下载网站:(压缩包格式的内核版本更全一些)
方法二使用deb格式下载:https://kernel.ubuntu.com/~kernel-ppa/mainline/
方法三压缩包格式下载:https://mirrors.edge.kernel.org/pub/linux/kernel/ - 进入高级模式
按住 Shift 然后重启,如果没进去可能你的鼠标没有在ubuntu系统下,而是跑到win系统下了,Shift 被win截胡了
1.使用apt-get更换
个人学习参考文章:https://blog.csdn.net/qq_33236581/article/details/112098491
- 1.检索:搜索目前可以安装内核版本。使用命令:(如果能搜索到你想要的内核版本那就万事大吉,安装起来就比较加简单)
apt-cache search linux|grep linux-image
- 2.安装:安装内核:(不管是安装哪个版本,都需安装下面四个)
sudo apt-get install linux-image-3.13.0-170-generic
sudo apt-get install linux-headers-3.13.0-170-generic
sudo apt-get install linux-modules-3.13.0-170-generic
sudo apt-get install linux-modules-extra-3.13.0-170-generic # 如果不装会影响一些驱动
# 这些文件名的查询都可以用上面的命令列出来,如:apt-cache search linux|grep linux-modules-extra
- 3.查看:下载完之后查看内核安装信息
dpkg --get-selections | grep linux
- 4.更换默认:然后更换自己需要的内核为默认启动的内核(这里先介绍一种比较简答的配置默认启动内核的方式)
sudo apt-mark hold linux-image-3.13.0-170-generic
sudo apt-mark hold linux-headers-3.13.0-170-generic
sudo apt-mark hold linux-modules-extra-3.13.0-170-generic
删除之前可以确认一下当前使用的内核和当前已经下载的内核
uname -a
dpkg --get-selections | grep linux
- 5.删除:删除不需要的内核
sudo apt-get remove linux-headers-3.13.0-170
sudo apt-get remove linux-headers-3.13.0-170-generic
sudo apt-get remove linux-image-3.13.0-170-generic
sudo apt-get remove linux-modules-3.13.0-170-generic
sudo apt-get remove linux-modules-extra-3.13.0-170-generic
- 6.再次查看内核:状态为 deinstall 表示已经卸载,如果不想显示 deinstall 这些项,并删除它们在 /lib/modual/ 下面还有这些内核的配置信息,可以采用下面的命令完全删除,如果还在就手动删:
sudo dpkg -P linux-image-4.15.0-39-generic # 其他内核名称可以用 tab 键自动补全来查看
- 7.更新系统引导
删除内核后需要更新grub移除失效的启动项
sudo update-grub #根据情况选择grub/grub2
2.使用dpkg更换
- 下载:
网站下载需要的内核:网站
命令行下载:(可以在网站内找到网址+名字替换下方网址)
sudo wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.180/amd64/linux-headers-$$_amd64.deb
sudo wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.180/amd64/linux-image-$$_amd64.deb
sudo wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.180/amd64/linux-modules-extra-$$_amd64.deb
老版的内核或许只有1和2,新一些的有1,2,3,反正就是有就下载。
1.linux-headers-xxx_amd64.deb
2.linux-image-xxx_amd64.deb
3.linux-modules-xxx_amd64.deb
-
安装
sudo dpkg --install *.deb -
重启(sudo reboot),查看内核(uname -a)
3.使用压缩包更换
个人学习参考文章:
https://blog.csdn.net/Xiaoma_Pedro/article/details/103892980
https://blog.csdn.net/qq_37437983/article/details/108586309
压缩包下载网站:网站
命令行下载:(可以在网站内找到网址+名字替换下方网址 $$是你需要替换的内容)
sudo wget https://cdn.kernel.org/pub/linux/kernel/$$/linux-$$.tar.xz
- 解压
sudo xz -d linux-$$.tar.xz
sudo tar -zxvf linux-$$.tar.gz
- 编译
编译环境:(安装一堆编译需要的依赖)
sudo apt-get install libncurses5-dev libssl-dev -y
sudo apt-get install build-essential openssl -y
sudo apt-get install zlibc minizip -y
sudo apt-get install libidn11-dev libidn11 -y
sudo apt-get install bison -y
sudo apt-get install flex -y
sudo apt-get install libelf-dev -y
sudo apt-get install elfutils-libelf-devel –y
make之前的操作
#清除编译过程中产生的所有中间文件
sudo make mrproper
#清理上一次产生的编译中间文件
sudo make distclean
#还可以直接,拷贝。图像化配置.config界面,配置内核选项
sudo cp /boot/config-4.15.0-55-generic ./.config
打开界面配置,我个人没怎么配置,直接退出了。
要是编译32位的话,第一个选项64bit取消,应该是取消掉的话默认32位。
sudo make menuconfig
执行编译命令(有几个核就用几个核去跑,这个编译内核的过程很慢)
//默认编译64位
sudo make -j
//编译32位
sudo make bzImage -j
sudo make modules -j #编译内核模块
sudo make modules_install -j #安装内核模块(完成安装后,编译好的内核模块会从源码目录复制到/lib/modules/目录下 )
sudo make install -j
- 重启
重启按住 shift进入高级模式
进入之后uname -a,肯定就是你的内核了,然是重启的话,可能又恢复回去原来的内核了,所以参考下面: Ubuntu更改默认启动内核那个网址,就可默认启动自己的内核
4.Ubuntu更改默认启动内核
https://blog.csdn.net/SweeNeil/article/details/87937269
5.总结
X86平台内核配置、编译和安装
上面三种更换内核的方式,选择其中一种自己合适的即可。