Kylin麒麟V10系统升级内核到5.19
KylinV10的内核默认是4.19,由于目前在开发ebpf,要用到一些特性,而最新的ebpf loop要求的版本至少是5.17,因此升级到5.19比较合适。

安装编译依赖
yum install -y ncurses-devel flex openssl-devel bison elfutils-libelf-devel bc kernel-devel-$(uname -r) kernel-headers-$(uname -r)
yum groupinstall "Development Tools"
#这里是ebpf要用到的,可以选择安装,特别是bpftool可以使用源码安装最新版本的
yum install -y kernel-devel clang llvm libbpf-devel bpftool iproute
下载内核版本
kernel地址:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.19.tar.gz
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.19.tar.gz
tar -xzvf linux-5.19.tar.gz
cd linux-5.19
编译内核
#编译参数说明
# 打开菜单界面,允许用户交互式地配置内核选项
## 使用箭头和空格键操作,按Enter键进入子菜单或确认选项,按Ctrl+X键保存并退出
make menuconfig
# 自动将所有内核选项设置为“是”,即启用所有选项
## 通常用于构建一个包含所有功能的内核,以便进行全面的测试或调试
make allyesconfig
# 自动将所有内核选项设置为“否”,即禁用所有选项
## 通常用于构建一个最小化的内核,以便在嵌入式系统或其他资源受限的环境中运行
make allnoconfig
#純文本界面
make config
#开始编译,这里选择的是菜单编译方式,编译过程中如果有报错,参考后面的编译问题
make menuconfig
make -j$(nproc)
make modules
make modules_install
make -j$(nproc)
make install
修改系统默认内核
#查看系统默认内核
grubby --default-kernel
#如果不是最新的需要手动设定,如果已经是最新的了直接重启即可
grubby --set-default /boot/vmlinuz-5.19.0
# 重启验证
reboot
# 重启以后验证版本
uname -a


编译问题
- 如果
make modules报错:.tmp_vmlinux.btf: pahole (pahole) is not available
解决方法:vim .config ->设置 CONFIG_DEBUG_INFO_BTF=n - 如果
make modules报错:No rule to make target 'certs/kylinos.pem'
解决方法:vim .config ->设置 CONFIG_SYSTEM_TRUSTED_KEYS="" - 如果
make install报错:kmod-kvdo编译报错
解决方法:yum remove dkms