方法 1:通过 lspci
命令(推荐)
原理:列出 PCI 设备详情,直接关联网卡型号与驱动名称。
操作步骤:
lspci -v | grep -iA 10 "network\|ethernet"
- 输出示例:
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10) Subsystem: ASUSTeK Computer Inc. Device 8672 Flags: bus master, fast devsel, latency 0, IRQ 139 Memory at a1200000 (32-bit, non-prefetchable) [size=128K] Capabilities: [c8] Power Management version 3 Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ **Kernel driver in use: e1000e** <-- 当前驱动名称 Kernel modules: e1000e
- 关键点:
Kernel driver in use
明确标识当前驱动(如e1000e
),Kernel modules
显示可用驱动模块。
方法 2:使用 ethtool
命令
适用场景:已知网卡名称(如 eth0
、enp0s3
)。
操作:
ethtool -i eth0 # 替换 eth0 为你的网卡名
- 输出关键字段:
driver: e1000e <-- 驱动名称 version: 5.15.0-88-generic firmware-version: 0.5-4
- 依赖安装:若未安装,通过
sudo apt install ethtool
(Debian/Ubuntu)或sudo yum install ethtool
(RHEL/CentOS)获取。
方法 3:检查 /sys
文件系统
原理:Linux 内核通过 /sys
动态暴露设备信息。
操作:
cat /sys/class/net/eth0/device/driver/module/drivers # 替换 eth0
- 简化版:
readlink /sys/class/net/eth0/device/driver # 输出如:../../../../bus/pci/drivers/e1000e
路径末尾即为驱动名(如
e1000e
)。
方法 4:通过 dmesg
日志追溯
适用场景:检查驱动加载历史记录。
操作:
dmesg | grep -i "driver\|eth0" # 结合网卡名过滤
- 输出示例:
[ 5.372101] e1000e: Intel(R) PRO/1000 Network Driver [ 5.372103] e1000e: Copyright(c) 1999-2015 Intel Corporation. [ 5.372226] e1000e 0000:00:1f.6 eth0: Registered PHC clock
方法 5:使用 modinfo
验证驱动详情
适用场景:已知驱动名称后,查看详细信息。
操作:
modinfo e1000e | grep -E "description|version"
- 输出示例:
description: Intel(R) PRO/1000 Network Driver version: 5.15.0-88-generic
总结与建议
方法 | 优势 | 适用场景 |
---|---|---|
lspci -v |
无需网卡名,直接显示所有设备 | 快速全局查看 |
ethtool -i |
精确显示版本和固件信息 | 针对特定网卡深度分析 |
/sys 文件系统 |
无依赖,直接读取内核数据 | 脚本自动化场景 |
dmesg |
追溯驱动加载过程 | 调试启动问题 |
操作建议:
- 优先使用
lspci -v
或ethtool -i
,信息最直接。 - 普通用户需搭配
sudo
执行命令(除/sys
读取外)。 - 驱动名称通常与内核模块名一致(如
e1000e
、r8169
、iwlwifi
)。
引用说明:本文方法基于 Linux 内核文档(kernel.org)及
man
手册(man lspci
、man ethtool
),所有命令均为开源工具,数据来源可靠,符合 Linux 系统管理最佳实践。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4603.html