如何找出任何给定网络接口所使用的内核模块?
答案1
在命令行运行
sudo lshw -C network
对于每个网络接口,您将获得一个以 开头的部分*-network
。每个部分都有一行logical name:
包含接口名称,还有configuration:
一行包含驱动程序和其他一些信息。
答案2
您可以查询 sysfs 来获取此信息。要了解网络接口正在使用哪个驱动程序:
ls -l /sys/class/net/<devname>/device/driver
... 其中<devname>
类似于eth0
。此driver
目录将是 sysfs 中驱动程序节点的符号链接。
要获取提供该驱动程序的模块的名称:
ls -l /sys/class/net/<devname>/device/driver/module
...并且该module
目录将是 sysfs 中模块节点的符号链接。
答案3
我认为对于脚本来说最好的是使用 sysfs 信息(正如 Jeremy Kerr 所示),但更多信息如下:
ethtool -i IFACE_NAME
例如:
$ ethtool -i eth0
driver: 8139cp
version: 1.3
firmware-version:
bus-info: 0000:00:07.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
答案4
对于 USB 设备,您可以使用lsusb
以下命令:
lsusb -t