USB 从 dom0 转发到 domU

USB 从 dom0 转发到 domU

我可以通过什么方式将两部 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 设备。

因此这里它或多或少运行(尚未开始压力测试):

  1. 断开所有 USB 设备
  2. 通过 pciback 从 dom0 卸载 USB 设备。卸载 UHCI/OHCIEHCI 设备。(根据需要编写某种 init.d 脚本)。有关 pciback 的详细信息如下这里根据第 1 点
  3. 重启 xend
  4. lsusb 应该输出没有什么在 dom0 上
  5. 使用以下命令编辑 domU 配置文件pci = ['0000:yy:xx.0']东西
  6. 开始你的 domU
  7. 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

    1. 我移除了所有连接的 USB 设备。
    2. rmmod uhci_hcd ohci_hcd ehci_hcd
    3. 确定哪个 USB 集线器连接到哪个连接器
    4. 增加了部分 USB 端口的隐藏功能

/etc/modprobe.conf:

options pciback hide=(0000:00:1a.0)(0000:00:1a.1)(0000:00:1a.7)
  1. 重新启动 xend:/etc/init.d/xend restart
  2. 配置虚拟机配置:

在 /etc/xen/auto/vm 中:

usb = 1 # Probably irrelevant
pci = [ '0000:00:1a.0', '0000:00:1a.1', '0000:00:1a.7' ]
  1. 重新创建虚拟机(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
  1. 已達到涅槃。

答案3

最好的办法是将手机放在一台退役的台式机上,然后在裸机上运行所需的一切。是的,这很糟糕!

相关内容