必须升级内核镜像与模块,先用nkvers、uname -r和rpm -qa | grep kernel确认当前版本及架构,再通过YUM在线安装全套RPM包或离线部署CVE补丁仓库升级,最后重启并验证uname -r输出及GRUB启动项。

银河麒麟系统提示“内核版本过低”或需适配新硬件(如昇腾Atlas 300I Duo、鲲鹏920优化模块)、新安全策略、或运行特定AI框架时,必须升级Linux系统核心内核版本,不能仅靠更新软件包完成,必须替换并激活新内核镜像与配套模块。
确认当前系统状态与目标版本
执行 nkvers 查看完整系统版本、构建号和当前内核精确版本,例如输出中含 Kernel: 4.19.90-17.12.v2101.ky10.aarch64;再运行 uname -r 确认正在运行的内核;最后用 rpm -qa | grep kernel 列出所有已安装的内核相关RPM包,避免后续安装时版本混杂。
这一步不可跳过——曾有运维人员误将SP1系统当作基础版操作,导致安装的内核包缺少关键签名验证机制,重启后卡在GRUB界面无法进入系统。
访问麒麟软件官网对应版本白皮书,确认目标内核(如 4.19.90-23.18.v2101.ky10)是否支持你的CPU架构(【aarch64或x86_64必须严格匹配】)及业务所需特性(如crashkernel内存预留、NPU驱动兼容性)。
方法一:在线YUM源批量安装全套RPM包(推荐用于网络可达环境)
确保系统已配置有效麒麟官方仓库(如 ks10-adv-updates),执行 sudo yum clean all && sudo yum makecache 刷新元数据。
列出可用内核包:sudo yum list kernel\* --showduplicates | grep 23.18,确认目标版本存在且架构一致。
下载全部5个必需RPM包到本地目录(不能只下 kernel- 主包):
kernel-core-4.19.90-23.18.v2101.ky10.aarch64.rpmkernel-modules-4.19.90-23.18.v2101.ky10.aarch64.rpmkernel-4.19.90-23.18.v2101.ky10.aarch64.rpmkernel-modules-extra-4.19.90-23.18.v2101.ky10.aarch64.rpmkernel-modules-internal-4.19.90-23.18.v2101.ky10.aarch64.rpm
【必须一次性用单条rpm命令安装全部5个包,顺序无关但缺一不可】:
sudo rpm -ivh kernel-*.rpm
若报错提示缺失 kylin-fonts,立即同步安装对应noarch包,否则GRUB菜单中文可能乱码。
方法二:离线部署CVE补丁仓库升级(适用于断网或强合规审计场景)
将监管机构下发的补丁包(如 sp3-2403-aarch64-CNNVD.tar.gz)上传至 /mnt 目录。
解压并构建本地仓库:sudo tar -xf /mnt/sp3-2403-aarch64-CNNVD.tar.gz -C /mnt/ && cd /mnt/CVE_pkgs && sudo createrepo .
备份原仓库配置:sudo mv /etc/yum.repos.d/kylin_aarch64.repo /etc/yum.repos.d/kylin_aarch64.repo.bak
新建 /etc/yum.repos.d/local-cve.repo,内容为:
[local-cve]name=Local CVE Patch Repobaseurl=file:///mnt/CVE_pkgsenabled=1gpgcheck=0
执行 sudo yum update kernel\*。该方式会自动解析依赖并安装全套组件,无需手动筛选RPM包。
重启并验证新内核生效
执行 sudo reboot,系统重启后自动加载最新安装的内核(GRUB默认选中最新版本)。
登录后立即运行 uname -r,输出应为类似 4.19.90-23.18.v2101.ky10.aarch64 的字符串。
检查新内核是否被GRUB识别:sudo grep menuentry /boot/grub2/grub.cfg | head -n 3,确认列表顶部出现含目标版本号的启动项。
验证模块加载情况:lsinitrd /boot/initramfs-$(uname -r).img | grep -E "(nvme|npu|hisilicon)",确保业务所需驱动模块已嵌入initramfs。


















