예를 들어 udev를 구성하여 /sys/class/gpio/ 파일의 기본 권한과 소유권을 설정할 수 있습니까? 요점은 보드의 GPIO 핀에 액세스하는 프로세스에 실제 GID를 제공하는 것입니다.
대부분의 "솔루션"에는 suid 래퍼가 포함됩니다.chown을 사용한 스크립트신뢰할 수 있는 중개자 바이너리. 웹 검색이 나타납니다udev 규칙을 작성하려는 시도가 실패했습니다..
(관련된:1분기)
답변1
모든 권한을 정확하고 깔끔하게 설정하기 위해 /etc/udev/rules.d/99-gpio.rules를 추가했습니다.
SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", RUN+="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", RUN+="/bin/chown root:gpio /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value", RUN+="/bin/chmod 660 /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value"
답변2
우분투 실행용.
sudo apt install rpi.gpio-common
답변3
나는 이것을 사용합니다(gpio 그룹이 이미 생성되었다고 가정):
/etc/udev/rules.d/99-gpio.rules
하위 시스템=="gpio", 커널=="gpiochip*", 그룹:="gpio", 모드:="0660"
답변4
GPIO 인터페이스는 시스템(uid 루트) 사용을 위해 구축된 것으로 보이며 사용자 프로세스에 대한 /dev 인터페이스 기능이 없습니다. 여기에는 생성 권한이 포함됩니다.
데몬 및 기타 시스템 서비스를 포함한 사용자 프로세스에 대한 액세스를 허용하려면 특정 시점에 루트 프로세스에서 권한을 부여해야 합니다. 이는 초기화 스크립트, 중개자 또는 수동(sudo) 명령일 수 있습니다.