Powiązane pytanie: Powiadomienie o połączeniu / rozłączeniu USB
Gdy urządzenie jest podłączone / odłączone, otrzymuję natychmiastowe powiadomienie, to świetnie. Ale aby był (prawie) idealny, chcę również uzyskać nazwę pliku urządzenia /dev/ttyUSB0
, a jeszcze lepiej wszystkie dowiązania symboliczne do niego.
Ale nie mogę znaleźć sposobu na uzyskanie tych informacji z udev
, z lsusb
lub w jakikolwiek inny sposób. Jedyny identyfikator posiadanego urządzenia to ścieżka urządzenia /devices/pci0000:00/0000:00:1d.0/usb5/5-1
. Jak uzyskać z niego nazwę urządzenia?
/dev/disk/
, mogą się przydać ścieżki by-label i by-id./dev/disk
zawiera tylko urządzenia pamięci masowej. Powiedz, że nic nie ma/dev/ttyUSB0
./dev/ttyUSB0
etc?Odpowiedzi:
Przypuśćmy, że próbuję znaleźć urządzenie dla mojej kamery UVC, lsusb daje mi:
Nazwa pliku urządzenia to
/dev/bus/usb/001/004
(pierwszy komponent to identyfikator magistrali, następny to identyfikator urządzenia).źródło
/dev/ttyUSB0
.Właśnie zbudowałem skrypt do tego, nie jest ładny, ale działa dla mnie.
Testowałem ten skrypt na Arch Linux z następującymi konfiguracjami:
A nazwa mojego urządzenia
/dev/sdb
jest zupełnie inna niż twoja, mam nadzieję, że to również zadziała.Zauważ też, że ten skrypt zależy od
usbutils
pakietu dlausb-devices
programu, uważam, że jest instalowany domyślnie na wszystkich systemach Linux, ale mogę się mylić.Skrypt
usbname
:Stosowanie:
źródło