avrdude: / dev / ttyACM0 problema com a alteração de permissões

2

Eu estava usando o Arduino IDE no meu laptop Arch Linux sem problemas, depois de algum tempo / meses eu não sou capaz de fazer upload do esboço por causa das permissões:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Eu posso acessar e escrever no dispositivo com minicom sem problemas, porque as permissões são boas:

crw-rw-rw- 1 root uucp

Meu usuário está no grupo uucp . Mas quando eu começo o upload do sketch, em relação ao dmesg , o dispositivo usb está sendo reconectado e nesse momento eu posso ver permissões diferentes:

rw------- 1 root root

E depois de algum tempo (segundos), as permissões retornam como estavam. dmesg output aqui:

[  313.042695] usb 2-1.2: USB disconnect, device number 3
[  313.253085] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[  313.352387] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
[  321.234517] usb 2-1.2: USB disconnect, device number 4
[  321.439445] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[  321.541392] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
...

Eu tentei resolver isso com várias regras personalizadas do udev, mas sem sucesso:

SUBSYSTEMS="usb", ATTRS{idVendor}== "2341", GROUP="uucp", MODE="0666"
KERNEL=="ttyACM[0-9]*", SYMLINK+="%k", GROUP="uucp", MODE="0666"

Como forçar grupo ou modo desde o primeiro momento em que apareceu no sistema? Espero que isso não seja apenas um bug no Arduino 1.8.3. Versão do kernel 4.11.9-1-ARCH.

EDIT # 1 :

Descobri que o comportamento de reconexão usb ocorre após sair minicom também, mas no caso de avrdude isso é um problema porque está acontecendo quando o programa precisa acessar o dispositivo.

Screencast aqui

EDIT # 2 :

Depois de algum tempo eu voltei a esse problema e descobri que tenho problema apenas com ttyACM0 (Yun / Micro / etc conectado com cabo microUSB) e ttyUSB0 (Uno conectado com USB-B) está ok. Mas mesmo isso é uma pista interessante que eu não consigo entender.

Estou monitorando os direitos dos dispositivos tty:

watch -n 0.1 'ls -la /dev/ttyUSB* /dev/ttyACM*'
  • ao fazer o upload para ttyUSB0 , apenas a data / hora está mudando e tudo está funcionando
  • quando o upload para ttyACM0 device desapareceu por um momento, um novo com direitos errados (e root:root ) foi criado, o upload falhou e, em seguida, right foi definido corretamente pelo udev (com root:uucp ) ... e depois outro ciclo (desaparecer-errado-correto)

Meu usuário está nos grupos lock e uucp , tentei adicionar algumas regras do udev ou desativá-las, mas sem sucesso ...

Tenho 99% de certeza de que isso é algo antes que a regra do udev esteja tocando nela.

    
por dmnc 14.07.2017 / 22:29

0 respostas