Ubuntu:编译升级Linux内核

1. 说明

基于Ubuntu20.04 升级 Linux kernel 到 5.14.11。

2. 升级内核

下载内核源代码

Linux5.14.11 https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.11.tar.xz

解压缩

# xz -d linux-5.10.13.tar.xz
# tar xf linux-5.10.13.tar

安装必要编译库

#apt-get update
#apt-get install libncurses5-dev build-essential kernel-package
  • libncurses5-dev是为之后配置内核能运行 make menuconfig程序做准备
  • Build-essential为编译工具
  • kernel-package是编译内核工具

生成 .config

1. 重新生成新的版本

make menuconfig

2. 复制当前 config

sudo find /boot/ \( -iname "*config*" -a -iname "*`uname -r`*" \) -exec cp -i -t ./ {} \;
mv *`uname -r`* .config

注:两者二选一

修改 .config

保证能够正常编译 

#CONFIG_SYSTEM_TRUSTED_KEYS=""
#CONFIG_DEBUG_INFO_BTF

 编译

# sudo make deb-pkg KDEB_PKGVERSION=$(make kernelversion) -j64

编译完成后会在上级目录生成linux-image-*.deb和linux-headers-*.deb文件,如下图: 

 后面的安装过程就是在安装这里的image和headers文件。

安装

sudo dpkg -i ../linux-image*.deb ../linux-headers*.deb

重启系统

reboot

 

3. 设置相关启动项

vim /etc/default/grub

GRUB_DEFAULT=0                        # 默认启动项,从0开始,依次加 1
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"             # 启动参数
# GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,115200n8" # 添加引导信息
GRUB_CMDLINE_LINUX=""

4. 移除内核

手动移除 

1. 删除掉/lib/modules/目录下过时的内核库文件

2. 删除掉/usr/src/kernels/目录下过时的内核源代码

3. 删除掉/boot目录下启动的核心档案以及内核映像

4. 更新启动文件,update-grub

自动移除

移除指定版本,如5.14.11

apt autoremove linux-headers-5.14.11 linux-image-5.14.11
update-grub

5. 错误记录

1. 编译时报 vmlinux-gdb 相关错误 

cannot represent change to vmlinux-gdb.py

dpkg-source: error: cannot represent change to vmlinux-gdb.py:
dpkg-source: error:   new version is symlink to /home/raymond/linux/scripts/gdb/vmlinux-gdb.py
dpkg-source: error:   old version is nonexistent

Resolved:

rm vmlinux-gdb.py

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翔底

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值