ubuntu作为很多程序员的开发系统,讲究的就是拓展性和自主性,可以自动升级或者降级linux kernel就是其拓展性的一种表现。
本文将描述两种升级ubuntu linux kernel的方式,以供大家参考。
前期准备
- 确认当前的ubuntu系统的kernel版本:uname -r, 这个很重要以防升级linux kernel后产生问题,导致系统无法启动;这个时候就可以通过切换到升级前的版本来恢复系统。
- 确认系统当中已经安装的linux kernel:dpkg -l | grep linux-image
内核更新
方式一
从ubuntu官网下载安装包,手动安装
- 官网下载链接:https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/, 这里选择的是linux5.3的版本。
x86 64的系统选择上图标识的4个deb包就ok了。 x86 32bit系统选择i386下面类似的四个包。
- 安装下载的四个包:把这四个包放到一个单独的文件夹下执行:sudo dpkg -i *.deb
- 更新grub
当更新的linux版本比ubuntu当前的版本新时,默认会选择最新的。如果你需要指定已经安装的某个特定版本时,需要手动更改/etc/default/grub里面的GRUB_DEFAULT这个配置,来选择默认的linux kernel版本。
GRUB_DEFAULT=0 表示选择/boot/grub/grub.cfg里面第一个menu
GRUB_DEFAULT="1->2" 表示选择/boot/grub/grub.cfg里面的第二个menu下第三个子选项
更改完/etc/default/grub配置后,执行sudo update-grub来使配置生效
方式二
下载ubuntu的linux kernel源码来编译安装linux kernel, 这样可以在pc上调试linux kernel
- ubuntu linux源码查看:apt-cache search linux-source, 这个命令会列出当前能够获取的源码版本。
- ubuntu linux源码下载:sudo apt-get install xxx (xxx表示上面列出的源码版本,例如:linux-source-5.3.0),下载完成的源码位于/usr/src/目录下
- 源码编译安装
- 从/usr/src当中把源码包解压到某个目录:tar -xvf linux-source-5.3.0.tar.bz2
- 选择当前系统已有的配置文件, 拷贝到当前源码的顶级目录: cp /boot/config-5.3.18 .config
- make menuconfig
- make -j4
- sudo make modules_install
- sudo make install
note: 注意当编译内核源码的时候最后选择与之相近的版本的配置,否则可能会有问题。