Eu tenho uma placa STM32-Bluepill onde eu atualizei um USB Bootloader. Se eu anexá-lo ao meu computador, ele será montado em /dev/ttyACM0
. lsusb
mostra comoBus 001 Device 006: ID 1eaf:0004 Leaflabs Maple serial interface
Para Arduino-Projects eu tenho um diy
grupo no meu computador. Então para o Bluepill eu criei a seguinte regra do udev:
#Bootloader-Mode
DRIVERS=="usb", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", GROUP="diy", MODE="0660"
#Normal-Operation-Mode
DRIVERS=="usb", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", GROUP="diy", MODE="0660"
Ambas as regras se aplicam, mas nenhuma define o grupo de /dev/ttyACM0
corretamente (é sempre uucp
). Eu sei que essas regras são aplicadas, porque atualmente uso uma solução alternativa definindo o modo como 0666
. Isso me dá permissão para trabalhar com o dispositivo, mas de qualquer maneira quero definir o grupo corretamente.
uucp
é definido apenas por uma das minhas regras padrão: /usr/lib/udev/rules.d/50-udev-default.rules
. Mas minha regra está em /etc/udev/rules.d/100-bluepill.rules
, portanto, deve ser mais priorizada.
Embora os prefixos numéricos sejam a maneira convencional de especificar a ordem das regras do udev, o processamento é, na verdade, lexical. De
man udev
:Então
100-bluepill.rules
classifica antes50-udev-default.rules
(1 < 5). Para que sua regra seja aplicada por último, escolha algo como99-bluepill.rules
.