[QEMU]设备仿真

QEMU 支持从外设(如网卡和 USB 设备)到片上集成系统 (SoC) 的大量设备的仿真。这些设备的配置通常是混淆的根源,因此有助于理解用于描述QEMU中设备的一些术语。
常用术语
设备前端
设备前端是向来宾呈现设备的方式。显示的设备类型应与客户机操作系统预期的硬件相匹配。可以使用命令行选项指定所有设备。使用命令行选项运行 QEMU 将列出它所知道的所有设备。使用命令行将列出可用于该设备的其他配置选项。--device
--device help
--device foo,help
前端通常与后端配对,后者描述了如何在仿真中使用主机的资源。
设备总线
大多数设备将存在于某种总线上。根据您选择的机器型号(),将自动创建许多总线。在大多数情况下,可以推断出设备连接到的总线,例如PCI设备通常自动分配给找到的第一个PCI总线的下一个空闲地址。但是,在复杂的配置中,您可以显式指定设备连接到的总线 () 及其地址 ()。-M foo
bus=ID
addr=N
某些设备(例如 PCI SCSI 主控制器)将向系统添加其他总线,其他设备可以连接到该总线。假设的设备链可能如下所示:
–device foo,bus=pci.0,addr=0,id=foo –device bar,bus=foo.0,addr=1,id=baz
这将是一个条形设备(ID为baz),它连接到地址1的第一个foo总线(foo.0)。提供该总线本身的 foo 设备连接到第一个 PCI 总线 (pci.0)。
设备后端
后端描述了QEMU如何处理仿真设备中的数据。后端的配置通常特定于要模拟的设备类。例如,串行设备将由一个可以将数据重定向到文件或套接字或其他系统来支持。存储设备的处理方式将指定块的处理方式,例如存储在 qcow2 文件中或访问原始主机磁盘分区。后端有时可以堆叠以实现快照等功能。--chardev
--blockdev
虽然后端的选择通常对来宾是透明的,但在某些情况下,如果后端无法支持,则不会向来宾报告功能。
设备直通
设备直通是设备实际被授予对底层硬件的访问权限的位置。这可以很简单,只需将主机系统上的单个 USB 设备暴露给来宾,或将 PCI 插槽中的视频卡专用于来宾专用即可。
仿真设备
CAN总线仿真支持 https://www.qemu.org/docs/master/system/devices/can.html
芯片卡接口器件 (CCID)https://www.qemu.org/docs/master/system/devices/ccid.html
计算快速链接 (CXL)https://www.qemu.org/docs/master/system/devices/cxl.html
虚拟机间共享内存设备 https://www.qemu.org/docs/master/system/devices/ivshmem.html
网络仿真 https://www.qemu.org/docs/master/system/devices/net.html
NVMe 仿真 https://www.qemu.org/docs/master/system/devices/nvme.html
USB 仿真 https://www.qemu.org/docs/master/system/devices/usb.html
虚拟主机用户后端 https://www.qemu.org/docs/master/system/devices/vhost-user.html
virtio pmem https://www.qemu.org/docs/master/system/devices/virtio-pmem.html
QEMU vhost-user-rng - RNG 仿真 https://www.qemu.org/docs/master/system/devices/vhost-user-rng.html
卡诺基 QEMU https://www.qemu.org/docs/master/system/devices/canokey.html