我有一个 STM32-Bluepill 板,我在其中刷了一个 USB 引导加载程序。如果我将它连接到我的计算机,它安装在/dev/ttyACM0
. lsusb
显示为Bus 001 Device 006: ID 1eaf:0004 Leaflabs Maple serial interface
对于 Arduino 项目diy
,我的电脑上确实有一个组。因此,对于 Bluepill,我创建了以下 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"
这两个规则都适用,但没有一个正确设置组/dev/ttyACM0
(它总是uucp
)。我知道应用了这些规则,因为我目前通过将模式设置为来使用解决方法0666
。这给了我使用设备的权限,但无论如何我想正确设置组。
uucp
仅由我的默认规则之一设置:/usr/lib/udev/rules.d/50-udev-default.rules
. 但我的规则在于,/etc/udev/rules.d/100-bluepill.rules
它应该具有更高的优先级。
虽然数字前缀是指定 udev 规则顺序的常规方式,但处理实际上是词法的。来自
man udev
:所以在(1 < 5)之前
100-bluepill.rules
排序。要使您的规则最后应用,请选择类似.50-udev-default.rules
99-bluepill.rules