Как мне узнать, какой модуль ядра находится за сетевым интерфейсом?


Ответы:


17

В командной строке запустите

sudo lshw -C network 

Для каждого сетевого интерфейса вы получите раздел, начинающийся с *-network. Каждый раздел содержит logical name:строку, содержащую имя интерфейса и configuration:строку, содержащую драйвер и некоторую другую информацию.


10

Вы можете запросить у sysfs эту информацию. Чтобы узнать, какой драйвер использует сетевой интерфейс:

ls -l /sys/class/net/<devname>/device/driver

... где- <devname>то как eth0. Этот driverкаталог будет символической ссылкой на узел драйвера в sysfs.

Чтобы получить имя модуля, который предоставляет этот драйвер:

ls -l /sys/class/net/<devname>/device/driver/module

... и этот moduleкаталог будет символической ссылкой на узел модуля в sysfs.


Как обнаружить виртуальные драйверы (например veth)? Это возможно с ethtool -i IFACE_NAME, но как найти его из sysfs?
pevik

4

ИМХО для сценариев лучше всего использовать информацию sysfs (как показывает Джереми Керр), но для большей информации:

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

1

Для USB-устройств вы можете использовать lsusbкоманду, например:

lsusb -t
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.