Sem permissão para acessar meu dispositivo usb, que está em / dev / ttyUSB0, apesar de eu estar em dialout

1

Problema do Ubuntu 14.04: Parece que não tenho permissão para acessar o ttyUSB0, embora Já estou no grupo de discagem (e desconectei e voltei)

ammirato@bvision4:/dev$ chmod 666 ttyUSB0 
chmod: changing permissions of 'ttyUSB0': Operation not permitted
ammirato@bvision4:/dev$ groups
compsci adm dialout sudo video groups: cannot find name for group ID 1096176595
109617659

mesmo depois de alterar as permissões usando sudo , ainda não consigo acessá-lo da minha conta.

ammirato@bvision4:/dev$ sudo chmod 666 ttyUSB0 
ammirato@bvision4:/dev$ ls -l ttyUSB0 
crw-rw-rw- 1 root dialout 188, 0 May 15 16:15 ttyUSB0
ammirato@bvision4:/dev$ chmod 666 ttyUSB0
chmod: changing permissions of 'ttyUSB0': Operation not permitted

O maior problema:

Estou tentando executar algum código Aria que se comunica com um robô via USB. Eu já corri antes e tudo funcionou bem. Por alguma razão, não funciona mais. Executar o programa com sudo ou não não ajuda. O programa tenta acessar o robô através de ttyS0, mas eu criei um link simbólico de ttyUSB0 para ttyS0.

Também tentei executar o código Aria por meio do ROS, que tenta se conectar através de ttyUSB0 e ainda não se conecta.

Existem saídas diferentes no meu código se eu tiver o dispositivo usb conectado ou não, então acho que ele pode detectar o dispositivo, mas talvez ele não tenha permissão para ler / escrever

Dispositivo conectado:

ammirato@bvision4:/dev$ rosrun rosaria RosAria
[ INFO] [1431722006.042624050]: RosAria: using port: [/dev/ttyUSB0]
Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0.
Syncing 0
No packet.
Syncing 0
No packet.
Trying to close possible old connection
Syncing 0
No packet.
Syncing 0
No packet.
 Robot may be connected but not open, trying to dislodge.
Syncing 0
No packet.
 Robot may be connected but not open, trying to dislodge.
Syncing 0
No packet.
Could not connect, no robot responding.
Failed to connect to robot.
[ERROR] [1431722012.788049009]: RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device.)
[FATAL] [1431722012.788127232]: RosAria: ROS node setup failed..

Dispositivo NÃO conectado:

ammirato@bvision4:/dev$ rosrun rosaria RosAria
[ INFO] [1431722075.336807723]: RosAria: using port: [/dev/ttyUSB0]
Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0.
ArSerialConnection::open: Could not open serial port '/dev/ttyUSB0' | ErrorFromOSNum: 2 ErrorFromOSString: No such file or directory
Could not connect, because open on the device connection failed.
Failed to connect to robot.
[ERROR] [1431722075.385556969]: RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device.)
[FATAL] [1431722075.385627788]: RosAria: ROS node setup failed... 

Estou usando o Ubuntu 14.04

ammirato@bvision4:/dev$ stat /dev/ttyUSB0
  File: '/dev/ttyUSB0'
  Size: 0           Blocks: 0          IO Block: 4096   character special file
Device: 5h/5d   Inode: 290088      Links: 1     Device type: bc,0
Access: (0660/crw-rw----)  Uid: (    0/    root)   Gid: (   20/ dialout)
Access: 2015-05-15 21:52:26.118904498 -0400
Modify: 2015-05-15 21:52:26.118904498 -0400
Change: 2015-05-15 21:52:26.118904498 -0400
 Birth: -
    
por pammirato 15.05.2015 / 22:37

1 resposta

1

Espera-se que você não possa alterar as permissões deste arquivo como um usuário comum, porque você não é o proprietário deste dispositivo. Nada fora do comum aqui.

No que diz respeito a criar links simbólicos para o / dev / ttyUSB0 como / dev / ttyS0 - eu acho que é uma má ideia. A menos que você tenha uma fonte do programa tentando usar a porta, você realmente não sabe como o desenvolvedor verifica o nó do dispositivo da porta serial. Talvez ele verifique se o dispositivo é um dispositivo de caracteres (o link simbólico não satisfaz essa condição) e depois falha?

Eu sempre prefiro usar o sinalizador de linha de comando do programa para especificar uma porta ao fazer uma solução alternativa, como symlinking.

ArSerialConnection::open: Could not open serial port '/dev/ttyUSB0' | ErrorFromOSNum: 2 ErrorFromOSString: No such file or directory
Could not connect, because open on the device connection failed.

Qual é a saída de stat /dev/ttyUSB0 quando você executa este comando?

Além disso - depois de adicionar sua conta de usuário regular ao grupo dialout , você fez logout e depois voltou?

    
por Marcin Kaminski 16.05.2015 / 01:29