几秒钟后集成网络摄像头停止工作 [Ubuntu 16.04]

Jim*_*mbo 9 usb webcam dell uvc 16.04

在过去的几个小时里,我一直在尝试让我的集成网络摄像头(我的戴尔 E7470 笔记本电脑)为 Skype 等应用程序工作。

问题:

每次启动后,相机运行良好,但在我启动视频应用程序后仅持续几秒钟(约 30 秒)。之后,任何应用程序(包括cheese)都无法找到相机,直到我重新启动。

粘贴箱

pastebin(抱歉没有足够的代表有多个链接)

当它工作时:

  • ls /dev/video0 显示相机在那里

  • v4l2-ctl --info给出以下输出:pastebin(第一部分)

  • hwinfo | grep video给出以下输出:pastebin(第二部分)

当它不工作时:

  • ls /dev/video0 给出: cannot access '/dev/video0': No such file or directory

  • v412-ctl --infoFailed to open /dev/video0: No such file or directory

  • hwinfo | grep video给出以下输出:pastebin(第三部分)

我试过的:

  1. Checked if my webcam is supported by Ubuntu. Checked on the Dell website as well as the UVC website, and came to the conclusion it should work.
  2. Checked if there is any Fn + F_Key combination that enables / disables my webcam. It seems to be not there.
  3. Installed the drivers: sudo apt-get install cheese build-essential linux-headers- uname -r
  4. Tried: rmmod uvcvideo && modprobe uvcvideo
  5. Tried solution #9 from here, by changing a line in /etc/default/grub (also tried putting iommu=soft after quiet splash)

Sorry for the combined pastebin, but I don't have enough reputation to post more than 2 links. Any help on how I could potentially solve this problem would be greatly appreciated!

Edit 1:

