/sys 파일에 대한 udev가 작동하지 않습니다.

/sys 파일에 대한 udev가 작동하지 않습니다.

그룹 속성을 설정하려고 합니다.

root@luna:~# ls -l /sys/class/backlight/intel_backlight/brightness 
-rw-r--r-- 1 root root 4096 Sep 24 08:28 /sys/class/backlight/intel_backlight/brightness

/etc/udev/rules.d/99-local.rules에 규칙을 만들었습니다.

root@luna:/etc/udev/rules.d# cat 99-local.rules 
KERNEL=="intel_backlight", SUBSYSTEM=="backlight", GROUP="neil", mode="0664"

systemctl restart udev, udevadm control -R 또는 재부팅 여부에 관계없이 규칙이 적용되지 않습니다. 내가 뭘 잘못했나요?

답변1

Udev는 아래에 장치 파일 항목을 생성합니다 /dev. Udev 규칙은 해당 항목에 영향을 미칩니다. 아래의 파일은 /sys커널에 의해 생성되고 udev의 영향을 받지 않는 직접 커널 인터페이스입니다.

아래에 있는 파일에 대한 소유권이나 권한을 변경하려면 /sys명시적으로 변경하세요.

#!/bin/sh
chown neil /sys/class/backlight/intel_backlight/brightness
chmod 664 /sys/class/backlight/intel_backlight/brightness

디스플레이 장치가 udev 이벤트를 발생시키는 경우 작업을 사용하여 이 스크립트를 실행할 수 있습니다 RUN=…. 또는 부팅 프로세스의 어딘가에서 이 스크립트를 실행하세요 /etc/rc.local.

답변2

방금이 질문을 발견했습니다. /sys에서 파일의 권한 및 소유권을 변경하는 올바른 방법은 tmpfiles 구성을 사용하는 것입니다. 예를 들어, 다음을 배치하면 /etc/tmpfiles.d/screen-backlight.conf원하는 결과를 얻을 수 있습니다.

m /sys/class/backlight/intel_backlight/brightness 0664 root some_group_that_neil_belongs_to - -

man 5 tmpfiles.d모든 옵션을 보려면 을 참조하세요 .

관련 정보