As regras UDEV para FTDI não funcionam completamente

2

Eu sei que essa pergunta foi feita muitas vezes, mas não consigo fazer isso funcionar. Eu tenho um conversor serial-usb FTDI. Eu gerei 10-fhss-usb.rules em /etc/udev/rules.d/ :

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTTA5DMA", SYMLINK+="fhss", GROUP="dialout", MODE="0777", RUN+="echo USB CONNECTED!"

Eu também adicionei meu usuário ao dialout group:

sudo usermod -a -G dialout $ USER

e groups $USER retornam:

jvgomez : jvgomez adm dialout sudo plugdev lpadmin sambashare

(O grupo plugdev foi criado após outro post) Agora, quando eu conecto o USB, executando ls -al eu posso ver:

$ ls -al /dev/fhss
lrwxrwxrwx 1 root root 7 Jun  4 17:13 /dev/fhss -> ttyUSB0

$ ls -al /dev/ttyUSB0 
crw-rw-r-- 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

A mensagem echo USB CONNECTED! nunca é exibida. E quando eu uso screen /dev/fhss/ , ele diz imediatamente [screen is terminating] . Para fazer isso funcionar, eu ainda tenho que executar chmod

$ sudo chmod a+rwx /dev/fhss 

E agora:

$ ls -al /dev/ttyUSB0 
crwxrwxrwx 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

1) O que estou perdendo? Eu ainda tenho que executar chmod, que é o que estou tentando evitar. 2) Qual é a diferença entre usar SUBSYSTEM=="tty" e SUBSYSTEM=="usb" ?

Qualquer ajuda é bem vinda!

EDIT: adicionando NAME="my_device" como proposto em Usb regra udev nunca funcionou para mim não mudou nada.

    
por Javi V 04.06.2015 / 17:24

2 respostas

2

Para fazer um trabalho de fuga do FTDI no Ubuntu:

Abra o arquivo / etc / group com permissões de root:

sudo nano /etc/group

Depois disso, pesquise tty:x5: e dialout:x20:

Adicione seu usuário a esses grupos digitando seu nome de usuário na frente de cada linha:

tty:x5:<user>

dialout:x20:<user>

Você também pode usar os próximos dois comandos para evitar a pesquisa do arquivo:

sudo usermod -aG tty <user>
sudo usermod -aG dialout <user>

Em que <user> é seu nome de usuário.

Por fim, reinicie o seu computador.

Se você quiser usar as regras do udev, conecte o Módulo FTDI e execute:

lsusb

Isso mostrará o vendorID e o productID. Por exemplo:

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Em que 8087 é o vendorID e 0024 o productID.

Em seguida, crie uma regra como esta:

ATTRS{idVendor}="8087", ATRRS{idProduct}="0024", MODE="0660", GROUP="dialout"
    
por GTRONICK 19.07.2016 / 19:08
1

Eu uso um chip FT232RL no modo Bit Bang e corri para os mesmos problemas de permissão. As regras sugeridas acima não funcionaram para mim por razões que eu não entendo. No entanto, com algumas modificações, consegui que funcionasse.

Espero que isso possa ajudar alguém:

$ lsusb :

Bus 001 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Como acima, adicionei o usuário a dialout e tty : $ sudo usermod -aG dialout $USER $ sudo usermod -aG tty $USER

Mas a linha em /etc/udev/rules.d/99-libftdi.rules é diferente:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS="idProduct"=="6001", OWNER="user", MODE="0777", GROUP="dialout"

Pode ser que a diferença crucial seja SUBSYSTEM=="usb" .

    
por kalleknast 29.06.2017 / 22:43