Mam kilka identycznych kart dźwiękowych USB i napisałem regułę udev, aby każda z nich otrzymała trwałą nazwę pasującą do określonego portu, do którego są przyłączone. Teraz dodałem kartę PCI USB 3.0, która bawi się numerami autobusów USB. czasami pci USB ładuje się przed wbudowanym USB i ma niższy numer magistrali, a czasem po i dostaje wyższy numer magistrali.
Co mogę zrobić, aby wymusić numery magistrali wbudowanej karty PCI?
Jeśli to nie zadziała, co mogę zrobić, aby uzyskać trwałe nazwy urządzeń dla identycznych (i bez numerów seryjnych) urządzeń USB, gdzie jedyną różnicą jest port, do którego są podłączone?
~ $ uname -srvmpio
Linux 4.19.0-0.bpo.1-amd64 #1 SMP Debian 4.19.12-1~bpo9+1 (2018-12-30) x86_64 unknown unknown GNU/Linux
Edytuj (dodano różne wyjścia lsusb -t) magistrale 9 i 10 mogą zamieniać się z 5 i 6 pozornie losowo. dodana karta pci usb3.0 pokazuje się jako 5 i 6 na pierwszym wyjściu i 9 i 10 na drugim. Czasami konfiguracja to:
/: Bus 10.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 3, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 09.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 12M
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
A innym razem, bez zmiany sprzętu, po ponownym uruchomieniu może być:
/: Bus 10.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
/: Bus 09.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
lsusb -t
) po dopasowaniu koncentratora.udevadm
pomaga zidentyfikować atrybuty, z którymi chcesz się dopasować.lsusb -t
wyjściem.