За последние пару часов я пытаюсь подключить свою интегрированную веб-камеру (моего ноутбука Dell E7470) для работы в таких приложениях, как Skype.
После каждой загрузки камера работает хорошо, но только на пару секунд (~ 30 секунд) после запуска видео приложения. После этого камера не может быть найдена каким-либо приложением (в том числе cheese), пока я не перезагружу.
pastebin (извините, что не хватило репутации, чтобы иметь несколько ссылок)
ls /dev/video0 показывает, что камера есть
v4l2-ctl --info дает следующий результат: pastebin (первая часть)v412-ctl --info дает Failed to open /dev/video0: No such file or directory
Извините за комбинированный паштет, но у меня недостаточно репутации, чтобы разместить более двух ссылок. Любая помощь в том, как я могу потенциально решить эту проблему, будет очень благодарна!
Из pastebin Я обнаружил, что эта проблема возникла более четырех лет назад. Выполнение sudo rmmod uvcvideo && sudo modprobe uvcvideo, кажется, возвращает его на несколько секунд (я забыл выполнить эту команду с помощью sudo, поэтому он ничего не делал раньше), но затем снова не удается ... Кто-нибудь когда-либо разрешал эту проблему ?
Кстати, трюк rmmod / modprobe работает всего несколько раз. После этого он не работает вообще, пока я не перезагружу.
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] [] dump_stack+0x63/0x90
Jun 5 10:54:21 me kernel: [ 219.778054] [] __warn+0xcb/0xf0
Jun 5 10:54:21 me kernel: [ 219.778055] [] warn_slowpath_fmt+0x5f/0x80
Jun 5 10:54:21 me kernel: [ 219.778057] [] ? kernfs_find_and_get_ns+0x48/0x60
Jun 5 10:54:21 me kernel: [ 219.778058] [] sysfs_remove_group+0x8b/0x90
Jun 5 10:54:21 me kernel: [ 219.778060] [] dpm_sysfs_remove+0x57/0x60
Jun 5 10:54:21 me kernel: [ 219.778062] [] device_del+0x58/0x270
Jun 5 10:54:21 me kernel: [ 219.778063] [] ? kbd_disconnect+0x22/0x30
Jun 5 10:54:21 me kernel: [ 219.778065] [] evdev_disconnect+0x23/0x60
Jun 5 10:54:21 me kernel: [ 219.778066] [] __input_unregister_device+0xb5/0x160
Jun 5 10:54:21 me kernel: [ 219.778067] [] input_unregister_device+0x47/0x70
Jun 5 10:54:21 me kernel: [ 219.778071] [] uvc_status_cleanup+0x42/0x50 [uvcvideo]
Jun 5 10:54:21 me kernel: [ 219.778073] [] uvc_delete+0x18/0x160 [uvcvideo]
Jun 5 10:54:21 me kernel: [ 219.778074] [] uvc_release+0x23/0x30 [uvcvideo]
Jun 5 10:54:21 me kernel: [ 219.778078] [] v4l2_device_release+0xe6/0x120 [videodev]
Jun 5 10:54:21 me kernel: [ 219.778079] [] device_release+0x32/0x90
Jun 5 10:54:21 me kernel: [ 219.778081] [] kobject_release+0x6a/0x170
Jun 5 10:54:21 me kernel: [ 219.778082] [] kobject_put+0x27/0x50
Jun 5 10:54:21 me kernel: [ 219.778083] [] put_device+0x17/0x20
Jun 5 10:54:21 me kernel: [ 219.778086] [] v4l2_release+0x50/0x80 [videodev]
Jun 5 10:54:21 me kernel: [ 219.778087] [] __fput+0xe7/0x230
Jun 5 10:54:21 me kernel: [ 219.778088] [] ____fput+0xe/0x10
Jun 5 10:54:21 me kernel: [ 219.778090] [] task_work_run+0x7e/0xa0
Jun 5 10:54:21 me kernel: [ 219.778091] [] exit_to_usermode_loop+0xc2/0xd0
Jun 5 10:54:21 me kernel: [ 219.778093] [] syscall_return_slowpath+0x4e/0x60
Jun 5 10:54:21 me kernel: [ 219.778094] [] 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'
Вот трассировка вызова в /var/log/kern.log в это время что камера не работает:
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
Другая трассировка вызова показывает, что соединение USB может быть неисправным:
Странно, что idVendor (0bda) можно найти (это Realtek Semiconductor Corp.), но idProduct (5765) нигде не найден ...
Проверено, поддерживается ли моя веб-камера Ubuntu. Запуск cheese Проверено, есть ли какая-либо комбинация Fn + F_Key, которая включает / отключает мою веб-камеру. Кажется, что нет. Перезагрузите cheese. Кажется, хорошо работает ... Установил драйверы: sudo apt-get install cheese build-essential linux-headers- uname -r Теперь cheese больше не может запускаться (не обнаружено устройство). Пробовал: rmmod uvcvideo && modprobe uvcvideoХорошо, поэтому реальное решение проблемы заключалось в том, что я работал с не поддерживающим ядром для своей веб-камеры. Я обновился с 4.8.0-54-generic до 4.10.0-22-generic, и веб-камера теперь очень стабильна. Только несколько раз он отключится (например, на Facebook-мессенджере, например), но просто перезапуск приложения исправит это. Нет необходимости перезагружаться.
Хорошо, поэтому реальное решение проблемы заключалось в том, что я работал с не поддерживающим ядром для своей веб-камеры. Я обновился с 4.8.0-54-generic до 4.10.0-22-generic, и веб-камера теперь очень стабильна. Только несколько раз он отключится (например, на Facebook-мессенджере, например), но просто перезапуск приложения исправит это. Нет необходимости перезагружаться.
Прочитайте также изменения ниже! Таким образом, кажется, что есть много других, кто сталкивается с (d) проблемой error -71; не только с веб-камерами, но и с USB-устройствами в целом. Проблема заключается в «ошибке USB, которая была введена с энергосберегающими модулями [в ядре 2.6.27]». Поэтому, чтобы сэкономить власть, я думаю, веб-камера отключилась через минуту или около того. На этом веб-сайте также есть то, что кажется рабочим решением:
$ sudo -s
$ echo -1> /sys/module/usbcore/parameters/autosuspend
Это записано как «исправление», но оно, казалось, постоянно решило мою проблему (после перезагрузки значение изменилось на исходное значение 2, но эй больше нет ошибок веб-камеры :)) Чтобы быть уверенным, я также сделал «постоянное исправление»: создайте файл в /etc/modprobe.d, названный usbcore. Заполните файл следующим options usbcore autosuspend=-1. Сохраните файл. Запустите «mkinitrd» ( Если вы уверены, что никакие модули USB-устройств не загружены через initrd, вы можете пропустить этот шаг). Я пропустил этот шаг, потому что эта команда не найдена. Reboot Hope это помогает кому-то! Важно! Таким образом, вышеупомянутый способ установки autosuspend не является универсальным и зависит от вашей ОС. Более подробный ответ о том, как отредактировать параметр autosuspend, можно найти здесь: https://unix.stackexchange.com/questions/91027/how-to-disable-usb-autosuspend-on-kernel-3-7-10-or - Я расскажу об этом здесь только для полноты. Для Ubuntu 14.04 & amp; 15.04: отредактируйте файл / etc / default / grub и измените строку GRUB_CMDLINE_LINUX_DEFAULT, чтобы добавить опцию usbcore.autosuspend = -1: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1" Обратите внимание, что quit splash уже присутствуют. Поэтому сохраните другие варианты, которые у вас есть. После сохранения файла обновите grub: sudo upgrade-grub (также может быть sudo update-grub2 (я сделал оба)) И перезагрузитесь. Теперь проверьте значение autosuspend: cat /sys/module/usbcore/parameters/autosuspend И он должен отображать -1 Ubuntu 15.10 и выше. Процедура такая же, но параметр для изменения - autosuspend_delay_ms (вместо autosuspend). Ложная тревога ... Так что выше всего не получилось. Я все еще понимаю, что ошибки устройства USB на error -71. Вот полная трассировка стека /var/log/kern.log в момент разбивки веб-камеры: https://pastebin.com/8qHpBcdR. Одна заметка: при первом сбое веб-камеры я получаю такой вывод: https://pastebin.com/XVwSEDBZ, error -71 происходит только после того, как я снова попытаюсь запустить cheese (что может запускаться нормально).
Если кто-нибудь знает, что я могу сделать, дайте мне знать!
d40]
Итак, я обновил свое ядро с 4.8.0-54-generic до 4.10.0-22-generic, и пока он кажется стабильным. Если он снова сработает, я сообщу об этом.
Хорошо, поэтому реальное решение проблемы заключалось в том, что я работал с не поддерживающим ядром для своей веб-камеры. Я обновился с 4.8.0-54-generic до 4.10.0-22-generic, и веб-камера теперь очень стабильна. Только несколько раз он отключится (например, на Facebook-мессенджере, например), но просто перезапуск приложения исправит это. Нет необходимости перезагружаться.