Wenn an meinem Ziel ein Gerät angeschlossen ist und viele Treiber für dieses Gerät geladen sind, wie kann ich nachvollziehen, welches Gerät welchen Treiber verwendet?
linux
linux-kernel
Alexios
quelle
quelle
lspci -v
macht es von selbst.lspci -nk
zeigt Ihnen angehängte Treiber. Im Allgemeinen ist das sysfs der richtige Ort zum Suchen.vendorID:productID
? Was ist auch, wenn es sich nicht um ein PCI-Gerät handelt und Sie es nurlsusb
zum Beispiel sehen?Hier ist ein kleines Skript, das ich geschrieben habe :
Beispielausgabe:
quelle
veth
und andere virtuelle Treiber finden würde . IMHO ist die einzige Lösung zu verwendenethtool
oderlshw
.sudo lspci -v
werde es zeigen. so was:Sie können es auch so kombinieren
grep
:quelle
Wenn Sie einfach sysfs verwenden und nicht mit all diesen Befehlen umgehen möchten, die irgendwann in sysfs auftauchen, gehen Sie wie folgt vor:
Was ist das Modul / der Treiber für eth6? "sfc" ist es
oder noch besser ... lass readlink den Pfad für dich auflösen.
Um herauszufinden, welche Treiber für all Ihre Netzwerkschnittstellen erforderlich sind, gehen Sie wie folgt vor:
quelle
Mit dem
lsmod
Befehl können Sie den Status geladener Module / Gerätetreiber im Linux-Kernel abrufen.Für ein bestimmtes Gerät können Sie auch
dmesg |grep <device-name>
die Details abrufen.quelle
Bei USB-basierten Geräten können Sie den Treibernamen mit dem folgenden
lsusb
Befehl anzeigen:Und / oder Sie verwenden eine
lshw
Auflistung der Geräte an allen Bussen, einschließlich USB, PCI usw., damit Sie sehen können, welcher Treiber verwendet wird:quelle