Estou tentando conectar um microcontrolador a um computador host usando uma porta USB virtual. 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 nenhum comando sudo? Talvez de alguma forma forçando o microcontrolador a se anunciar não como ACM ? O problema da 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.c1023
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. Pensei em usar Ethernet, mas esperava que houvesse uma maneira de evitá-lo.
Peça à pessoa que possui acesso root para configurar uma
udev
regra que atribua um nome personalizado, grupo e permissões de r / w de grupo ao que é agora/dev/ttyACM0
. Além disso, você deve se tornar um membro deste grupo.Depois disso, você pode abrir o dispositivo sem fazer root.
Você não pode fazer essa alteração sem ter direitos de root ou acesso físico para poder se tornar root uma vez nesta ocasião.
fonte
/dev/ttyACM0
? Eu useiSUBSYSTEMS=="usb", ATTRS{idVendor}=="f055", MODE="0666", GROUP="groupname"
. Isso muda apenas o grupo de/dev/bus/usb/x/y
.