Wiki ADA

Projetos em Engenharia de Computação

Ferramentas do usuário

Ferramentas do site


nome-persistente-para-dispositivos-usb-serial

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
nome-persistente-para-dispositivos-usb-serial [2018/10/03 09:33]
amador
nome-persistente-para-dispositivos-usb-serial [2018/10/17 19:19] (atual)
amador
Linha 1: Linha 1:
-#REDIRECT nome persistente para dispositivos usb serial+=======Nome ​persistente para dispositivos ​USB serial======= 
 + 
 +Utilizamos vários dispositivos que se comunicam através de uma interface USB serial e sempre que conectamos um dispositivo em uma porta USB ele obtém um caminho relativo como ''/​dev/​ttyUSB0''​. Porém esse caminho não é persistente e pode mudar dependendo da ordem que os dispositivos são conectados. 
 + 
 + 
 +O objetivo desse artigo é apresentar uma maneira de configurar um caminho permanente (como ''/​dev/​arduino'',​ por exemplo) para um dispositivo conhecido. 
 + 
 + 
 +Esses dispositivos possuem uma interface USB-serial que geralmente converte um tráfego de dados seriais (UART) para tráfego de dados USB, dispensando a necessidade de uma porta serial [[RS-232]] dedicada. 
 +Todo dispositivo compatível com USB possui um //Vendor ID// e um //Product ID//. Isso pode ser verificado com o comando ''​lsusb'':​ 
 + 
 +<​code>​ 
 +ada@ec $ lsusb 
 +Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 +Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC 
 +Bus 001 Device 010: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC 
 +Bus 001 Device 005: ID 0402:5632 ALi Corp. USB 2.0 Host-to-Host Link 
 +Bus 002 Device 005: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC 
 +</​code>​ 
 + 
 +É possível notar no exemplo acima que três dispositivos utilizam o mesmo chip para a interface USB (o popular FTDI FT232) e, portanto, possuem o mesmo ''​Vendor ID''​ e ''​Product ID''​. Para diferenciar um dispositivo do outro, precisamos de um identificador único, como um número serial. Com o comando ''​udevadm''​ podemos encontrar esse número: 
 + 
 +<​code>​ 
 +ada@ec $ udevadm info -a -n /​dev/​ttyUSB1 | grep '​{serial}'​ | head -n1 
 +    ATTRS{serial}=="'''​A6008isP'''"​ 
 +</​code>​ 
 + 
 +Com essas informações é possível criar uma regra UDEV que irá criar um [[link simbólico]] sempre que um dispositivo cadastrado for reconhecido. Regras UDEV normalente ficam localizadas em ''/​etc/​udev/​rules.d''​. Crie um arquivo chamado ''​99-usb-serial.rules''​ e adicione as seguintes linhas: 
 + 
 +<​code>​ 
 +SUBSYSTEM=="​tty",​ ATTRS{idVendor}=="​0403",​ ATTRS{idProduct}=="​6001",​ ATTRS{serial}=="​A6008isP",​ SYMLINK+="​arduino"​ 
 +SUBSYSTEM=="​tty",​ ATTRS{idVendor}=="​0403",​ ATTRS{idProduct}=="​6001",​ ATTRS{serial}=="​A7004IXj",​ SYMLINK+="​buspirate"​ 
 +SUBSYSTEM=="​tty",​ ATTRS{idVendor}=="​0403",​ ATTRS{idProduct}=="​6001",​ ATTRS{serial}=="​FTDIF46B",​ SYMLINK+="​ttyUSB.ARM"​ 
 +</​code>​ 
 + 
 +Cada linha representa um dispositivo,​ portanto altere os atributos de acordo com as informações coletadas anteriormente. Vale salientar que o atributo ''​SYMLINK+="​arduino"''​ indica que um [[link simbólico]] será criado em ''/​dev/​arduino''​ apontando para ''/​dev/​ttyUSB*''​. Ou seja, os dispositivos ainda obtém nomes que podem mudar, mas agora eles também possuem um [[link simbólico]] que sempre apontará para o caminho correto. 
 + 
 + 
 +'''​Fonte:'''​ http://​hintshop.ludvig.co.nz/​show/​persistent-names-usb-serial-devices/ (Michael Ludvig @ 2009) 
nome-persistente-para-dispositivos-usb-serial.1538570005.txt.gz · Última modificação: 2018/10/03 09:33 por amador