qemu-system-sparc:主机和客户机之间的共享内存

qemu-system-sparc:主机和客户机之间的共享内存

全部,

我一直在研究在主机的共享内存和客户操作系统的共享内存之间传递内容,并遇到了此链接。我已经能够使用 Ubuntu 20.04 VM 并使用 启动它,成功重现链接中显示的输出。qemu-system-x86_64我很好奇对于qemu-system-sparcSolaris 8 客户机,等效命令可能是什么。

我尝试过以下命令:

./qemu-system-sparc -M SS-5 -m 128 -bios ./ss5.bin -drive file=sol8.qcow2,bus=0,unit=0,media=disk -object memory-backend-file,size=16M,share=on,mem-path=/dev/shm/shm1,id=shm1 -device ivshmem-plain,memdev=shm1,bus=pci.0,addr=0x10,master=on

由于以下原因,此操作失败:

qemu-system-sparc: -device ivshmem-plain,memdev=shm1,bus=pci.0,addr=0x10,master=on: 'ivshmem-plain' is not a valid device model name

通过共享内存传递数据的愿望可能吗qemu-system-sparc

答案1

看来这是不可能的。qemu 系统-sparc不支持 PCI 和伊夫什梅姆设备被模拟为 PCI 设备。qemu-系统-sparc64另一方面支持 PCI,但它可能无法满足MSI_NONBROKEN (无中断)条件硬件/杂项/KconfigLinux体外循环心电图依赖于主机,而不是客户系统):

config IVSHMEM_DEVICE
    bool
    default y if PCI_DEVICES
    depends on PCI && LINUX && IVSHMEM && MSI_NONBROKEN

我还不能确切地找出MSI_NONBROKENx86/64 上的具体设置,可能是一些系统外围设备。

您可以像这样快速检查特定 QEMU 模拟器中支持的设备:

qemu-system-sparc -device help
qemu-system-sparc64 -device help

您将看到 SPARC 仿真器支持……嗯,什么都不支持。SPARC64 通过支持 PCI 提供更多支持。


据我所知,最好的办法是尝试使用读写共享虚拟磁盘。但不知道这在实践中会如何运作。也许可以尝试使用小型 RAW(不是 QCOW2 或类似文件)图像文件。起点已记录这里(禁用锁定等),但我不确定接下来该怎么做。您需要以某种方式将其作为 SCSI 虚拟硬盘添加到您的 VM。

相关内容