uvcvideo 已加载,但 /dev/video0 不存在

uvcvideo 已加载,但 /dev/video0 不存在

我的网络摄像头运行良好,直到我运行了一段简单的 Python 代码来拍照。我使用 root 权限运行了它sudo python myapp.py。程序崩溃了。然后我运行了sudo killall -9 python

从那时起,我失去了我的网络摄像头。如果我运行我的程序,我会得到这个错误:VIDEOIO ERROR: V4L: can't find camera device。Cheese 也找不到设备。

我谷歌了一下我的问题,发现有些页面说我应该重新启用 uvcvideo 模块。我已经这样做了,sudo modprobe -r uvcvideo && sudo modprobe uvcvideo但问题并没有解决。

这是我的一些命令的结果:

$ lsmod | grep uvc
uvcvideo               86016  0
videobuf2_vmalloc      16384  1 uvcvideo
videobuf2_v4l2         24576  1 uvcvideo
videobuf2_core         40960  2 videobuf2_v4l2,uvcvideo
videodev              184320  3             
videobuf2_core,videobuf2_v4l2,uvcvideo
media                  40960  2 videodev,uvcvideo

$ sudo v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory

我还应该注意到,如果我重新启动计算机,则不会得到任何结果,lsmod | grep uvc直到再次运行sudo modprobe uvcvideo为止。

我该如何解决这个问题?

答案1

就我的情况而言,我发现有一个名为的文件uvcvideo-blacklist.conf/etc/modprobe.d它将阻止uvcvideo模块在启动时自动加载。注释掉此文件中唯一的行“blacklist uvcvideo”将使 uvcvideo 在启动时自动加载。

答案2

确保您没有运行带有 USB 设备的虚拟机。如果是那样的话,您会看到 /dev/bus/usb 设备,但没有 /dev/video 设备。

相关内容