Linux를 통해 Lenovo 크롬북에 Steam을 설치하려고 했지만 코드를 따를 때마다 이 오류가 계속 발생합니다. 권한을 부여하는 방법을 모르겠습니다. 이 상황에서 어떻게 해야 하는지 안내해 줄 수 있는 사람이 있는지 알고 싶었습니다.
나는 다음 명령을 사용했습니다.
sudo dpkg -i steam.deb
Steam을 설정할 준비가 되면 다음과 같이 표시됩니다.
Failed to write 'change' to '/sys/devices/virtual/misc/uinput/uevent': Permission denied
고쳐 쓰다:이 문제에 대한 해결책을 찾았으며 계속할 수 있습니다.
답변1
당신이 그것을 사용하고 있다는 사실로 볼 때 dpkg
, 나는 당신이 데비안이나 그것에서 파생된 다른 배포판을 사용하고 있다고 가정하고 있습니다.
가상 파일은 커널 모듈이 /sys/devices/virtual/misc/uinput/uevent
로드될 때 생성됩니다. 이는 커널의 현재 런타임 상태를 기반으로 동적으로 생성되는 가상 파일 시스템의 일부이기 uinput
때문에 해당 권한에 대한 변경 사항은 재부팅 후에도 유지되지 않습니다.sysfs
Steam이 이 파일에 액세스해야 하는 이유는 하드웨어 지원과 관련이 있을 수 있습니다. uinput
커널 모듈의 서비스에 액세스하면 특정 고급 게임 컨트롤러 기능 및/또는 다양한 SteamVR 호환 가상 현실 장치에 대한 지원이 단순화될 수 있습니다.
이러한 하드웨어 장치가 없다면 이 오류 메시지를 무시해도 됩니다. Steam 설치를 방해해서는 안 됩니다.
로컬로 로그인하면 일부 그룹 멤버십이 자동으로 사용자 계정에 추가됩니다. 이러한 그룹 멤버십은 일반적으로 원격 사용자가 얻을 수 없는 추가 하드웨어 액세스 권한을 부여합니다. 예를 들어, 로컬로 로그온하는 사용자는 일반적으로 plugdev
대부분의 USB 장치를 쉽게 사용할 수 있는 그룹 멤버십을 얻습니다. 이 그룹은 Steam의 사용 사례에도 적합할 수 있습니다. 따라서 모듈이 로드될 때 /sys/devices/virtual/misc/uinput/uevent
마다 자동으로 추가되는 그룹에 대한 그룹 쓰기 액세스 권한을 갖고 싶을 수 있습니다 .plugdev
uinput
(이 그룹의 사용은 plugdev
Debian 및 그 파생 배포판에만 해당될 수 있습니다. 다른 배포판을 사용하는 경우 로컬로 로그인한 사용자의 하드웨어 액세스를 처리하는 방법을 파악하고 일치하도록 프로세스를 조정해야 할 수도 있습니다.)
다음과 같은 명령을 사용하여 이 작업을 수행할 수 있습니다(모두 한 줄에).
echo "install uinput /sbin/modprobe -i uinput; /bin/chgrp plugdev /sys/devices/virtual/misc/uinput/uevent; /bin/chmod g+w /sys/devices/virtual/misc/uinput/uevent" | sudo tee /etc/modprobe.d/uinput.conf
이 명령은 이름이 지정된 파일을 생성 하고 이 파일에 커널 모듈에 대한 사용자 정의 설치 지침 줄을 /etc/modprobe.d/uinput.conf
씁니다 . uinput
단순히 모듈을 로드하는 것이 아니라첫 번째평소대로 모듈을 로드한 다음 chgrp
및 chmod
명령을 실행하여 파일의 권한을 조정합니다 /sys/devices/virtual/misc/uinput/uevent
.
그런 다음 uinput
커널 모듈을 언로드했다가 다시 로드하여 구성이 예상대로 작동하는지 확인해야 합니다.
sudo modprobe -r uinput
sudo modprobe uinput
이제 ls -l /sys/devices/virtual/misc/uinput/uevent
다음 결과가 표시되어야 합니다.
-rw-rw-r-- 1 root plugdev 4096 May 6 02:08 /sys/devices/virtual/misc/uinput/uevent
이 그룹에 속한 모든 사용자 plugdev
(즉, 로컬로 로그인한 모든 사용자)가 이제 파일을 읽고 쓸 수 있음을 나타냅니다.