Wie finde ich heraus, welches Kernelmodul für eine bestimmte Netzwerkschnittstelle verwendet wird?
Wie finde ich heraus, welches Kernelmodul für eine bestimmte Netzwerkschnittstelle verwendet wird?
Antworten:
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.
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 driver
Verzeichnis 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 module
Verzeichnis ist ein Symlink zum Modulknoten in sysfs.
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
veth
)? Es ist möglich mitethtool -i IFACE_NAME
, aber wie kann man es von sysfs finden?