Jeśli do mojego celu podłączono jedno urządzenie i załadowano wiele sterowników dla tego urządzenia, jak mogę zrozumieć, które urządzenie używa tego sterownika?
linux
linux-kernel
Alexios
źródło
źródło
lspci -v
robi to samo.lspci -nk
pokaże ci dołączone sterowniki. Ogólnie rzecz biorąc, sysfs jest właściwym miejscem do wyszukiwania.vendorID:productID
? A co jeśli nie jest to urządzenie PCI, a widzisz je tylkolsusb
na przykład?Oto mały skrypt, który napisałem :
Przykładowe dane wyjściowe:
źródło
veth
inne sterowniki wirtualne. IMHO jedynym rozwiązaniem jest użycieethtool
lublshw
.sudo lspci -v
pokaże to. lubię to:Możesz również połączyć to z
grep
następującymi:źródło
Jeśli chcesz po prostu używać sysfs i nie chcesz zajmować się wszystkimi tymi poleceniami, które ostatecznie i tak zaglądają do sysfs, oto jak:
powiedzmy, co to jest moduł / sterownik dla eth6? „sfc” to jest
lub jeszcze lepiej ... niech readlink rozpozna dla Ciebie ścieżkę.
więc ... aby dowiedzieć się, jakie są sterowniki dla wszystkich interfejsów sieciowych:
źródło
Możesz użyć
lsmod
polecenia, aby uzyskać status załadowanych modułów / sterowników urządzeń w jądrze Linux.W przypadku konkretnego urządzenia możesz także użyć,
dmesg |grep <device-name>
aby uzyskać szczegółowe informacje.źródło
W przypadku urządzeń opartych na USB możesz zobaczyć nazwę sterownika, używając
lsusb
polecenia:I / lub używasz,
lshw
który wylicza urządzenia we wszystkich magistralach, w tym USB, PCI itp., Dzięki czemu możesz zobaczyć, którego sterownika używa:źródło