USBウェブカメラがありますが、本当に奇妙に動作します。 Webカメラテストサイトでテストしましたが、サイトに権限を与えた後、すべてがうまくいき、カメラもうまくいきました。しかし、サイトを何度も更新した後、カメラが動作を停止したことがわかりました(以前は画面で出力を見ることができませんでした)。私が見つけた唯一の解決策は、USBを抜いて再接続することで、プロセス全体が繰り返されました。ウェブサイトを数回更新した後、カメラは動作し、再び停止しました。何が起こっているのか知っている人はいますか?本当に奇妙だと思います。
編集:役に立つなら、私のカメラモデルは「A4Tech Co.、Ltd. A4tech FHD 1080P PC Camera」です。
編集2:journalctl
出力:
カメラが動作しているとき:
apr 25 14:59:37 my-desktop-name firefox[2787]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed apr 25 14:59:37 my-desktop-name firefox[2787]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)'
カメラが動作を停止した場合:
apr 25 14:56:38 my-desktop-name kernel: xhci_hcd 0000:02:00.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
ls -l /dev/video;id
また(私の場合は/dev/video0)から出力されます。
crw-rw----+ 1 root video 81, 0 04-29 17:39 /dev/video0
ベストアンサー1
多くのデバイスアクセスの問題は、グループメンバーシップの変更で解決できます。
特に、ls -l
グループ表示権限(2番目のrwx
三重項)が「」rw
(例: " -rw-rw----
")の場合、デバイスを所有するグループに自分自身を追加すると、rw
アクセス権が付与されます。
それだけです:
device="/dev/video0"
sudo adduser $USER $(stat -c "%G" $device)
これにより、デバイスを使用できるグループのメンバーになることができますが、rw
もう1つのステップがあります。
すべてのプロセスを新しいグループのメンバーにするには、ログアウトしてログインします。グループメンバーシップは時間ベースで設定されますlogin
。
を使用して現在のグループを確認できますid
。読むman id
。
新しいグループから単一のプロセスを作成するには(テスト用、ログアウト/ログイン前):
newgrp $(stat -c "%G" $device)
またはグループ名を入力してください。望むよりman newgrp
。