首页/系统/信创系统运维速查/信创平台驱动与内核模块适配
迁移适配65 条

信创平台驱动与内核模块适配

驱动需匹配架构与内核版本:优先整机厂商驱动包;自行编译模块要装同版本 kernel-devel,加载前用 modinfo 检查。

信创系统运维速查系统更新于 2026-10-13

驱动适配要匹配什么

Linux 驱动是内核模块,跟内核版本和 CPU 架构是硬绑定:为某个内核编译的模块换到另一个内核上会报格式不匹配。信创平台的驱动适配因此有三条规矩——优先用整机或板卡厂商提供的适配包;自编译必须装与 uname -r 完全一致的 kernel-devel;加载前先看 modinfo 的版本与签名信息。

基本信息

适用平台ARM64(鲲鹏、飞腾)与 x86_64 信创服务器与桌面
前置条件与运行内核一致的 kernel-devel,以及 gcc、make
关键命令uname -r、modinfo、modprobe、lsmod、dkms
生效方式modprobe 即时生效;开机自动加载需写 modules-load.d
权限要求root

典型使用场景

  • 整机或板卡(RAID 卡、万兆网卡、GPU)到货后安装厂商驱动
  • 系统内核升级后第三方驱动失效,需要重编
  • 排查设备识别不到,区分是驱动没装还是模块没加载
  • 把驱动纳入 DKMS 管理,减少内核升级后的人工介入
  • 交付文档记录驱动包版本,便于后续复现与升级

现状与安装验证

现状与安装验证
uname -r                                            # 当前运行内核,编译必须对齐它
lspci | grep -iE 'raid|gpu|ethernet' | head          # 识别板卡型号
dnf install -y kernel-devel-$(uname -r) gcc make     # 装与运行内核完全一致的开发头文件
modinfo <模块名> | head -15                           # 看清版本、依赖与签名
modprobe <模块名> && dmesg -T | tail -20               # 加载模块并看内核日志反馈
lsmod | grep <模块名>                                 # 确认模块已载入
echo <模块名> > /etc/modules-load.d/<模块名>.conf     # 配置开机自动加载
dkms status                                           # 纳管后查看 DKMS 状态

失败现象与指向

现象可能原因确认方式
modprobe 报 Invalid module format编译内核版本与运行内核不一致对比 modinfo 的 vermagic 与 uname -r
模块加载成功但设备仍不识别依赖模块未加载或固件缺失lsmod 与 dmesg 末尾报错
报 Key was rejected by service安全启动拒绝未签名模块查 mokutil --sb-state 与模块签名
内核升级后驱动失效模块未随新内核重编dkms status 或手动重编确认
内核升级与驱动是绑定的:升级前先确认第三方驱动是否有对应新内核的版本,或已纳入 DKMS 管理,否则重启后设备会消失——这一项应固定写进升级检查清单。
从非官方渠道获取的驱动包可能夹带未审计代码,生产环境只用厂商官方适配包或自行从源码编译,并留存校验值以便追溯。

易错点

  • kernel-devel 与运行内核版本不一致:编译能通过但加载时报格式错误,先把 uname -r 对齐
  • 内核升级后没重编第三方驱动:重启后设备不识别,容易被误判成硬件故障
  • 开了安全启动仍直接部署未签名模块:加载被拒,需要先处理签名或走审批流程
  • 驱动装完不做重启验证:只确认了当前运行状态,自动加载是否生效没验证
  • 不记录驱动来源与版本:下一次升级时无法判断该用哪个包,形成重复返工

数据来源与参考

  • man 5 modinfo
  • Linux 内核模块文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