全部,
我一直在研究在主機的共享記憶體和來賓作業系統的共享記憶體之間傳遞東西,並且遇到了這個連結。我已經能夠使用 Ubuntu 20.04 VM 成功重現連結中顯示的輸出,並使用qemu-system-x86_64
.我很好奇等效指令可能適用於qemu-system-sparc
Solaris 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條件在硬體/雜項/Kconfig(作業系統和IVSHEM法取決於主機,而非來賓系統):
config IVSHMEM_DEVICE
bool
default y if PCI_DEVICES
depends on PCI && LINUX && IVSHMEM && MSI_NONBROKEN
我無法最終確定MSI_NONBROKEN
x86/64 上的具體設置,可能是某些系統週邊設備。
您可以快速檢查特定 QEMU 模擬器中支援的設備,如下所示:
qemu-system-sparc -device help
qemu-system-sparc64 -device help
您將看到 SPARC 模擬器支援……嗯,什麼也不支援。 SPARC64透過支援PCI來支援多一點。
據我所知,最好的選擇是嘗試使用讀寫共享虛擬磁碟。但不知道這在實踐中會如何運作。也許可以嘗試使用小型 RAW(不是 QCOW2 等)影像檔案。起點已記錄這裡(禁用鎖定等),但我不知道如何從那裡開始。您需要以某種方式將其作為 SCSI 虛擬硬碟新增至您的 VM 中。