/ 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
再起動後、この永続的なソリューションは正常に機能し、比較的安全です。
セルジュストローバンド

再起動が必要な....
ムーサ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

これは問題を解決しません。それを実行した後、私はまだエラーを取得します。
セリン

許可は、この変更を取り消すより高い(したがって、実行順序が遅い)udevルールで行われていると思われます。私の(Debianの)PC上のシステム供給ファイルがある/lib/udev/rules.d/91-permissions.rules、私はさらに高い1(そしておそらく地元変形例として、それを識別するための名前でローカル含める)にこれを書いてみたいので、すなわち: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

これは何をしますか?
4

1
実行可能ファイルにsetuid属性が与えられると、このファイルを実行する権限を持つシステム上の通常のユーザーは、ファイルを所有するユーザー(通常はルート)の特権を取得します。これをプログラムに設定できます(rootが所有していると仮定)。/dev/vchiqグループに属しているvideo別のオプションがセットにあるsetgidとのあなたのプログラムのグループvideo
ミリウェイズ14年

1
ユーザーwww-datavideoグループに属しますが、それは助けにはなりませんでしたが、私chmod a+rw /dev/vchiqはRaspbian Stretchで成功しました。
JanTuroň17年

0

加える

start_x=1 
gpu_mem=256

boot/config.txtその後の実行sudo raspistill -o cam.jpg

もちろん、私はraspistillのパスを追加しました。Ubuntuで私のために働いた。


これが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.