
Estoy evaluando el uso de QEMU para crear máquinas virtuales Linux s390x para usar en compilaciones de software. He tenido cierto éxito creando máquinas usando distribuciones de Linux más nuevas como RHEL 8 y Ubuntu 20, pero realmente quiero una máquina RHEL 7.
Estoy en Fedora 36 x86 y he estado intentando lo siguiente tanto con los paquetes Fedora QEMU 6.2 como con el QEMU 7.x actual creado desde el código fuente:
qemu-img create -f qcow2 rootfs.qcow2 20G
qemu-system-s390x \
-M s390-ccw-virtio -m 4G -smp 2 -cpu max \
-drive file=rhel-server-7.9-s390x-dvd.iso,media=cdrom,if=none,id=drive-virtio-disk1 \
-device virtio-scsi -device scsi-cd,drive=drive-virtio-disk1,bootindex=1 \
-drive file=rootfs.qcow2,if=none,id=drive-virtio-disk0 \
-device virtio-blk-ccw,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2,scsi=off \
-net nic,model=virtio,netdev=net1 -netdev user,id=net1 \
-nographic -display none -serial mon:stdio \
-d guest_errors \
-kernel kernel.img -initrd initrd.img
Probé imágenes kernel+initrd del área de imágenes del DVD y también aquellas extraídas del paquete kernel 3.10 RPM en el DVD. Probé varias versiones de RHEL 7.x, todas con el mismo resultado: el emulador sale de inmediato con solo salida de depuración, por ejemplo:
Guest crashed on cpu 0: disabled-wait
PSW: 0x000a000000000000 0x000000008badcccc
¿Alguien tiene algún consejo para que RHEL 7 s390x funcione?
Respuesta1
Parece que la respuesta es que no es posible debido a las características del kernel que no se encuentran en ninguna versión de RHEL7, según los comentarios deNúmero 906 de QEMU
Resolví mi problema compilando bajo una emulación s390x que ejecuta Fedora 36, usando una cadena de herramientas crosstool-ng para controlar las versiones de gcc/libc/libstdc++, etc., para producir artefactos que se vinculen/ejecuten en sistemas operativos más antiguos.