Grub2 boot menu low resolution

Hi Fedora community,

I’ve recently changed from Manjaro to Fedora and can’t seem to get the grub2 boot menu to display at native 4k resolution. It looks like 1024x768x32. I was able to theme Manjaro and change the resolution of the Grub menu, but I do believe it wasn’t running on UEFI, unsure really.

I’ve already tried a number of things and am not sure what to do next or if I just have to accept this. At the end, it is only aesthetics.

Some data:

  • ROG STRIX B550-E GAMING with latest firmware
  • AMD Radeon RX6700 XT
  • Latest Fedora 35
  • Fastboot disabled
  • CSM Boot Disabled
  • Secure boot set to Other OS
  • Boot Logo set to auto

Content of /etc/grub/default:

GRUB_TIMEOUT="5" 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT="saved" 
GRUB_DISABLE_SUBMENU="true" 
GRUB_CMDLINE_LINUX="rhgb quiet video=efifb:mode=0,efifb:nobgrt fbcon=nodefer " 
GRUB_DISABLE_RECOVERY="true" 
GRUB_ENABLE_BLSCFG="true" 
GRUB_TERMINAL_OUTPUT="console" 

What I tried so far:

  • I’ve read GRUB 2 - Fedora Project Wiki and tried setting GRUB_GFXPAYLOAD_LINUX and GRUB_GFXMODE to various settings
  • I’ve read a thread in this forum and added the linux settings video=efifb:mode=0 - which appears to work looking at dmesg [ 0.793565] efifb: mode is 3840x2160x32, linelength=15360, pages=1
  • I’ve toggled the UEFI settings mentioned above
  • I’ve tried looking up the videomode in grub shell but both vbeinfo and videoinfo error out with error: ..../grub-core/script/function.c:119:can't find command
  • I also ran hwinfo --framebuffer --log hwinfo.log but am unable to find any reference to video modes (I grepped for mode, video etc.)
  • I’ve asked on Reddit
  • Read through this forum and found a few related threads Low resolution grub2 and tty but they had no resolution

I am a bit out of ideas. Could it be that running in UEFI mode my graphics card + Monitor via DP + mainboard just don’t support a higher resolution?

Thank you for your help! This is my first post so I hope I didn’t forget anything. Happy to answer any questions!

2 Likes

The grub boot menu is basically a text menu with very little in the way of a kernel and mostly bios support. It is not a graphical interface. It also only displays for a few seconds or maybe not even seen during boot.

I do not understand why you would need to have it displayed in any other way since the only purpose for grub is to boot the OS then get out of the way.

No graphics, no kernel, no utilities have been loaded while grub menu is displayed and all of that is available once the OS loads but not before.

Hi Jeff,

I do not understand why you would need to have it displayed in any other way since the only purpose for grub is to boot the OS then get out of the way.

The text right now is blurry and the wrong resolution. It is mainly aesthetic.
I am also genuinely curious why most of the settings within grub that are available to change the resolution don’t work.

It was possible in Manjaro and I don’t fully appreciate the difference to Fedora.

Firstly edit ‘/etc/default/grub’
add this 2 lines:
GRUB_TERMINAL_OUTPUT=“gfxterm”
GRUB_GFXMODE= “3840x2160x32”
and uncomment GRUB_TERMINAL_OUTPUT=“console” like #GRUB_TERMINAL_OUTPUT=“console”
and run sudo grub2-mkconfig -o /etc/grub2.cfg &sudo grub2-mkconfig -o /etc/grub2-efi.cfg
I hope that will solve your issue

1 Like

Actually those 2 commands have exactly the same result.
/etc/grub2.cfg and /etc/grub2-efi.cfg are both symlinks to /boot/grub2/grub.cfg so you can use either command structure but there is no need to run it twice.

Thank you Igor. I’ve changed the configuration and executed the two commands.

Unfortunately, it made no difference to the grub menu resolution.