Встроенная веб-камера перестает работать через несколько секунд [Ubuntu 16.04]

Последние пару часов я пытался заставить свою встроенную веб-камеру (моего ноутбука Dell E7470) работать с такими приложениями, как Skype.

Проблема:

После каждой загрузки камера работает нормально, но только в течение нескольких секунд (~ 30 секунд) после запуска видеоприложения. После этого камера не может быть найдена ни одним приложением (включая сыр ) до перезагрузки.

pastebin

pastebin (извините, недостаточно репутации, чтобы иметь несколько ссылок)

Когда он работает:

  • ls / dev / video0 показывает, что камера есть

  • v4l2- ctl --info дает следующий результат: pastebin (первая часть)

  • hwinfo | grep video дает следующий результат: pastebin (вторая часть)

Когда он не работает:

  • ls / dev / video0 дает: не может получить доступ к '/ dev / video0' : Нет такого файла или каталога

  • v412-ctl --info дает Не удалось открыть / dev / video0: Нет такого файла или каталога

  • hwinfo | grep video дает следующий результат: pastebin (третья часть)

Что я пробовал:

  1. Проверено, поддерживается ли моя веб-камера Ubuntu. Проверил веб-сайт Dell, а также веб-сайт UVC и пришел к выводу, что он должен работать.
  2. Проверено, есть ли комбинация Fn + F_Key, которая включает / отключает мою веб-камеру. Вроде бы нет.
  3. Установлены драйверы: sudo apt-get install cheese build-essential linux-headers- uname -r
  4. Пробовал: rmmod uvcvideo && modprobe uvcvideo
  5. Пробовал решение № 9 от здесь , изменив строку в / etc / default / grub (также попытался поставить iommu = soft после тихого всплеска )

Извините за комбинированный pastebin, но у меня недостаточно репутации, чтобы размещать более двух ссылок. Любая помощь в том, как я потенциально могу решить эту проблему, была бы принята с благодарностью!

Редактировать 1:

Из Через некоторое время интегрированная веб-камера отключается Я обнаружил, что эта проблема возникла более четырех лет назад. Выполнение sudo rmmod uvcvideo && sudo modprobe uvcvideo , кажется, оживляет его на несколько секунд (я забыл выполнить эту команду с помощью sudo, поэтому раньше он ничего не делал), но затем не работает еще раз ... Кто-нибудь когда-нибудь решал этот вопрос?

Между прочим, трюк с rmmod / modprobe срабатывает всего несколько раз. После этого вообще не работает до перезагрузки.

Редактировать 2:

Вот трассировка звонков в /var/log/kern.log на момент отказа камеры:

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'

Редактировать 3:

Другая трассировка звонков показывает, что соединение USB могло быть неисправен:

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

Странно то, что idVendor (0bda) можно найти (это Realtek Semiconductor Corp.), но idProduct (5765) нигде не найти ...

Редактировать 4:

Чтобы быть ясным, мой рабочий процесс следующий.

  1. Свежая загрузка в Ubuntu 16.04
  2. Запустить сыр
  3. Через 1 минуту происходит сбой со следующим ядром.вывод журнала: https://pastebin.com/XVwSEDBZ
  4. Перезапустить сыр . Кажется, все работает нормально ...
  5. Через 1 минуту снова происходит сбой, но теперь со следующим выводом kern.log: https://pastebin.com/8qHpBcdR (ошибка -71)
  6. Теперь сыр больше не может успешно запускаться (устройство не обнаружено).
  7. Перезагрузитесь и вернитесь к шагу 1 ...
4
задан 10 June 2017 в 19:02

2 ответа

Хорошо, таким образом, действительное решение проблемы было я работающий с неподдерживающим ядром для моей веб-камеры. Я обновил от 4.8.0-54-универсального до 4.10.0-22-универсального, и веб-камера очень стабильна теперь. Только несколько раз это выключит себя (как на средстве рассылки Facebook, например), но просто перезапуск приложения зафиксирует это. Никакая потребность больше перезагружать.

1
ответ дан 1 December 2019 в 09:45

<забастовка>

Read редактирование ниже также!

, Таким образом, кажется, что существует многие другой , кто сталкивается (d) error -71 проблема; не только с веб-камерами, но и USB-устройствами в целом. Проблема, кажется, "ошибка USB, которая была начата с энергосберегающих модулей [в ядре 2.6.27]" . Таким образом, для экономии электроэнергии, которую я предполагаю, веб-камера была закрыта после минуты или около этого.

, Что веб-сайт также имеет то, что, кажется, рабочее решение:

$ sudo -s
$ echo -1> /sys/module/usbcore/parameters/autosuspend

Это записано, чтобы быть 'текущими исправлениями', но это, казалось, постоянно решило мою проблему (после того, как перезагрузите значение, возвращенное к исходному значению 2, но эй больше никаких отказов веб-камеры :))

Только, чтобы быть уверенным, я также сделал 'постоянную фиксацию':

  1. Создают файл в/etc/modprobe.d, названном usbcore
  2. , Заполняют файл со следующим options usbcore autosuspend=-1
  3. , Сохраняют Выполнение файла
  4. "mkinitrd" (Если Вы уверены, что никакие модули USB-устройства не загружаются через initrd, затем можно пропустить этот шаг). Я пропустил этот шаг, потому что эта команда не могла быть найдена.
  5. Перезагрузка

Hope это помогает кому-то!

Важное Редактирование!

, Таким образом, вышеупомянутый способ установить автоприостанавливание не универсален, и зависит от Вашей ОС. Найдите более тщательно продуманный ответ о том, как отредактировать Ваш автоприостанавливать параметр здесь: https://unix.stackexchange.com/questions/91027/how-to-disable-usb-autosuspend-on-kernel-3-7-10-or-above

я упомяну это здесь только для полноты.

Для Ubuntu 14.04 & 15.04:

Редактирование/etc/default/grub файл и изменение строка GRUB_CMDLINE_LINUX_DEFAULT для добавления usbcore.autosuspend =-1 опция:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"

Примечание, которые выходят из всплеска, уже было существующими опциями. Поэтому сохраните другие опции, которые Вы имеете также.

После сохранили файл, обновляют личинку:

sudo upgrade-grub
(мог бы также быть sudo update-grub2 (я сделал обоих))

И перезагрузка.

Теперь проверка автоприостанавливают значение:

cat /sys/module/usbcore/parameters/autosuspend И это должно отобразиться-1

Ubuntu 15.10 и выше

, процедура является тем же, но параметрический усилитель для изменения является autosuspend_delay_ms (вместо, автоприостанавливают).

Редактирование 2

Ложный аварийный сигнал... Таким образом, вышеупомянутое не работало, в конце концов. Я все еще получаю это ошибки USB-устройства на error -71. Вот полное отслеживание стека /var/log/kern.log в данный момент разрушенная веб-камера: https://pastebin.com/8qHpBcdR. Одно примечание, хотя: в первый раз, когда веб-камера отказывает, я получаю этот вид вывода: https://pastebin.com/XVwSEDBZ, Эти error -71 происходит только после того, как я пытаюсь работать cheese снова (который может обычно запускаться). Когда это отказывает снова, это не может работать вообще больше (пока я не перезагружаю).

, Если у кого-либо есть подсказка, что я могу сделать, сообщите мне!

Редактирование 3

, Таким образом, я обновил свое ядро от 4.8.0-54-универсального до 4.10.0-22-универсального, и до сих пор это, кажется, стабильно. Если это откажет снова, то я сообщу об этом.

3
ответ дан 1 December 2019 в 09:45

Другие вопросы по тегам:

Похожие вопросы: