qemu-system-sparc: ホストとゲスト間の共有メモリ

qemu-system-sparc: ホストとゲスト間の共有メモリ

全て、

ホストの共有メモリとゲストOSの共有メモリの間でデータをやり取りする方法を調べていたところ、このリンク。Ubuntu 20.04 VM を使用して で起動すると、リンクに示されている出力を正常に再現できました。Solaris 8 ゲストの場合、qemu-system-x86_64同等のコマンドが何になるのか興味があります。qemu-system-sparc

次のコマンドを試しました:

./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 システム sparcPCIをサポートしておらず、ivshmemデバイスは PCI デバイスとしてエミュレートされます。qemu システム sparc64一方でするPCIをサポートしていますが、MSI_非破損状態ハードウェア/その他/KconfigリナックスそしてIVSHMEMゲスト システムではなくホストに依存します):

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 に追加する必要があります。

関連情報