qemu-system-sparc: memoria compartida entre host e invitado

qemu-system-sparc: memoria compartida entre host e invitado

Todo,

He estado investigando cómo pasar cosas entre la memoria compartida de un host y la memoria compartida del sistema operativo invitado, y me he encontradoeste enlace. Pude reproducir con éxito el resultado que se muestra en el enlace usando una máquina virtual Ubuntu 20.04 e iniciándolo con qemu-system-x86_64. Tengo curiosidad por saber cuáles podrían ser los comandos equivalentes para qemu-system-sparcun invitado de Solaris 8.

Probé el siguiente comando:

./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

Esto falla por la siguiente razón:

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

¿Es posible este deseo de pasar datos con memoria compartida qemu-system-sparc?

Respuesta1

Parecería que esto no es posible.sistema-qemu-sparcno es compatible con PCI yivshmemLos dispositivos se emula como dispositivos PCI.qemu-sistema-sparc64por otro ladohaceadmite PCI, aunque es posible que no cumpla con los requisitosMSI_NOBROKENcondición enhw/misc/Kconfig(LINUXyIVSHMEMDepende del anfitrión, no del sistema invitado):

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

No he podido averiguar de manera concluyente qué se configura exactamente MSI_NONBROKENen x86/64, posiblemente algún periférico del sistema.

Puede verificar rápidamente los dispositivos compatibles en su emulador QEMU particular de esta manera:

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

Verás que el emulador SPARC admite… bueno, nada. SPARC64 admite un poco más al admitir PCI.


Por lo que veo, lo mejor que puede hacer es intentar utilizar un disco virtual compartido de lectura y escritura. Sin embargo, no sé cómo funcionaría eso en la práctica. Tal vez pruébelo con un pequeño archivo de imagen RAW (no QCOW2 o similar). El punto de partida está documentado.aquí(deshabilitar el bloqueo, etc.), pero no estoy seguro de cómo proceder desde allí. De alguna manera necesitas agregarlo como un disco duro virtual SCSI a tu VM.

información relacionada