I previously used vga=ask and vga=<num> in Android-x86 6.0 to set the display resolution in VMWare and now in QEMU/KVM.

Now I downloaded and installed Android-x86_64 (CyanogenMod 13), in QEMU, in UEFI mode, to a GPT partition, and the option doesn't seem to work anymore. Instead it outputs:

error: invalid file name 'vga=ask'

There doesn't appear to be much information about this elsewhere. But I could find:

I tried wm size 1280x720 (in terminal emulator as root) and it kind of works. the resolution appears to change, but the display area doesn't and it becomes a pain to read anything. So I had it reverted with wm size reset.

I also tried UVESA_MODE=1280x720 and it also reports "invalid filename 'UVESA_MODE'".

There's a proposed solution at the 3rd link (debug.drm.mode.force 1280x720) but it also didn't work.

So, how to change the screen resolution properly?

[Update] I tried on a new installation and the vga kernel option works in non-UEFI mode.


I got it.

Short answer: This line should go in the bootloader for UEFI mode:

set gfxpayload=1280x720


On x86 systems, the kernel will be booted using the 32-bit boot protocol. Note that this means that the ‘vga=’ boot option will not work; if you want to set a special video mode, you will need to use GRUB commands such as set gfxpayload=1024x768 or set gfxpayload=keep (to keep the same mode as used in GRUB) instead. (...) The linux16 command (see linux16) avoids this restriction.

GNU GRUB Manual 2.02: linux

See also, How Do You Pass VGA/VESA Modes with GRUB2? (Unix.SE).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.