麒麟系统新硬件不识别时,可通过四种方法更新内核:一、YUM在线升级;二、离线RPM安装;三、本地CVE补丁仓库升级;四、自定义ISO注入新内核。

如果您正在使用麒麟操作系统,但新硬件(如最新网卡、GPU或USB控制器)无法被识别或正常工作,则可能是当前内核版本过低,缺少对应驱动模块。以下是手动更新Linux内核以支持新硬件的多种方法:
一、通过YUM在线仓库升级内核
该方法适用于已配置有效网络源的银河麒麟高级服务器系统,可自动解决依赖并安装适配的完整内核套件。
1、确认当前系统版本与架构,执行命令:nkvers 和 uname -m。
2、备份原有yum源配置文件:cp /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak(x86平台)或 cp /etc/yum.repos.d/kylin-sp3.repo /etc/yum.repos.d/kylin-sp3.repo.bak(ARM平台)。
3、编辑源文件,指向含新版内核的官方仓库,例如SP3-2403更新源:baseurl=https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/$basearch/。
4、清理缓存并重建元数据:yum clean all && yum makecache。
5、执行内核更新命令:yum update kernel kernel-core kernel-modules kernel-modules-extra -y。
6、重启系统后,使用 uname -r 验证新内核是否生效。
二、离线RPM包方式安装指定内核版本
该方法适用于无外网环境或需精确控制内核版本的场景,支持从补丁包或独立RPM文件手动部署内核组件。
1、下载目标内核RPM包集合,例如4.19.90-23.18.v2101.ky10系列,确保架构匹配(x86_64 或 aarch64)。
2、将所有RPM包上传至目标系统 /tmp 目录下。
3、进入该目录并执行批量安装:rpm -ivh kernel-*.rpm --force --nodeps(若存在依赖冲突,可先用 rpm -qpR *.rpm 检查依赖关系)。
4、验证已安装内核列表:rpm -qa | grep kernel。
5、更新GRUB引导配置:grub2-mkconfig -o /boot/grub2/grub.cfg(x86)或 grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg(UEFI ARM)。
三、基于本地CVE补丁仓库升级内核
该方法专用于监管合规场景,通过离线补丁包集成安全修复与硬件支持增强,适用于已下发CVE漏洞修复包的政企环境。
1、将监管机构提供的补丁压缩包(如 sp3-2403-x86-CNNVD.tar.gz)上传至 /mnt 目录。
2、解压至指定路径:tar -xf /mnt/sp3-2403-x86-CNNVD.tar.gz -C /mnt/。
3、进入解压后的CVE_pkgs目录,构建本地YUM仓库:cd /mnt/CVE_pkgs && createrepo .。
4、配置本地源指向该路径:baseurl=file:///mnt/CVE_pkgs,并设置 gpgcheck=0。
5、执行升级命令:yum update kernel\* --disablerepo=\* --enablerepo=ks10-adv-cve-local -y(需将仓库ID替换为实际配置名称)。
四、自定义ISO镜像注入新内核
该方法适用于大规模批量部署场景,通过重构安装介质,使新装系统直接搭载支持新硬件的内核,避免后期逐台升级。
1、准备新内核RPM包及配套initramfs工具链。
2、挂载原始麒麟ISO镜像:mount -o loop Kylin-Server-V10-SP3.iso /mnt/iso。
3、复制ISO内容至工作目录,替换 isolinux/vmlinuz 与 isolinux/initrd.img 为新内核及对应initramfs。
4、在 Packages/ 目录中注入新 kernel-*.rpm,并运行 createrepo . 更新仓库元数据。
5、重新封装ISO:mkisofs -o Kylin-Server-V10-SP3-updated.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /path/to/workdir。










