過去数時間、Skypeなどのアプリケーションで(Dell E7470ラップトップの)統合Webカメラを動作させようとしてきました。
起動するたびにカメラは正常に機能しますが、ビデオアプリケーションを起動してから数秒(〜30秒)しかかかりません。その後、再起動するまで、アプリケーション(cheese
を含む)でカメラが見つかりません。
Pastebin (複数のリンクを作成するのに十分な担当者ではありません)
ls /dev/video0
は、カメラがあることを示します
v4l2-ctl --info
は次の出力を提供します:Pastebin(最初の部分)
hwinfo | grep video
は次の出力を提供します:Pastebin(2番目の部分)
ls /dev/video0
の結果:cannot access '/dev/video0': No such file or directory
v412-ctl --info
はFailed to open /dev/video0: No such file or directory
を提供します
hwinfo | grep video
は次の出力を提供します:Pastebin(3番目の部分)
Sudo apt-get install cheese build-essential linux-headers-
uname -r
rmmod uvcvideo && modprobe uvcvideo
/etc/default/grub
の行を変更しました(iommu=soft
の後にquiet splash
を置いてみました)Pastebinを組み合わせてすみませんが、2つ以上のリンクを投稿するほどの評判はありません。この問題をどのように解決できるかについてのヘルプは大歓迎です!
から しばらくすると統合されたWebカメラが切断されます この問題は4年以上前にも発生していることがわかりました。 Sudo rmmod uvcvideo && Sudo modprobe uvcvideo
を実行すると、数秒間元に戻せるようです(このコマンドをSudoで実行するのを忘れていたため、以前は何もしませんでした)。この問題?
ちなみに、rmmod/modprobeトリックは数回しか機能しません。その後、再起動するまでまったく機能しません。
カメラが失敗したときの/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'
別の呼び出しトレースは、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)がどこにも見つからないということです...
明確にするために、私のワークフローは次のとおりです。
cheese
を起動しますcheese
を再起動します。うまくいくようです...cheese
が正常に起動できなくなりました(デバイスが検出されません)。さて、問題の本当の解決策は、ウェブカメラ用の非サポートカーネルで作業することでした。 4.8.0-54-genericから4.10.0-22-genericにアップグレードしたところ、ウェブカメラは非常に安定しています。 Facebookメッセンジャーなどのように、数回だけオフになりますが、アプリケーションを再起動するだけで修正できます。もうリブートする必要はありません。
他の多く がerror -71
問題に直面している人がいるようです; Webカメラだけでなく、一般的なUSBデバイスでも使用できます。問題は "[カーネル2.6.27]の省電力モジュールで導入されたUSBバグ" のようです。そのため、電力を節約するために、ウェブカメラは1分ほどでシャットダウンしました。
そのWebサイトには、実際のソリューションと思われるものもあります。
$ Sudo -s $ echo -1> /sys/module/usbcore/parameters/autosuspend
これは「修正プログラム」と書き留められていますが、問題を永久に解決したようです(再起動後、値は元の値2に戻りましたが、Webカメラのエラーはもうありません:))
念のため、「永続的な修正」も行いました。
options usbcore autosuspend=-1
を入力しますこれが誰かを助けることを願っています!
したがって、上記の自動サスペンドの設定方法は普遍的ではなく、OSに依存します。 autosuspendパラメータを編集する方法について、より詳細な答えをここで見つけてください: 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"
スプラッシュを終了するオプションが既に存在することに注意してください。したがって、他のオプションも用意してください。
ファイルを保存した後、grubを更新します。
Sudo upgrade-grub
(Sudo update-grub2
の場合もあります(私は両方しました))
そして再起動します。
次に、自動サスペンド値を確認します。
cat /sys/module/usbcore/parameters/autosuspend
そして-1を表示するはずです
Ubuntu 15.10以降
手順は同じですが、変更するパラメーターはautosuspend_delay_msです(autosuspendではありません)。
誤報...したがって、上記は結局機能しませんでした。 USBデバイスがerror -71
でエラーになることはまだわかります。以下に、Webカメラがクラッシュしたときの/var/log/kern.log
の完全なスタックトレースを示します。 https://Pastebin.com/8qHpBcdR 。ただし、Webカメラが初めてクラッシュすると、次のような出力が表示されます。 https://Pastebin.com/XVwSEDBZ 、error -71
は、cheese
もう一度(通常どおり起動できます)。再びクラッシュすると、(私が再起動するまで)まったく機能しなくなります。
誰にも私ができることの手がかりがあれば、教えてください!
それで、カーネルを4.8.0-54-genericから4.10.0-22-genericに更新しましたが、今のところ安定しているようです。再度クラッシュする場合は報告します。