PuTTY pode acessar porta serial como / dev / ttyUSB0, mas não como dispositivo udev

5

Eu tenho vários conversores USB para serial. Eu preciso acessar um deles em particular. Estou usando uma regra do udev para dar um nome especial. Eu reiniciei desde a última modificação.

SUBSYSTEM=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", NAME="serial", MODE="0666"

Essa combinação de fornecedor / produto é única entre todos os meus dispositivos USB.

$ ls -l /dev/serial
crw-rw-rw-. 1 root root 189, 133 Feb  8 23:57 /dev/serial
$ ls -l /dev/ttyUSB0
crw-rw----. 1 root dialout 188, 0 Feb  8 23:58 /dev/ttyUSB0

Estou usando o PuTTY para lê-los e funciona em /dev/ttyUSB0 , mas não em /dev/serial . O erro ainda aparece quando estou executando o PuTTY como root.

Unabletoopenconnectionto:Unabletoconfigureserialport

Casosejaimportante,estouexecutandooCentOS6.

uname-aLinuxxxxxxx2.6.32-279.22.1.el6.x86_64#1SMPWedFeb603:10:46UTC2013x86_64x86_64x86_64GNU/Linux

EDIT:TRABALHANDO

Aseguinteregradoudevfoioquefuncionou:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="COM1", MODE="0666"

Note que SUBSYSTEM é tty, não usb, NAME foi alterado para SYMLINK+ e serial foi alterado para COM1 (para não interferir com / dev / serial, como um comentador apontou). / p>

Obrigado pela sua ajuda, pessoal!

    
por Nick ODell 09.02.2013 / 08:17

5 respostas

6

Você deseja que sua regra preste atenção no tty subsystem, não no usb one.

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="serial"

Um dispositivo USB gera vários eventos do udev quando você o conecta, pois o kernel reconhece mais coisas sobre ele. Como é um dispositivo USB, ele primeiro usa o subsistema usb , que, acredito, criará um dispositivo USB bruto, que o PuTTY não pode usar. Alguns passos depois, ele carregará o driver específico do dispositivo e, como este é um dispositivo serial, ele acionará o subsistema tty , que cria um arquivo de dispositivo que o PuTTY pode usar.

Esta regra criará um symlink para qualquer que seja o /dev/ttyUSB* que esteja atribuído ao seu dispositivo. Testado com sucesso com o PuTTY no meu próprio dongle serial.

Por acaso, para diagnósticos, às vezes executo a seguinte regra, para ter uma ideia do que os scripts do udev estão vendo:

RUN+="/home/me/bin/udev-diag .$kernel .$number .$devpath .$id .$parent .$root .$tempnode"

em que udev-diag é essencialmente:

env >>/tmp/udev-events
echo "$@" >>/tmp/udev-events

Para uso mais geral, o programa udevmonitor também é útil.

    
por 11.02.2013 / 23:05
0

Usando a regra do Jander, eu era capaz de acessar meu adaptador serial USB ... mas somente se estivesse executando o PuTTY como root.

A modificação da regra para especificar permissões diferentes permitiu que eu a acessasse por qualquer usuário.

I.E.

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="0666", SYMLINK+="serial"
    
por 30.09.2014 / 03:47
0

A seguinte regra do udev foi o que funcionou:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="COM1", MODE="0666"

Note que SUBSYSTEM é tty, não usb, NAME foi alterado para SYMLINK+ e serial foi alterado para COM1 (para não interferir com / dev / serial, como um comentador apontou). / p>     

por 08.05.2015 / 11:50
0

Por alguma razão, eu nunca postei uma resposta para isso, mesmo depois que eu comecei a trabalhar.

A seguinte regra do udev foi o que funcionou:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="COM1", MODE="0666"

Note que SUBSYSTEM é tty, não usb, NAME foi alterado para SYMLINK+ e serial foi alterado para COM1 (para não interferir com / dev / serial, como um comentador apontou). / p>

Obrigado pela sua ajuda, pessoal!

    
por 08.05.2015 / 16:51
0

Observe que o dispositivo é gravável em grupo, pelo grupo de discagem.

$ ls -l /dev/ttyUSB0
**crw-rw----** 1 root **dialout** 188, 0 Feb  8 23:58 /dev/ttyUSB0

Para corrigir esse problema de permissão, adicione-se ao grupo de discagem:

$ sudo adduser <username> dialout

Em seguida, reinicie a sessão

    
por 24.01.2017 / 21:56