Внезапно моя веб-камера перестала работать в моих браузерах, хотя она работает, если я запускаю 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
показано, что разрешения группы (вторая rwx
тройка " ") - " rw
" (например, " -rw-rw----
"), то добавление себя в группу, владеющую устройством, предоставит rw
доступ.
Вот как:
device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)
Это позволяет вам стать членом группы, которая может использовать rw
устройство,Но есть еще один шаг.
Чтобы сделать все ваши процессы членами новой группы, выйдите из системы и войдите в нее. Членство в группе настраивается во login
время.
Чтобы создать один процесс в новой группе (для тестирования, перед выходом/входом в систему):
newgrp $(stat -c "%G" $device)
или просто введите имя группы. Смотрите man newgrp
.