/ dev / vchiq 권한 오류를 어떻게 영구적으로 해결할 수 있습니까?


21

Pi의 GPU를 사용하는 그래픽 응용 프로그램을 작성하고 있으며 프로그램을 * failed to open vchiq instance실행할 때 지속적으로 오류가 발생합니다. 이 문제는 일반적으로로 수정 sudo chmod 777 /dev/vchiq되지만 (1) 사용자 소유의 장치에 배포하기에는 적합하지 않은 매우 안전하지 않은 수정이며 (2) 재부팅 할 때마다 재설정됩니다.

/dev/vchiq보안 문제를 일으키지 않고 어떻게 문제를 "올바른 방법으로"지속적으로 해결할 수 있습니까?

답변:


28

video그룹에 자신을 추가하여 비슷한 문제를 해결할 수있었습니다 (기본 사용자를 사용하지 않았습니다). 아마도 이것이 도움이 될 수 있습니다.

명령은 다음과 같습니다.

sudo usermod -a -G video $(whoami)

변경 사항을 적용하려면 로그 아웃했다가 다시 로그인해야합니다.


2
이것은 나를 위해 일했으며 ( sudo usermod -a -G video $(whoami)), 보안 액세스를 위해 카메라에 액세스 해야하는 프로세스에 대해 전용 사용자를 추가하고 해당 사용자 만 video그룹에 추가하는 것이 좋습니다 .
n8henrie

3
재부팅 후이 영구적 인 솔루션은 정상적으로 작동하며 비교적 안전합니다.
Sroo Stroobandt을

재부팅 .... 필요
무사 Baloch에게

2
이것은 나에게도 효과가 있었다! 감사. 재부팅이 필요하지 않습니다. 로그 아웃 한 후 다시 로그인하면 충분합니다.
tuvokki

1
이것이 적절하고 안전한 방법입니다. 이 기능에 대한 전용 사용자가있는 경우 $ (whoami)를 해당 사용자 이름으로 바꾸어 추가 할 수 있습니다.
IceMage

8

장치에 대한 특정 권한을 설정하기 위해 udev 규칙을 만들 수 있습니다. 루트로서, 당신은 할 수 있습니다 :

echo 'SUBSYSTEM == "vchiq", GROUP = "video", MODE = "0660"'> /etc/udev/rules.d/10-vchiq-permissions.rules
usermod -a -G 비디오 YourUnprivilegedUser

문제가 해결되지 않습니다. 그 후에도 여전히 오류가 발생합니다.
Cerin

이 변경 사항을 취소하는 더 높은 udev 규칙으로 권한이 완료된 것 같습니다. 내 (데비안) PC의 시스템 공급 파일입니다 /lib/udev/rules.d/91-permissions.rules: 내가 하나 더 높은이를 작성하십시오 (아마도 이름이 로컬 수정으로 식별에 지역 포함) 것 때문에, 즉echo `SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"\' > /etc/udev/rules.d/92-local-vchiq-permissions.rules
SlySven

권한이 거부되었습니다. 무엇이 잘못 되었습니까?
dmigo

나를 위해 완벽하게 작동합니다. usermod로 충분하지 않은 경우 우아한 솔루션
Axel Advento

5

SUID권한을 설정할 수 있습니다

sudo chmod u+s /dev/vchiq

이것은 무엇을 하는가?
fouric

1
실행 파일에 setuid속성 이 부여되면 이 파일을 실행할 권한이있는 시스템의 일반 사용자는 파일을 소유 한 사용자 (일반적으로 루트)의 권한을 갖습니다. 프로그램에서 루트를 소유하고 있다고 가정하여 이것을 설정할 수 있습니다. 로 /dev/vchiq그룹에 속하는 video다른 옵션을 설정하는 것입니다 setgid와 귀하의 프로그램에 대한 그룹 video.
Milliways

1
사용자 www-datavideo그룹에 있지만 도움이되지는 않았지만 chmod a+rw /dev/vchiqRaspbian Stretch에서 성공했습니다 .
Jan Turoň

0

더하다

start_x=1 
gpu_mem=256

boot/config.txt다음 실행sudo raspistill -o cam.jpg

물론 raspistill의 경로를 추가했습니다. 우분투에서 나를 위해 일했습니다.


이것이 OP의 질문에 어떻게 대답하는지 모르겠습니다. Raspberry Pi에서 어떻게 작동하는지 설명하기 위해 답변을 확장 할 수 있습니까?
SlySven

0

브라우저를 통해 액세스 한 PHP 스크립트에서 raspistill을 실행중인 경우 sudo usermod -a -G video www-data Apache에 필요한 권한을 부여 하려면 다음을 입력해야합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.