Debian 11/sid 上无法识别网络摄像头

Debian 11/sid 上无法识别网络摄像头

我的网络摄像头确实存在,但无法识别任何地方在我的电脑中。我唯一看到与视频相关的内容的地方是# dmesg | grep video

[   64.907469] videodev: Linux video capture interface: v2.00
[   64.921610] usbcore: registered new interface driver uvcvideo
[   72.665592] usbcore: deregistering interface driver uvcvideo
[   72.848476] videodev: Linux video capture interface: v2.00
[   72.857832] usbcore: registered new interface driver uvcvideo

其他一些可能有用的命令是lsusb

Bus 003 Device 002: ID 093a:2533 Pixart Imaging, Inc. Gaming Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 1b3f:2008 Generalplus Technology Inc. USB Audio Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsmod | grep video

uvcvideo              114688  0
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
videobuf2_v4l2         36864  1 uvcvideo
videobuf2_common       65536  2 videobuf2_v4l2,uvcvideo
videodev              286720  3 videobuf2_v4l2,uvcvideo,videobuf2_common
mc                     61440  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
usbcore               323584  6 xhci_hcd,snd_usb_audio,usbhid,snd_usbmidi_lib,uvcvideo,xhci_pci
usb_common             16384  3 xhci_hcd,usbcore,uvcvideo
video                  53248  1 asus_wmi

ls /dev/video*:

zsh: no matches found: /dev/video*

我知道 StackExchange 上已经有类似的问题,但他们的解决方案不起作用,我的笔记本电脑有不是有一个网络摄像头按钮。

我的笔记本电脑是运行 Linux 5.10.0-5-amd64 x86_64 的 ASUS TUF Gaming FX705DY

答案1

我遇到了同样的问题:USB 枚举正常(甚至创建了网络摄像头中麦克风的设备),但没有/dev/videocheese报告no device found

我查看了一下dmesg,发现它报告了与网络摄像头无关的固件问题 ( firmware: failed to load rtl_nic/rtl8168h-2.fw)。为了解决这个问题,我添加了contribnon-freedeb排队/etc/apt/source.list,然后:

apt update
apt install linux-headers-$(uname -r)
apt install firmware-linux firmware-realtek

我重新启动 - 但一路上我还在 BIOS 中启用了“xHCI hand-off” - 并且cheese正在工作。

也就是说,我不知道是哪个改变起作用了,但也许它有帮助。

答案2

许多设备访问问题可以通过组成员身份更改来解决。

具体来说,如果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

相关内容