(In reply to Joey Lee from comment #12) > Hi Thomas, > > (In reply to Thomas Zimmermann from comment #6) > > Here are the results of my investigation so far. The kernel tries to acquire > > the UEFI boot framebuffer via find_gop() [1]. It fails for all available > > results at the pixel_format test at [2]. The firmware only supports the > > BitBlt() EFI call to read/write framebuffer data. It's a boot service, so > > it's gone after the kernel initialized. We cannot use it. > > > > I've tested with kernel's going back to v6.4. It's always reproducible. > > > > To fix this problem, we have modify qemu's OVMF firmware to provide a pixel > > format and a framebuffer to which we can memcpy(). AFAICT a pixel format of > > PIXEL_BIT_MASK [3] would do this. > > > > [1] > > https://elixir.bootlin.com/linux/v6.8/source/drivers/firmware/efi/libstub/ > > gop.c#L521 > > [2] > > https://elixir.bootlin.com/linux/v6.8/source/drivers/firmware/efi/libstub/ > > gop.c#L489 > > [3] > > https://elixir.bootlin.com/linux/v6.8/source/drivers/firmware/efi/libstub/ > > efistub.h#L519 > > Could you please teach me how to create a qemu of aarch64 with graphics > window? I used the following qemu command for launching a aarch64 guest. But > it always only shows message on terminal console. Not graphic window: > > qemu-system-aarch64 \ > -m 4096 -cpu cortex-a57 -smp 4 -M virt \ Hi @joey, any reason why you are running with cortex-a57 and TCG? The supported environment for AArch64 is KVM, with cpu host. Here is again the set of recommendations for ARM KVM from the QEMU manual: https://www.qemu.org/docs/master/system/target-arm.html https://www.qemu.org/docs/master/system/arm/virt.html This would avoid a lot of trial and error and unsupported combinations: lets test what is actually supported upstream and downstream. Thanks, C > -drive > if=pflash,format=raw,readonly,file=/usr/share/qemu/aavmf-aarch64-code.bin \ > -drive > if=pflash,format=raw,file=/home/joeyli/qemu-vm/openSUSE-MicroOS-aarch64-vars- > store.bin \ > -serial mon:stdio \ > -net nic,model=virtio -net nic,model=virtio -net > bridge,br=br0,helper=/usr/libexec/qemu-bridge-helper \ > -drive > if=none,file=/home/joeyli/iso/openSUSE-MicroOS-DVD-aarch64-Current.iso, > id=hd0 -device virtio-blk-device,drive=hd0 \ > -drive > if=none,file=/home/joeyli/qemu-vm/openSUSE-MicroOS-aarch64-efi.qcow2,id=hd1 > -device virtio-blk-device,drive=hd1 -vnc :93 > > Thanks!