udev 규칙이 적용되지만 그룹이 설정되지 않았습니다.

udev 규칙이 적용되지만 그룹이 설정되지 않았습니다.

USB 부트로더를 플래시한 STM32-Bluepill 보드가 있습니다. 내 컴퓨터에 연결 하면 /dev/ttyACM0.lsusbBus 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.

관련 정보