相机在 Ubuntu 20.04 上停止工作

相机在 Ubuntu 20.04 上停止工作

我有一个 USB 摄像头,它的行为真的很奇怪。我在网络摄像头测试网站上对其进行了测试,在向该网站授予权限后一切顺利,相机工作正常。但我发现,在多次刷新网站后,我的相机停止工作(我在屏幕上看不到输出,之前它就在那里)。我设法找到的唯一解决方案是再次拔出并插入 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 显示组权限(第二个“ rwx”三元组)为“ rw”(例如“ -rw-rw----”),则将自己添加到拥有该设备的组中将授予rw访问权限。

就是这样:

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

这允许您成为可以使用该设备的组的成员资格rw,但还有一个步骤。

要使所有进程成为新组的成员,请注销并登录。小组成员资格是按时间设立的login

您可以使用 检查当前的组id。读man id

要在新组中创建单个进程(用于测试,在注销/登录之前):

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

或者,只需键入组名称。看man newgrp

答案2

尝试在用户和组管理中检查硬件用户权限

相关内容