草稿待审 — ethtool / lspci / modinfo 基于文档核查,尚未实际执行;sysfs 路径已在 WSL2 (Ubuntu 24.04, kernel 6.6.114.1) 验证通过。
服务器网卡故障或需要升级驱动时,先确认当前驱动名称与版本,再判断是内核模块问题还是硬件兼容问题。
先确认网卡接口名
ip -br link
通过 sysfs 直接查看驱动
sysfs 暴露了内核为每个网卡绑定的驱动信息,无需安装额外工具 [4]。
IFACE=eth0
readlink /sys/class/net/$IFACE/device/driver
输出类似 ../../../../../../bus/vmbus/drivers/hv_netvsc,最后一段就是驱动名。
用 ethtool 查看驱动详情
ethtool 可以直接查询网卡驱动和硬件设置 [2]。
ethtool -i eth0
该命令会输出 driver、bus-info、module 等字段,适合快速确认模块名与加载的内核模块是否一致。
用 lspci 与 modinfo 补充定位
物理机里,网卡挂在 PCI 总线上 [1]。
lspci -nnk | grep -A3 -i net
输出中的 Kernel driver in use 行即当前绑定驱动;如果该行缺失,说明驱动未加载。拿到驱动名后,用 modinfo 查看版本、参数和固件依赖 [3]。
modinfo hv_netvsc
排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
| readlink 返回空 | 网卡为虚拟设备或驱动未绑定 | 检查 /sys/class/net/$IFACE/device 是否存在 |
| ethtool: command not found | 未安装 ethtool | apt install ethtool |
| lspci: command not found | 未安装 pciutils | apt install pciutils |
| modinfo: invalid module | 模块名拼写错误 | 用 ethtool -i 或 sysfs 确认模块名 |
回滚与局限性
上述命令均为只读查询,不会修改系统配置或驱动状态,无需回滚。
WSL2 使用 hv_netvsc 半虚拟化驱动,与物理机 PCI 网卡场景不同。lspci / ethtool / modinfo 未在本次 WSL 实测中执行(apt 安装超时),结果基于官方手册验证 [5]。部分容器环境无 /sys/class/net/<iface>/device 目录,sysfs 方法不适用。
参考资料
- [1] lspci(8) — Linux manual page(lspci)
- [2] ethtool(8) — Linux manual page(ethtool)
- [3] modinfo(8) — Linux manual page(modinfo)
- [4] sysfs(5) — Linux manual page(sysfs)
- [5] Softnet Driver Issues — The Linux Kernel documentation(driver)
文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。