/ Dev / vchiq izin hatalarını kalıcı olarak nasıl düzeltebilirim?


21

Pi'nin GPU'sunu kullanan grafiksel bir uygulama yazmaya çalışıyorum ve * failed to open vchiq instanceprogramları çalıştırırken sürekli hata alıyorum. Bu genellikle sudo chmod 777 /dev/vchiqbir sorunla giderilir, ancak (1) bu, kullanıcının sahip olduğu cihazlara dağıtımı için kesinlikle uygun olmayan ve (2) her yeniden başlatma işleminden sonra sıfırlanacak olan güvensiz bir düzeltmedir.

/dev/vchiqSorunlarımı, güvenlik sorunları olmadan, ısrarla ve ısrarla “doğru şekilde” nasıl düzeltebilirim ?

Yanıtlar:


28

Benzer bir sorunu kendime ekleyerek de çözebildim. video gruba (varsayılan kullanıcıyı kullanmıyordum). Belki bu yardımcı olabilir.

Komut:

sudo usermod -a -G video $(whoami)

Değişikliğin yürürlüğe girmesi için oturumu kapatıp tekrar açmanız gerekir.


2
Bu benim için işe yaradı ( sudo usermod -a -G video $(whoami)), ayrıca (güvenlik amaçları için) kameraya hangi işlem için ihtiyaç duyulacak özel bir kullanıcı eklemeyi ve videogruba yalnızca bu kullanıcıyı eklemeyi öneririm .
n8henrie

3
Yeniden başlattıktan sonra, bu kalıcı çözüm iyi çalışıyor ve nispeten güvenli.
Serge Stroobandt

Yeniden başlatma gerekli ....
Moosa Baloch

2
Bu da benim için çalıştı! Teşekkürler. Yeniden başlatma gerekli değildir, çıkış yapmak ve tekrar giriş yapmak yeterlidir.
tuvokki

1
Bunu yapmanın doğru ve güvenli yolu budur. Bu işlev için özel bir kullanıcınız varsa, bunları bu kullanıcı adı ile $ (whoami) değiştirerek ekleyebilirsiniz.
IceMage

8

Aygıtta belirli izinleri ayarlamak için bir udev kuralı oluşturabilirsiniz. Kök olarak şunları yapabilirsiniz:

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

Bu sorunu çözmez. Bunu çalıştırdıktan sonra hala hatayı alıyorum.
Cerin

Bu değişikliğin yapılmasına izin veren udev kurallarının izinlerinin daha yüksek (dolayısıyla daha sonra çalışan düzende) yapıldığından şüpheleniyorum. (Debian) PC'mde sistem tarafından sağlanan dosya bu /lib/udev/rules.d/91-permissions.rulesyüzden daha da yüksek bir dosyaya yazmayı denerdim (ve belki de yerel bir değişiklik olarak tanımlamak için yerel adı da dahil echo `SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"\' > /etc/udev/rules.d/92-local-vchiq-permissions.rules
etmeliyim

İzin verilmediğini kabul ediyorum, sorun ne olabilir?
dmigo

Benim için mükemmel çalışıyor. Usermod yeterli değilse zarif çözüm
Axel Advento

5

SUIDİzin verebilirsin

sudo chmod u+s /dev/vchiq

Bu ne işe yarıyor?
dördüncü

1
Yürütülebilir bir dosya verildiğinde, setuid öznitelik sistemde bu dosyayı yürütme iznine sahip olan normal kullanıcılar, dosyanın sahibi olan kullanıcının ayrıcalıklarını kazanır (genellikle kök). Bunu programınıza koyabilirsiniz (root'a ait olduğu varsayılarak). As /dev/vchiqgrubuna ait videobaşka bir seçenek kümesine olduğunu setgidve sizin programa grupta video.
Milliways

1
Bu yardımcı olmadı, kullanıcı da olsa www-data içindedir videogruptan ama başarılı oldu chmod a+rw /dev/vchiqRaspbian Stretch.
Jan Turoň

0

eklemek

start_x=1 
gpu_mem=256

için boot/config.txtdaha sonra vadedesudo raspistill -o cam.jpg

Tabii ki raspistilin yolunu ekledim. Ubuntu'da benim için çalıştı.


Bunun OP'nin sorusuna nasıl cevap verdiğini anlamıyorum - Ahududu Pi'de nasıl çalıştığını açıklamak için cevabınızı genişletebilir misiniz?
SlySven

0

Bir tarayıcı üzerinden erişilen bir php betiğinden raspistill kullanıyorsanız, o zaman girmeniz gerekir: sudo usermod -a -G video www-data Apache'ye gerekli izinleri vermek için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.