QEMU如何模拟usb总线
时间: 2024-03-24 13:10:14 浏览: 303
QEMU可以通过模拟USB控制器和USB设备来模拟USB总线。具体来说,QEMU提供了两种USB模拟方式:EHCI/UHCI/OHCI和xHCI。
- EHCI/UHCI/OHCI:这些是USB 1.1和USB 2.0标准的控制器。它们可以模拟低速(1.5 Mbps)和全速(12 Mbps)设备。可以使用以下命令来启动一个模拟的USB控制器:
```
qemu-system-x86_64 -device usb-ehci,id=ehci -device usb-host,bus=ehci.0
```
这会启动一个EHCI控制器,并将主机上的USB设备连接到它的端口上。
- xHCI:这是USB 3.0标准的控制器。它可以模拟低速、全速和超速(5 Gbps)设备。可以使用以下命令来启动一个模拟的xHCI控制器:
```
qemu-system-x86_64 -device qemu-xhci
```
这会启动一个xHCI控制器。
一旦USB控制器被启动,可以在虚拟机中添加USB设备。例如,可以将一个USB存储设备添加到虚拟机中:
```
qemu-system-x86_64 -device usb-ehci,id=ehci -device usb-storage,drive=mydrive
```
这会在EHCI控制器上添加一个USB存储设备,并将名为“mydrive”的磁盘映像文件作为存储设备。
相关问题
kvm-qemu模拟usb总线后,总线上的消息如何传递给主机侧
在KVM-QEMU模拟USB总线后,总线上的消息会被传递给主机侧。具体来说,QEMU通过将主机上的USB设备连接到虚拟机中的USB控制器来模拟USB总线。当在虚拟机中使用USB设备时,USB控制器会将USB消息传递给QEMU模拟器,然后QEMU模拟器将这些消息转发给主机上的USB控制器。
在Linux主机上,通常使用USB设备驱动程序来处理USB消息。当主机上的USB设备连接到虚拟机时,主机上的USB设备驱动程序会将USB消息传递给虚拟机的USB驱动程序。虚拟机的USB驱动程序会将USB消息传递给虚拟机中正在使用的USB设备。
因此,在KVM-QEMU模拟USB总线后,USB消息会通过主机上的USB控制器和USB设备驱动程序传递给虚拟机中的USB设备。反之,当在虚拟机中使用USB设备时,USB消息会通过虚拟机的USB驱动程序和主机上的USB控制器传递回主机。
阅读全文