Wie finde ich heraus, welches Kernelmodul sich hinter einer Netzwerkschnittstelle befindet?

17

Wie finde ich heraus, welches Kernelmodul für eine bestimmte Netzwerkschnittstelle verwendet wird?

Matt Joiner
quelle

Antworten:

17

Auf der Kommandozeile ausführen

sudo lshw -C network 

Für jede Netzwerkschnittstelle erhalten Sie einen Abschnitt, der mit beginnt *-network. Jeder Abschnitt logical name:enthält eine Zeile mit dem Schnittstellennamen und eine configuration:Zeile mit dem Treiber und einigen anderen Informationen.

Florian Diesch
quelle
10

Sie können sysfs abfragen, um diese Informationen anzuzeigen. So stellen Sie fest, welchen Treiber eine Netzwerkschnittstelle verwendet:

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

... wo <devname>ist sowas eth0. Dieses driverVerzeichnis ist ein Symlink zum Treiberknoten in sysfs.

So rufen Sie den Namen des Moduls ab, das diesen Treiber bereitstellt:

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

... und dieses moduleVerzeichnis ist ein Symlink zum Modulknoten in sysfs.

Jeremy Kerr
quelle
Wie erkennt man virtuelle Fahrer (zB veth)? Es ist möglich mit ethtool -i IFACE_NAME, aber wie kann man es von sysfs finden?
Pevik
4

IMHO für Skripte ist es am besten, sysfs info zu verwenden (wie Jeremy Kerr zeigt), aber für weitere Informationen:

ethtool -i IFACE_NAME

Z.B:

$ 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
quelle
1

Für USB-Geräte können Sie den lsusbBefehl verwenden, z.

lsusb -t
Pierz
quelle