:YT6801 PCIe 网卡驱动移植与 vermagic 排查)
摘要以 YT6801 PCI 网卡为例解释 vermagic 不匹配并演示从官方源码到内核树内模块的移植思路。适用对象需要为 RK3588 PCIe 网卡适配 Linux 6.1 内核的开发者。源码版本、PCI ID 和设备树必须与硬件实际情况一致。文章目录一、问题现象二、理解 vermagic三、获取并审查源码四、集成到内核树五、目标设备验证小结工作流实测截图专栏导航参考资料一、问题现象设备可以枚举出 PCI 网卡但接口没有出现或者加载旧模块时提示内核版本不匹配。常见原因是目标设备运行的 RT 内核与原模块编译时使用的内核版本、配置或编译选项不同。先确认硬件lspci-nnk-d1f0a:6801本次 YT6801 的 PCI ID 为1f0a:6801设备地址为0002:21:00.0。PCI 地址可能随设备树和枚举顺序变化定位硬件时优先使用厂商/设备 ID。二、理解 vermagicmodinfo yt6801|grep-Eversion|vermagic|filename|alias|intreevermagic包含内核版本、SMP、抢占模型和架构等信息。旧的 6.1.84 模块不能直接替换到6.1.99-rt36-rk3588因为即使源码相同RT 配置也可能不同。三、获取并审查源码建议从芯片厂商官方渠道获取 YT6801 Linux 驱动源码并记录版本、下载地址和 SHA256。不要把来源不明的二进制.ko直接放进 rootfs。本次采用 Motorcomm 官方yt6801-linux-driver-1.0.34.zip并保留其版权和许可说明Motorcomm 下载中心。下载归档的实测 SHA256 为877e6953fc6eb47232a74e47b0daf33de0e7f9e9a395d3bc10d500d3c4150af8上面的哈希只适用于本次下载文件厂商更新文件后应重新计算。四、集成到内核树内核树内集成至少需要drivers/net/ethernet/motorcomm/Kconfig drivers/net/ethernet/motorcomm/Makefile drivers/net/ethernet/motorcomm/yt6801/Makefile drivers/net/ethernet/motorcomm/yt6801/*.c还要在drivers/net/ethernet/Kconfig中source新的 Kconfig并在drivers/net/ethernet/Makefile中加入motorcomm/。否则源码虽然存在也不会进入 Kbuild 依赖图。同时在 defconfig 中启用CONFIG_NET_VENDOR_MOTORCOMMy CONFIG_FUXIm构建后检查modulekernel-6.1/drivers/net/ethernet/motorcomm/yt6801/yt6801.kotest-f$modulemodinfo$module|grep-Eversion|alias|vermagic|intree本次实测关键元数据为version: 1.0.34 alias: pci:v00001F0Ad00006801sv*sd*bc*sc*i* intree: Y vermagic: 6.1.99-rt36-rk3588 SMP preempt_rt mod_unload aarch64还应检查最终 image DEB 中包含该模块不能只检查源码目录。五、目标设备验证sudomodprobe yt6801 lspci-nnk-d1f0a:6801ls-1/sys/bus/pci/devices/0002:21:00.0/net/yt_if$(ls-1/sys/bus/pci/devices/0002:21:00.0/net/|head-n1)ethtool-i$yt_ifip-brlink接口名不应写死为eth2。驱动加载顺序变化后YT6801 可能成为eth0RK GMAC 则变为eth1、eth2。工程中应使用 MAC 地址或稳定的 udev/systemd link 规则。小结驱动移植的正确顺序是“确认硬件 ID—获取源码—匹配内核 API—集成 Kconfig—构建—重启验证”而不是复制一个旧.ko文件。工作流实测截图图1eth0 的 PCIe 拓扑、yt6801 驱动路径和总线地址。图2驱动版本、固件版本和能力字段链路是否 UP 仍需单独检查。专栏导航专栏LubanCat RK3588 实时 Linux 开发实战第 7/18 篇上一篇LubanCat RK3588 实时 Linux 开发六启用 gs_usb 驱动并完成 USB-CAN 收发下一篇LubanCat RK3588 实时 Linux 开发八RT 内核 DEB 安装、启动校验与安全回滚参考资料Linux 外部模块构建文档Motorcomm 下载中心Linux PCI 文档文中的版本号、接口名、设备地址和测试数据均应以自己的板卡实测为准引用命令前请先确认当前 SDK、内核和启动布局。标签YT6801PCIe网卡Linux驱动vermagicRK3588