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-sparc
un 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_NONBROKEN
en 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.