
Estou avaliando o uso do QEMU para criar máquinas virtuais Linux s390x para uso em compilações de software. Tive algum sucesso criando máquinas usando distribuições Linux mais recentes, como RHEL 8 e Ubuntu 20, mas realmente quero uma máquina RHEL 7.
Estou no Fedora 36 x86 e tenho tentado o seguinte com os pacotes Fedora QEMU 6.2 e o atual QEMU 7.x compilado a partir do código-fonte:
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
Eu tentei imagens kernel+initrd da área de imagens do DVD, e também aquelas extraídas do pacote RPM do kernel 3.10 no DVD. Eu tentei várias versões do RHEL 7.x, todas com o mesmo resultado - o emulador sai imediatamente com apenas saída de depuração, por exemplo:
Guest crashed on cpu 0: disabled-wait
PSW: 0x000a000000000000 0x000000008badcccc
Alguém tem algum conselho para fazer o RHEL 7 s390x funcionar?
Responder1
Parece que a resposta é que não é possível devido aos recursos do kernel que não estão em nenhuma versão do RHEL7, conforme comentários paraEdição QEMU 906
Resolvi meu problema construindo uma emulação s390x executando o Fedora 36, usando um conjunto de ferramentas crosstool-ng para controlar versões do gcc/libc/libstdc++, etc., para produzir artefatos que vinculam/executam em sistemas operacionais mais antigos.