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

我应该如何解决这个问题?


我在Ubuntu 18.04.1上遇到了同样的问题,当我执行sudo modprobe uvcvideo命令后,重启后无法保留该设置,而且在执行lsmod | grep uvc命令时也无法找到相应的模块。请提供一个解决方案,谢谢。 - doctorate
  • 1 - 与UVC HDMI捕获棒有同样的问题。最开始几天运行得很好,但是在一次崩溃后,完全看不到了。有人找到了解决办法吗?
- Rich Smith
2个回答

对于我的情况,我发现在`/etc/modprobe.d`目录下有一个名为`uvcvideo-blacklist.conf`的文件。它会阻止在启动时自动加载`uvcvideo`模块。将该文件中唯一的一行“blacklist uvcvideo”注释掉,就可以在启动时自动加载uvcvideo了。

确保您没有在连接 USB 设备的虚拟机上运行。在这种情况下,您会看到 /dev/bus/usb 设备,但没有 /dev/video 设备。