O driver opcional corresponde ao ID USB e carrega o driver para este dispositivo. Por exemplo
# 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.
Ele também cria dispositivos ttyUSBX para gerenciar o hardware
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
No entanto, tenho mais de um dispositivo serial USB e quero saber qual ttyUSB é para qual USBID. Ex. / dev / ttyUSB1 -> 19d2: 0031
Você conhece algum ponto em que eu possa obter essas informações?
Respostas:
Dê uma olhada no sistema de arquivos sysfs. Um exemplo para o meu serial USB:
Como você pode ver,
ttyUSB0
mapeia para067b:2303
no meu computador. Outros locais que vale a pena explorar são/sys/class/tty/
. Preste atenção aos links simbólicos.fonte
cat
ouevent
arquivo a partir do resultado defind /sys -name ttyACM0
, por exemplo. Substitua o nome do nó do seu dispositivo serial.Você pode tentar ver se os seus dispositivos estão registrados em / dev / serial / by-id /
Esses nomes devem ser consistentes e apontarão (link simbólico) para o ttyUSBx correto
fonte
ls -l /dev/serial/by-id
retorna apenas um adaptador../../ttyUSB1
, enquantols -l /sys/bus/usb-serial/devices
me mostra os dois. Portanto, não acho que seja uma boa resposta.Eu tive um problema semelhante .
Escreva para /etc/udev/rules.d/50-usb.rules
até o fim. Reinicie.
Agora você pode usar
/dev/ONDA
para acessar o seu dispositivo ONDA.Se você deseja que usuários não root possam usá-los, adicione
até o final de cada linha.
fonte
udevadm info --name=/dev/ttyACM0
Eu usaria o udev e escreveria algumas regras que criam links simbólicos para os dispositivos.
Para obter informações suficientes para distinguir os dispositivos, tente algo assim para todos os dispositivos:
fonte
Os comandos a seguir me fornecerão uma lista dos nomes de dispositivos ttyUSB associados ao 19d2: 0016 (que é o ID do "modo modem" de um stick ZTE MF831 LTE, o seu pode diferir.):
Isso percorrerá uma lista de arquivos com o nome de arquivo ttyUSB *, incluindo links simbólicos, em / sys / bus / usb / devices. Nos resultados, procuraremos um arquivo chamado modalias e procuraremos uma string contendo o ID do fornecedor "v" "19d2" e o ID do produto "p" 0016. Se a saída corresponder, ecoaremos uma string com o prefixo "/ dev / "na frente do USB? nome. Afaik o primeiro ou o geralmente o último (número mais alto) é a porta do modem para dispositivos ZTE. Você pode fazer eco dos resultados em um arquivo em / tmp / e head -n1 ou tail -n1 nas linhas de acordo. Se você tiver hubs, provavelmente precisará aumentar a profundidade máxima.
Esta não é a maneira mais elegante, mas funcionará em praticamente qualquer variante do Linux.
fonte