我有一台三星 NP350V5C 笔记本电脑(配备 Core i5-3210M CPU),带有两个 USB2.0 和两个 USB3.0 端口。操作系统是:
$ uname -a
Linux pe 3.5.0-26-generic #42-Ubuntu SMP Fri Mar 8 23:18:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
我有一台连接到 USB 2.0 端口的 Asus Xtion Pro Live 摄像头。这不起作用。问题似乎出在这里(使用 xhci_hcd,“带宽不足”,见下文):
$ dmesg
....
[ 3162.597428] usb 3-3: new high-speed USB device number 2 using xhci_hcd
[ 3162.617432] usb 3-3: New USB device found, idVendor=1d27, idProduct=0600
[ 3162.617440] usb 3-3: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 3162.617444] usb 3-3: Product: PrimeSense Device
[ 3162.617447] usb 3-3: Manufacturer: PrimeSense
[ 3162.617912] xhci_hcd 0000:00:14.0: Not enough bandwidth. Proposed: 1663, Max: 1607
[ 3162.617920] xhci_hcd 0000:00:14.0: Not enough bandwidth
[ 3162.617933] usb 3-3: can't set config #1, error -12
在另一台笔记本电脑上(联想,同样的 CPU,也是 Ubuntu 12.10,但是32位), 使用ehci_hcd,并且相机工作正常。
所以,问题似乎出在 xhci_hcd 上。有没有办法修复这个问题,或者可以强制使用 ehci_hcd?
答案1
因为我搜索了几个小时,所以我想贡献对我有用的东西(Intel USB 3.0):
我只是升级到了最新版本官方的 Xtion 固件来自华硕,版本 5.8.22。它似乎在解决 Windows 上的“带宽”错误/代码 10 的同时,还保留了 OpenNI 1.x 和 2.x 的兼容性。
答案2
我遇到了同样的错误信息。我只需将 Xtion 插入 USB 即可解决此问题2.0端口...但看来您已经尝试过了。
我没有尝试更新 Xtion 固件,我将其插入 USB 2.0 端口,这对我来说是可行的,但该链接可能对您有帮助。
答案3
您可以按照以下说明操作:
http://www.pcl-developers.org/xhci-hcd-I-hate-you-USB-3-0-and-Primesense-Asus-Xtion-td5707949.html
如果您有一个带有单独 USB2.0 控制器的 USB3.0 控制器,这应该会有所帮助。如果没有,如果您已删除 xhci_hcd,则在键入 lsusb 时将不再看到您的 USB3.0 总线。如果是这种情况,您应该再次添加它(在您的 /etc/modules 中)并将其从黑名单中删除。(我的情况就是这样。那么你唯一能做的就是买一个新的。似乎新版本运行得更好(但也只适用于 Linux 3.4 及更高版本),但我不能 100% 确定这是否一定适合您)
答案4
在我的计算机上,我通过禁用主板 bios 中的 xHCI 支持和 EHCI Hand-off 解决了该问题