我有一个运行 Ubuntu 14 的无头系统,连接了 xtion pro 实时摄像头来进行一些实时视频阐述。有时在启动时(每天早上都会开机,但这种情况是随机发生的),相机无法识别并且 dmesg 显示:
USB 1-2:设备描述符读取/8,错误-110 USB USB1-端口2:无法枚举USB设备
该相机甚至没有在 lsusb 中列出。我尝试但没有成功的是:
- 电脑重启
- https://davidjb.com/blog/2012/06/restartreset-usb-in-ubuntu-12-04-without-rebooting/ (USB 设备未在 lsusb 中列出)
- https://askubuntu.com/a/661/373541
- BIOS 上的快速启动被禁用
- 无法 rmmod/modprobe xhci_hcd 因为它是内置的
- https://github.com/mvp/uhubctl
唯一可行的解决方案是关闭/打开计算机电源(作为无头系统不可行,它每晚关闭电源,每天早上打开电源,但我会避免在问题发生的第二天等待)。是否有任何解决方案可以模拟设备的物理断开(我什至不确定这是否有效)或 USB 问题的断电?任何想法将不胜感激,谢谢。
答案1
首先,检查设备端口是USB 2.0还是USB 3.0 -
$ lspci | grep USB
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
然后,提升到 root:
$ sudo -i
如果端口是 USB 3.0:
# ls /sys/bus/pci/drivers/xhci_hcd/
0000:00:14.0 bind new_id remove_id uevent unbind
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/bind
如果端口是 USB 2.0:
# ls /sys/bus/pci/drivers/ehci-pci/
0000:00:14.0 bind new_id remove_id uevent unbind
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/ehci-pci/unbind
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/ehci-pci/bind