Au cours des dernières heures, j'ai essayé de faire fonctionner ma webcam intégrée (de mon ordinateur portable Dell E7470) pour des applications telles que Skype.
Après chaque démarrage, la caméra fonctionne bien, mais seulement pendant quelques secondes (~ 30 secondes) après le démarrage de l'application vidéo. Après cela, aucune application (y compris cheese
) ne pourra trouver la caméra avant le redémarrage.
Pastebin (désolé, pas assez de représentants pour avoir plusieurs liens)
ls /dev/video0
montre que la caméra est là
v4l2-ctl --info
donne le résultat suivant: Pastebin (première partie)
hwinfo | grep video
donne le résultat suivant: Pastebin (deuxième partie)
ls /dev/video0
donne: cannot access '/dev/video0': No such file or directory
v412-ctl --info
donne Failed to open /dev/video0: No such file or directory
hwinfo | grep video
donne le résultat suivant: Pastebin (troisième partie)
Sudo apt-get install cheese build-essential linux-headers-
uname -r
rmmod uvcvideo && modprobe uvcvideo
/etc/default/grub
(également essayé de mettre iommu=soft
après quiet splash
)Désolé pour la combinaison Pastebin, mais je n'ai pas assez de réputation pour poster plus de 2 liens. Toute aide sur la façon dont je pourrais potentiellement résoudre ce problème serait grandement appréciée!
De Après un certain temps, la webcam intégrée est déconnectée J'ai constaté que ce problème se produisait également il y a plus de quatre ans. Faire Sudo rmmod uvcvideo && Sudo modprobe uvcvideo
semble le ramener vivant pendant quelques secondes (j'ai oublié d'exécuter cette commande avec Sudo, c'est pourquoi il n'a rien fait auparavant), mais il échoue à nouveau ... Quelqu'un a-t-il déjà résolu ce problème?
En passant, l'astuce rmmod/modprobe ne fonctionne que quelques fois. Après cela, cela ne fonctionne plus du tout jusqu'à ce que je redémarre.
Voici le suivi des appels dans /var/log/kern.log au moment où la caméra tombe en panne:
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'
Un autre suivi d’appel montre que la connexion USB peut être défectueuse:
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
Une chose étrange est que le idVendor (0bda) peut être trouvé (qui est Realtek Semiconductor Corp.), mais l'idProduct (5765) est introuvable ...
Pour être clair, mon flux de travail est le suivant.
cheese
cheese
. Semble bien fonctionner ...cheese
ne peut plus démarrer correctement (aucun périphérique détecté).Ok, donc la vraie solution au problème était que je travaille avec un noyau qui ne supporte pas la webcam. Je suis passé de 4.8.0-54-generic à 4.10.0-22-generic et la webcam est maintenant très stable. Quelques fois, il s'éteindra tout seul (comme sur Facebook Messenger, par exemple), mais le simple redémarrage de l'application résoudra le problème. Plus besoin de redémarrer.
Il semble donc qu'il y a beaucoup d'autres qui font face à (d) le problème error -71
; non seulement avec les webcams, mais les périphériques USB en général. Le problème semble être "un bogue USB introduit avec les modules d'économie d'énergie [dans le noyau 2.6.27]" . Donc, pour économiser de l’énergie, la webcam s’est arrêtée au bout d’une minute environ.
Ce site a également ce qui semble être la solution de travail:
$ Sudo -s $ echo -1> /sys/module/usbcore/parameters/autosuspend
Ceci est écrit pour être le "correctif", mais il semblait avoir résolu définitivement mon problème (après le redémarrage, la valeur est revenue à la valeur d'origine 2, mais il n'y a plus d'échec de la webcam :))
Juste pour être sûr, j'ai aussi fait le "correctif permanent":
options usbcore autosuspend=-1
J'espère que cela aide quelqu'un!
Par conséquent, la méthode susmentionnée de configuration de la suspension automatique n'est pas universelle et dépend de votre système d'exploitation. Veuillez trouver une réponse plus élaborée sur la façon de modifier votre paramètre autosuspend ici: https://unix.stackexchange.com/questions/91027/how-to-disable-usb-autosuspend-on-kernel-3-7 -10-ou-dessus
Je vais le mentionner ici juste pour être complet.
Pour Ubuntu 14.04 et 15.04:
Editez le fichier/etc/default/grub et modifiez la ligne GRUB_CMDLINE_LINUX_DEFAULT pour ajouter l'option usbcore.autosuspend = -1:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"
Notez que quitter splash étaient déjà des options. Alors gardez les autres options que vous avez aussi.
Après avoir sauvegardé le fichier, mettez à jour grub:
Sudo upgrade-grub
(pourrait aussi être Sudo update-grub2
(j'ai fait les deux))
Et redémarrez.
Maintenant, vérifiez la valeur autosuspend:
cat /sys/module/usbcore/parameters/autosuspend
Et il devrait afficher -1
Ubuntu 15.10 et supérieur
La procédure est la même, mais le paramètre à modifier est autosuspend_delay_ms (au lieu de autosuspend).
Fausse alarme ... Donc, ce qui précède n'a pas fonctionné après tout. J'obtiens toujours que le périphérique USB est en erreur sur error -71
. Voici une trace complète de la pile de /var/log/kern.log
au moment où la webcam s'est écrasée: https://Pastebin.com/8qHpBcdR . Une remarque cependant: la première fois que la webcam plante, je reçois ce type de sortie: https://Pastebin.com/XVwSEDBZ , Le error -71
ne se produit que lorsque j'essaie de lancer cheese
encore (qui peut se lancer normalement). Quand il se bloque à nouveau, il ne peut plus fonctionner du tout (jusqu’à ce que je redémarre).
Si quelqu'un a une idée de ce que je peux faire, s'il vous plaît faites le moi savoir!
J'ai donc mis à jour mon noyau de 4.8.0-54-generic à 4.10.0-22-generic et, jusqu'à présent, il semble être stable. Si cela se bloque à nouveau, je le signalerai.