USB 부트로더를 플래시한 STM32-Bluepill 보드가 있습니다. 내 컴퓨터에 연결 하면 /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
이므로 우선순위가 더 높아야 합니다.
답변1
숫자 접두어는 udev 규칙의 순서를 지정하는 일반적인 방법이지만 처리는 실제로 어휘적입니다. 에서 man udev
:
RULES FILES
The udev rules are read from the files located in the system rules
directories /lib/udev/rules.d and /usr/local/lib/udev/rules.d, the
volatile runtime directory /run/udev/rules.d and the local
administration directory /etc/udev/rules.d. All rules files are
collectively sorted and processed in lexical order, regardless of the
directories in which they live. However, files with identical filenames
replace each other. Files in /etc have the highest priority, files in
/run take precedence over files with the same name under /usr. This can
be used to override a system-supplied rules file with a local file if
needed; a symlink in /etc with the same name as a rules file in /lib,
pointing to /dev/null, disables the rules file entirely. Rule files
must have the extension .rules; other extensions are ignored.
이렇게 100-bluepill.rules
정렬됨앞으로 50-udev-default.rules
(1 < 5). 규칙을 마지막에 적용하려면 다음과 같이 선택하세요 99-bluepill.rules
.