opcjonalny sterownik poprawnie dopasował identyfikator USB i ładuje sterownik dla tego urządzenia. Na przykład
# lsusb
Bus 001 Device 002: ID 19d2:0031 ONDA Communication S.p.A. ZTE MF636
Bus 001 Device 003: ID 12d1:14ac Huawei Technologies Co., Ltd.
Tworzy także urządzenia ttyUSBX do zarządzania sprzętem
crw-rw---- 1 root uucp 188, 0 Jul 4 13:48 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Jul 4 13:49 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Jul 4 13:35 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Jul 4 13:37 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Jul 4 13:37 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Jul 4 13:37 /dev/ttyUSB5
crw-rw---- 1 root uucp 188, 6 Jul 4 13:37 /dev/ttyUSB6
crw-rw---- 1 root uucp 188, 7 Jul 4 13:37 /dev/ttyUSB7
Mam jednak więcej niż jedno urządzenie szeregowe USB i chcę wiedzieć, który ttyUSB jest dla którego USBID. Dawny. / dev / ttyUSB1 -> 19d2: 0031
Czy znasz punkt, w którym mogę uzyskać te informacje?
Odpowiedzi:
Spójrz na system plików sysfs. Przykład mojego numeru seryjnego USB:
Jak widać,
ttyUSB0
mapy067b:2303
na moim komputerze. Inne miejsca warte odwiedzenia/sys/class/tty/
. Zwróć uwagę na dowiązania symboliczne.źródło
cat
wuevent
pliku z wynikufind /sys -name ttyACM0
, na przykład. Zastąp nazwę węzła urządzenia szeregowego.Możesz spróbować sprawdzić, czy twoje urządzenia są zarejestrowane pod / dev / serial / by-id /
Nazwy te powinny być spójne i będą wskazywać (dowiązanie symboliczne) do poprawnego ttyUSBx
źródło
ls -l /dev/serial/by-id
zwraca tylko jeden adapter../../ttyUSB1
, podczas gdyls -l /sys/bus/usb-serial/devices
pokazuje mi oba. Więc nie sądzę, że to dobra odpowiedź.Miałem podobny problem .
Napisz to do /etc/udev/rules.d/50-usb.rules
do końca. Restart.
Teraz możesz użyć,
/dev/ONDA
aby dostać się do urządzenia ONDA.Jeśli chcesz, aby użytkownicy inni niż root mogli z nich korzystać, dodaj
do końca każdej linii.
źródło
udevadm info --name=/dev/ttyACM0
Chciałbym użyć udev i napisać kilka reguł, które tworzą dowiązania symboliczne dla urządzeń.
Aby uzyskać wystarczającą ilość informacji do rozróżnienia urządzeń, spróbuj czegoś takiego dla wszystkich urządzeń:
źródło
Poniższe polecenia podadzą mi listę nazw urządzeń ttyUSB, które są powiązane z 19d2: 0016 (który jest identyfikatorem „trybu modemu” dla drążka ZTE MF831 LTE, twoje mogą się różnić.):
Spowoduje to zapętlenie listy plików o nazwie ttyUSB *, w tym dowiązań symbolicznych, w / sys / bus / usb / devices. W wynikach szukamy pliku o nazwie modalias i szukamy ciągu zawierającego identyfikator dostawcy „v” „19d2” i identyfikator produktu „p” 0016. Jeśli dane wyjściowe są zgodne, powtórzymy ciąg znaków poprzedzony „/ dev / „przed USB? Nazwa. Afaik pierwszy lub zwykle ostatni (najwyższy numer) to port modemu dla urządzeń ZTE. Możesz wysłać wyniki do pliku w / tmp / i odpowiednio nagłówkiem -n1 lub tail -n1. Jeśli masz huby, być może będziesz musiał zwiększyć maxdepth.
To nie jest najbardziej elegancki sposób, ale będzie działał na prawie każdym wariancie Linuksa.
źródło