Comment trouver le module du noyau derrière une interface réseau?

17

Comment savoir quel module de noyau est utilisé pour une interface réseau donnée?

Matt Joiner
la source

Réponses:

17

Sur la ligne de commande, exécutez

sudo lshw -C network 

Pour chaque interface réseau, vous obtiendrez une section commençant par *-network. Chaque section logical name:possède une ligne qui contient le nom de l'interface et une configuration:ligne qui contient le pilote et d'autres informations.

Florian Diesch
la source
10

Vous pouvez interroger sysfs pour vous fournir ces informations. Pour savoir quel pilote une interface réseau utilise:

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

... où <devname>est quelque chose comme eth0. Ce driverrépertoire sera un lien symbolique vers le nœud du pilote dans sysfs.

Pour obtenir le nom du module qui fournit ce pilote:

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

... et ce modulerépertoire sera un lien symbolique vers le nœud du module dans sysfs.

Jeremy Kerr
la source
Comment détecter les pilotes virtuels (par exemple veth)? C'est possible avec ethtool -i IFACE_NAME, mais comment le trouver à partir de sysfs?
pevik
4

À mon humble avis pour les scripts, le mieux est d'utiliser les informations sysfs (comme le montre Jeremy Kerr), mais pour plus d'informations:

ethtool -i IFACE_NAME

Par exemple:

$ 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
pevik
la source
1

Pour les périphériques USB, vous pouvez utiliser la lsusbcommande, par exemple:

lsusb -t
Pierz
la source