前期准备
1. 查看当前的ubuntu版本
uname -r
2. 安装必要的软件包,以便能够编译内核
sudo apt-get install build-essential libncurses-dev bisson flex libssl-dev
3. 下载对应的内核源码包,存放到目录中
源码下载地址 : mirrors.edge.kernel.org/pub/linux/k… , 选择一个自己想要的版本下载即可
编译过程
1. 解压源码包
tar -zxf linux-5.10.73.tar.gz ## 这里换成自己下载的包名字
cd linux-5.10.73
2. 获取配置文件
make menuconfig
这里会弹出图像化界面,配置完成后选择后再选择 退出即可
3. 修改配置文件.config
vim .config
设置CONFIG_SYSTEM_TRUSTED_KEYS=""
设置CONFIG_SYSTEM_REVOCATION_KEYS=""
4. 开始编译
sudo make -j8 # 这里看自己的cpu核心数调整j*,开始编译
sudo make moudlues_install # 安装模块
sudo make install # 安装
sudo update-grub # 更新GRUB引导程序
如果这一步执行make 编译出错,解决完问题后重新make前要执行清理操作
make clean # 清除除了 “config和构建外围模块必要文件” 之外的所有文件
make mrproper # 清除全部的生成文件
5. 查看是否有对应的启动程序
cd /boot
ls # 查看是否有对应版本的文件
特别注意!!!!
如果是cpu核显,没有独显,在进入grub引导界面选择新内核启动时题主遇到了两个问题 (shift进入grub引导界面)
1. grub 引导完新内核后显示 disable by bios
解决方法:
重启机器进入bios,开启CPU虚拟化即可解决
2. 解决完上一个问题后原启动位置出现# dev/sda1: clean, 552599/6111232 files, 7119295/24414464 blocks
解决方法:
临时方法(重启后失效):在grub引导出按下e编辑,在如下位置添加nomodeset
成功以新内核进入后执行下面方法,或者一开始以旧内核启动,然后使用下面方法
sudo vim /etc/default/grub
# 找到quiet splash并在后面添加 nomodeset
GRUB_CMDLINE_LINUX_DEFAULT='quiet splash nomodeset'
保存文件然后退出
sudo update-grub # 更新grub
reboot # 重启,成功以新内核启动
uname -r # 查看新内核
补充,删除自己安装的内核
cd /boot/ # 删除config,System,vmlinuz,initrd 对应的内核版本
cd /lib/modulues # 删除对应的版本
cd /var/lib/initramfs-tools/ # 删除对应的版本包
sudo update-grub # 更新grub