From After a while integrated webcam is disconnected I found that this problem occurred more than four years ago as well. Doing sudo rmmod uvcvideo && sudo modprobe uvcvideo seems to bring it back alive for a few seconds (I forgot to perform this command with sudo, so that is why it didn't do anything before), but then fails again... Did anyone ever solve this issue?

By the way the rmmod / modprobe trick works only a few times. After that it doesn't work at all until I reboot.

Edit 2:

Here is the Call Trace in /var/log/kern.log at the time that the camera fails:

Jun  5 10:54:21 me kernel: [  219.778042] CPU: 0 PID: 2455 Comm: cheese Not tainted 4.8.0-53-generic #56~16.04.1-Ubuntu
Jun  5 10:54:21 me kernel: [  219.778043] Hardware name: Dell Inc. Latitude E7470/0T6HHJ, BIOS 1.13.4 02/07/2017
Jun  5 10:54:21 me kernel: [  219.778044]  0000000000000286 000000002daf03ef ffff8d9e4be93b98 ffffffff9082e7b3
Jun  5 10:54:21 me kernel: [  219.778045]  ffff8d9e4be93be8 0000000000000000 ffff8d9e4be93bd8 ffffffff9048314b
Jun  5 10:54:21 me kernel: [  219.778047]  000000ed4be93bd8 0000000000000000 ffffffff912d06c0 ffff8d9e771d70c0
Jun  5 10:54:21 me kernel: [  219.778049] Call Trace:
Jun  5 10:54:21 me kernel: [  219.778051]  [<ffffffff9082e7b3>] dump_stack+0x63/0x90
Jun  5 10:54:21 me kernel: [  219.778054]  [<ffffffff9048314b>] __warn+0xcb/0xf0
Jun  5 10:54:21 me kernel: [  219.778055]  [<ffffffff904831cf>] warn_slowpath_fmt+0x5f/0x80
Jun  5 10:54:21 me kernel: [  219.778057]  [<ffffffff906b78a8>] ? kernfs_find_and_get_ns+0x48/0x60
Jun  5 10:54:21 me kernel: [  219.778058]  [<ffffffff906bb56b>] sysfs_remove_group+0x8b/0x90
Jun  5 10:54:21 me kernel: [  219.778060]  [<ffffffff909a6297>] dpm_sysfs_remove+0x57/0x60
Jun  5 10:54:21 me kernel: [  219.778062]  [<ffffffff90998ab8>] device_del+0x58/0x270
Jun  5 10:54:21 me kernel: [  219.778063]  [<ffffffff90942c42>] ? kbd_disconnect+0x22/0x30
Jun  5 10:54:21 me kernel: [  219.778065]  [<ffffffff90ac6ea3>] evdev_disconnect+0x23/0x60
Jun  5 10:54:21 me kernel: [  219.778066]  [<ffffffff90ac1ef5>] __input_unregister_device+0xb5/0x160
Jun  5 10:54:21 me kernel: [  219.778067]  [<ffffffff90ac2cc7>] input_unregister_device+0x47/0x70
Jun  5 10:54:21 me kernel: [  219.778071]  [<ffffffffc0a14ba2>] uvc_status_cleanup+0x42/0x50 [uvcvideo]
Jun  5 10:54:21 me kernel: [  219.778073]  [<ffffffffc0a0a208>] uvc_delete+0x18/0x160 [uvcvideo]
Jun  5 10:54:21 me kernel: [  219.778074]  [<ffffffffc0a0a423>] uvc_release+0x23/0x30 [uvcvideo]
Jun  5 10:54:21 me kernel: [  219.778078]  [<ffffffffc098f946>] v4l2_device_release+0xe6/0x120 [videodev]
Jun  5 10:54:21 me kernel: [  219.778079]  [<ffffffff909982d2>] device_release+0x32/0x90
Jun  5 10:54:21 me kernel: [  219.778081]  [<ffffffff90830f7a>] kobject_release+0x6a/0x170
Jun  5 10:54:21 me kernel: [  219.778082]  [<ffffffff90830e37>] kobject_put+0x27/0x50
Jun  5 10:54:21 me kernel: [  219.778083]  [<ffffffff909985c7>] put_device+0x17/0x20
Jun  5 10:54:21 me kernel: [  219.778086]  [<ffffffffc098e490>] v4l2_release+0x50/0x80 [videodev]
Jun  5 10:54:21 me kernel: [  219.778087]  [<ffffffff906350f7>] __fput+0xe7/0x230
Jun  5 10:54:21 me kernel: [  219.778088]  [<ffffffff906352ae>] ____fput+0xe/0x10
Jun  5 10:54:21 me kernel: [  219.778090]  [<ffffffff904a230e>] task_work_run+0x7e/0xa0
Jun  5 10:54:21 me kernel: [  219.778091]  [<ffffffff904032d2>] exit_to_usermode_loop+0xc2/0xd0
Jun  5 10:54:21 me kernel: [  219.778093]  [<ffffffff90403b3e>] syscall_return_slowpath+0x4e/0x60
Jun  5 10:54:21 me kernel: [  219.778094]  [<ffffffff90c9a8fe>] entry_SYSCALL_64_fastpath+0xa6/0xa8
Jun  5 10:54:21 me kernel: [  219.778095] ---[ end trace cd02296d8a08b517 ]---
Jun  5 10:54:21 me kernel: [  219.802017] ------------[ cut here ]------------
Jun  5 10:54:21 me kernel: [  219.802022] WARNING: CPU: 0 PID: 2455 at /build/linux-hwe-MohJvK/linux-hwe-4.8.0/fs/sysfs/group.c:237 sysfs_remove_group+0x8b/0x90
Jun  5 10:54:21 me kernel: [  219.802023] sysfs group ffffffff912d06c0 not found for kobject 'input14'
Run Code Online (Sandbox Code Playgroud)

Edit 3:

Another Call Trace shows that the usb connection might be faulty:

Jun  5 11:08:11 me kernel: [ 1049.717359] usb 1-2: new full-speed USB device number 8 using xhci_hcd
Jun  5 11:08:11 me kernel: [ 1049.841492] usb 1-2: device descriptor read/64, error -71
Jun  5 11:08:12 me kernel: [ 1050.069407] usb 1-2: device descriptor read/64, error -71
Jun  5 11:08:12 me kernel: [ 1050.297575] usb 1-2: new full-speed USB device number 9 using xhci_hcd
Jun  5 11:08:12 me kernel: [ 1050.417566] usb 1-2: device descriptor read/64, error -71
Jun  5 11:08:12 me kernel: [ 1050.645641] usb 1-2: device descriptor read/64, error -71
Jun  5 11:08:12 me kernel: [ 1050.873599] usb 1-2: new full-speed USB device number 10 using xhci_hcd
Jun  5 11:08:12 me kernel: [ 1050.873825] usb 1-2: Device not responding to setup address.
Jun  5 11:08:13 me kernel: [ 1051.081804] usb 1-2: Device not responding to setup address.
Jun  5 11:08:13 me kernel: [ 1051.289562] usb 1-2: device not accepting address 10, error -71
Jun  5 11:08:13 me kernel: [ 1051.409586] usb 1-2: new full-speed USB device number 11 using xhci_hcd
Jun  5 11:08:13 me kernel: [ 1051.409821] usb 1-2: Device not responding to setup address.
Jun  5 11:08:13 me kernel: [ 1051.617820] usb 1-2: Device not responding to setup address.
Jun  5 11:08:13 me kernel: [ 1051.825581] usb 1-2: device not accepting address 11, error -71
Jun  5 11:08:13 me kernel: [ 1051.825661] usb usb1-port2: unable to enumerate USB device
Run Code Online (Sandbox Code Playgroud)

A weird thing is that the idVendor (0bda) can be found (which is Realtek Semiconductor Corp.), but the idProduct (5765) is nowhere to be found...

Edit 4:

Just to be clear, my workflow is as following.

  1. 在 Ubuntu 16.04 中全新启动
  2. 发射 cheese
  3. 1 分钟后,它崩溃并显示以下 kern.log 输出:https ://pastebin.com/XVwSEDBZ
  4. 重新启动cheese。似乎工作正常...
  5. 1 分钟后它再次崩溃,但现在具有以下 kern.log 输出:https ://pastebin.com/8qHpBcdR (错误 -71)
  6. 现在cheese无法再成功启动(未检测到设备)。
  7. 重新启动并返回到步骤 1...

Jim*_*mbo 2

好吧,问题的真正解决方案是我为我的网络摄像头使用不支持的内核。我从 4.8.0-54-generic 升级到 4.10.0-22-generic,网络摄像头现在非常稳定。只有几次它会自行关闭(例如在 Facebook Messenger 上),但只需重新启动应用程序即可解决此问题。无需再重新启动。