我可以通过什么方式将两部 USB 连接的手机转发至 xen guest?
我读过关于 PCI-passthrough 的文章http://www.wlug.org.nz/XenPciPassthrough,但我确定服务器中的 USB 控制器不是 PCI 卡。
有设备级别的转发,但是我需要转发两个设备,这里没有说怎么做:http://www.olivetalks.com/2008/02/03/usb-forwarding-on-xen-it-just-does-not-work/
会不会简单如下:
usb设备 = ['主机:xxx','主机:yyy',]
工作?
编辑:我现在开始悬赏。这对我和其他人来说都非常重要,希望已经解决了这个问题的人能够提供帮助。
答案1
我使用 Xen 并通过 USB 直通到 Centos5 上的 domU。
到目前为止,我可以告诉你:要么转发完整的 USB 设备,要么什么都不转发。不要尝试只转发一些 OHCI/UHCI 设备。
因此这里它或多或少运行(尚未开始压力测试):
- 断开所有 USB 设备
- 通过 pciback 从 dom0 卸载 USB 设备。卸载 UHCI/OHCI和EHCI 设备。(根据需要编写某种 init.d 脚本)。有关 pciback 的详细信息如下这里根据第 1 点
- 重启 xend
- lsusb 应该输出没有什么在 dom0 上
- 使用以下命令编辑 domU 配置文件pci = ['0000:yy:xx.0']东西
- 开始你的 domU
- domU 应该通过 lspci(其他 pciid)和 lsusb 报告 USB 设备
我的 dom0 是使用内核参数启动的调试(蛴螬)。
答案2
我可以确认上述方法在以下前提条件下有效:
- Xen 3.4.3
- CentOS 5.5主机,内核2.6.18-194.32.1.el5xen x86_64
CentOS 5.5 客户机,内核 2.6.18-194.32.1.el5xen x86_64
- 我移除了所有连接的 USB 设备。
- rmmod uhci_hcd ohci_hcd ehci_hcd
- 确定哪个 USB 集线器连接到哪个连接器
- 增加了部分 USB 端口的隐藏功能
/etc/modprobe.conf:
options pciback hide=(0000:00:1a.0)(0000:00:1a.1)(0000:00:1a.7)
- 重新启动 xend:/etc/init.d/xend restart
- 配置虚拟机配置:
在 /etc/xen/auto/vm 中:
usb = 1 # Probably irrelevant
pci = [ '0000:00:1a.0', '0000:00:1a.1', '0000:00:1a.7' ]
- 重新创建虚拟机(xm destroy/xm create):
dmesg:
Loading ehci-hcd.ko module
PCI: Enabling device 0000:00:00.7 (0000 -> 0002)
ehci_hcd 0000:00:00.7: EHCI Host Controller
ehci_hcd 0000:00:00.7: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:00.7: debug port 1
ehci_hcd 0000:00:00.7: irq 17, io mem 0xdf0fe000
ehci_hcd 0000:00:00.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 4 ports detected
Loading ohci-hcd.ko module
Loading uhci-hcd.ko module
USB Universal Host Controller Interface driver v3.0
PCI: Enabling device 0000:00:00.0 (0000 -> 0001)
uhci_hcd 0000:00:00.0: UHCI Host Controller
uhci_hcd 0000:00:00.0: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:00.0: irq 19, io base 0x0000ec40
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
PCI: Enabling device 0000:00:00.1 (0000 -> 0001)
uhci_hcd 0000:00:00.1: UHCI Host Controller
uhci_hcd 0000:00:00.1: new USB bus registered, assigned bus number 3
uhci_hcd 0000:00:00.1: irq 20, io base 0x0000ec60
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
...
usb 1-3: new high speed USB device using ehci_hcd and address 2
...
usb 1-3: configuration #1 chosen from 1 choice
hub 1-3:1.0: USB hub found
hub 1-3:1.0: 4 ports detected
usb 1-3.2: new full speed USB device using ehci_hcd and address 3
usb 1-3.2: configuration #1 chosen from 1 choice
- 已達到涅槃。
答案3
最好的办法是将手机放在一台退役的台式机上,然后在裸机上运行所需的一切。是的,这很糟糕!