ブラウザはウェブカメラを検出できませんが、Cheeseでは動作します

ブラウザはウェブカメラを検出できませんが、Cheeseでは動作します

cheese突然、ターミナルでアプリケーションを実行すると動作するのにもかかわらず、ブラウザでウェブカメラが動作しなくなりました。私はこれをテストしていますこのウェブサイト(およびその他多数) を Google Chrome (シークレット モードおよび Firefox) で実行すると、次のエラー メッセージが表示されます。

NotFoundError: 要求されたデバイスが見つかりません。オブジェクト

lsusb与える:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:57f2 Realtek Semiconductor Corp. HD WebCam
Bus 001 Device 003: ID 04ca:3015 Lite-On Technology Corp. Qualcomm Atheros QCA9377 Bluetooth
Bus 001 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

外部ウェブカメラを使用しても、検出されません。Chrome を再インストールし、ユーザーを変更してマシンを再起動しようとしましたが、まだ機能しません。代わりに、マイクは正しく検出されます。

私のシステム情報:

Distributor ID: Ubuntu
Description:    Ubuntu 21.10
Release:        21.10
Codename:       impish
Kernel:         5.13.0-23-generic

ls -l /dev/video*プリント

crw-rw----+ 1 root video 81, 0 gen  6 18:06 /dev/video0
crw-rw----+ 1 root video 81, 1 gen  6 18:06 /dev/video1

groups $USERプリント

alex : alex adm cdrom sudo dip video plugdev lpadmin lxd sambashare

bash ./pathlld /dev/video*プリント

drwxr-xr-x 21 root root 4096 gen  6 12:46 /
/dev/sdb2 on / type ext4 (rw,relatime,errors=remount-ro)
drwxr-xr-x 22 root root 4960 gen  6 19:14 /dev
udev on /dev type devtmpfs (rw,nosuid,relatime,size=6036388k,nr_inodes=1509097,mode=755,inode64)
crw-rw----+ 1 root video 81, 0 gen  6 19:12 /dev/video0
drwxr-xr-x 21 root root 4096 gen  6 12:46 /
/dev/sdb2 on / type ext4 (rw,relatime,errors=remount-ro)
drwxr-xr-x 22 root root 4960 gen  6 19:14 /dev
udev on /dev type devtmpfs (rw,nosuid,relatime,size=6036388k,nr_inodes=1509097,mode=755,inode64)
crw-rw----+ 1 root video 81, 1 gen  6 19:12 /dev/video1

getfacl /dev/video*プリント

getfacl: Removing leading '/' from absolute path names
# file: dev/video0
# owner: root
# group: video
user::rw-
user:alex:rw-
group::rw-
mask::rw-
other::---

# file: dev/video1
# owner: root
# group: video
user::rw-
user:alex:rw-
group::rw-
mask::rw-
other::---

答え1

多くのデバイス アクセスの問題は、グループ メンバーシップの変更によって解決できます。

sudo journalctl --followデバイスを接続するときにデバイス名を確認することができます。またはls -1 /dev >dev.before、デバイスを接続して 10 秒待ってくださいls -1 /dev >dev.after;diff dev.{before,after}。カメラはおそらく です/dev/video

具体的には、ls -l グループ権限 (2 番目の「rwx」トリプレット) が「rw」(例:「-rw-rw----」) であることが示される場合、デバイスを所有するグループに自分自身を追加するとrwアクセスが許可されます。

方法は次のとおりです。

device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)

rwこれにより、デバイスを使用できるグループのメンバーになることができます。しかし、もう1つのステップがあります。

すべてのプロセスを新しいグループのメンバーにするには、ログアウトしてログインします。グループ メンバーシップは、同時に設定されますlogin

新しいグループに単一のプロセスを作成するには(ログアウト/ログイン前のテスト用):

newgrp $(stat -c "%G" $device)  

または、グループ名を入力するだけです。 を参照してくださいman newgrp

関連情報