Linux: conectando-se a uma porta COM virtual USB sem acesso root?

3

Estou tentando conectar um microcontrolador a um computador host usando uma porta USB virtual com. No entanto, não tenho privilégios de root no computador host. O controlador aparece como / dev / ttyACM0.

Quando tento conectar-me a ele usando o módulo pyserial , ocorre um erro dizendo "permissão negada".

Existe uma maneira de contornar isso sem usar comandos do sudo? Talvez, de alguma forma, forçando o microcontrolador a se anunciar não como ACM ? O problema de permissão poderia ser evitado dessa maneira?

$ ls -l /dev/ttyACM0
crw-rw----. 1 root dialout 166, 0 Apr 4 13:44 /dev/ttyACM0
$ id
uid=1003(mri) gid=1001(nmruser) groups=1001(nmruser),100(users),1000(nmrsu) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c102‌​3

Infelizmente, não posso alterar as permissões. O host é o computador de um scanner de ressonância magnética. Seu sistema é mantido pelo fabricante do scanner. Eu considerei usar Ethernet, mas eu esperava que houvesse uma maneira de evitar isso.

    
por Furo 03.04.2017 / 15:07

2 respostas

2

Por padrão, o acesso bruto à maioria dos dispositivos (se não todos) só é permitido para o root. Você teria que alterar as permissões em /dev/ACM0 para permitir que sua conta de usuário a usasse. Um grupo comum para esse uso é dailout , mas pode ser qualquer usuário / grupo com acesso de gravação ao 'arquivo'.

Você pode alterar as permissões com chmod e chown :

$ chmod 664 /dev/ttyACM0
$ chown root:dailout /dev/ttyACM0

Toda conexão serial que você vai fazer vai ter esse problema. Se você quiser evitar isso, você teria que usar uma mídia fora de banda, que não está bloqueada por padrão, como a Ethernet. Você poderia então configurar um servidor HTTP ou MQTT para transferir dados entre o host e o microcontrolador.

    
por 03.04.2017 / 15:51
0

Peça para a pessoa com acesso raiz configurar uma regra udev que atribua um nome personalizado, grupo e permissões de r / w ao que é agora /dev/ttyACM0 . Além disso, você deve se tornar um membro deste grupo.

Depois disso, você pode abrir o dispositivo sem ter raiz.

Você não pode fazer essa alteração sem ter direitos de root ou acesso físico para se tornar root uma vez para essa ocasião.

    
por 04.04.2017 / 11:04