如何找到网络接口后面的内核模块?

如何找到网络接口后面的内核模块?

如何找出任何给定网络接口所使用的内核模块?

答案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

相关内容