diferencie entre dispositivos USB idênticos no Linux

5

Estou usando dois adaptadores USB para serial no meu sistema Linux. Então, depende de quem é inserido primeiro, um deles será representado com o nome / dev / ttyUSB0 e o outro com / dev / ttyUSB1. Existe algum truque que eu possa fazer o nome persistente? Eu tenho três portas USB. É possível vincular o nome à porta física?

Obrigado,

    
por lang2 22.11.2011 / 17:36

1 resposta

4

Se você executar udevadm monitor --properties , deverá ver as várias propriedades das quais você pode criar regras. A propriedade ID_PATH indica a porta na qual o dispositivo foi conectado. Insira o serial para o dispositivo usb para ver o que o udev vê.

Portanto, deve ser fácil criar uma regra do udev que crie um symlink quando o dispositivo estiver conectado, algo como:

SUBSYSTEM=="usb_device", SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="xxxx", ENV{ID_PATH}=="pci....usb-0:1:0",SYMLINK+="ttyUSBport0"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="xxxx", ENV{ID_PATH}=="pci....usb-0:1:1",SYMLINK+="ttyUSBport1"

Isso é feito da memória, portanto, você desejará confirmar a sintaxe. Mude o idvendor e o idproduct para o USB VID e PID, e mude o ID_PATH para o que você encontrou em udevadm monitor .

Isso deve deixar o dispositivo normal / dev / ttyUSB0 lá, mas também criar um link simbólico para ele, dependendo de qual porta ele foi conectado. Se você usar o link simbólico no minicom ou o que estiver usando, sempre obterá o adaptador certo com base na porta na qual você o conectou.

    
por 23.11.2011 / 01:08

Tags