Low resolution grub2 and tty

Since upgrading to Fedora 34, the display in grub, while booting, and in ttys is low resolution and ugly. Years ago I had played with grub config files to fix this, especially given that I’m using an nvidia, and the solution persisted through several Fedora release upgrades. It seems something has changed in F34.

How can I restore a native resolution? Here is my current /etc/default/grub:

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_CMDLINE_LINUX="rd.lvm.lv=[...]/root rd.luks.uuid=luks-[...] rhgb quiet rd.driver.blacklist=nouveau"
## added to fix Plymouth with nvidia drivers
## OR "efi_uga"

# from https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/2/
#GRUB_VIDEO_BACKEND="efi_gop" ## OR "efi_uga"
#GRUB_GFXMODE="auto" ## OR set resolution, like "1920x1080x24"

Maybe there is a better/simpler config now? I noticed that the site I had previously used as a guide has updated their page to now create config files for adding an option nvidia-drm modeset=1 but gives no explanation. Not sure if this is recommended.

I am not using nvidia drivers but low resolution in grub and tty usually means not using the modesetting driver. Kernel modesetting basically means setting the display resolution and some other settings in the kernel space rather than the user space. So using nvidia_drm modeset=1 may be helpful in this situation.

I tried nvidia-drm.modeset=1 in grub’s linux command line, and while that fixes plymouth’s resolution partway into the booting process (after entering the LUKS passphrase), the grub menu, early part of booting, and tty are all with the lower resolution. To note, even with this parameter option set, the tty are still low res even after booting is completed.

Also, the grub and tty resolution was fine at 1920x1080 before F34 with the above /etc/default/grub settings.

I tried changing some settings in /etc/default/grub without success as I’m mostly guessing in the dark. I noticed some arguments are in double quotes while others are not. I’m not sure if it makes a difference, though since the inconsistency existed before F34 I wouldn’t think that’s the source of the problem.

Factors to keep in mind:

  • Motherboard is using UEFI mode with CSM and fastboot disabled
  • system uses LUKS encryption
  • proprietary nvidia drivers and akmod installed from negativo17
  • grub, booting text, and tty were at 1920x1080 before F34

This frustrating issue comes up from time to time. The solution from Higher resolution for tty1-6 and at boot, strange problem - #9 by nippur isn’t working for me, in particular hwinfo --framebuffer gives no output.

Also tried fbset -i and strangely there is only one resolution at 1024x768:

# fbset -i

mode "1024x768-76"
    # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
    geometry 1024 768 1024 768 32
    timings 12714 128 32 16 4 128 4
    rgba 8/16,8/8,8/0,8/24

Frame buffer device information:
    Name        : EFI VGA
    Address     : 0xe0000000
    Size        : 3145728
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 0
    YPanStep    : 0
    YWrapStep   : 0
    LineLength  : 4096
    Accelerator : No

At grub’s command prompt, the often suggested vbeinfo does not work:

grub> vbeinfo
error: ../../grub-core/script/function.c:119:can't find command `vbeinfo`.

I had a similar issue with both Intel and AMD GPUs. Oddly enough, I found that enabling “Full screen boot logo” option in EFI firmware setup helped in my case.

Thanks, I read that too somewhere. I tried enabling the boot logo (no fullscreen option though) in the motherboard’s BIOS/UEFI settings but it made no difference to me.

aestetically a graphical bootlogo is kinda nice though: you see zero text blabber until KDE plasmashell GUI is up - disabling plymouth gets rid of another gimmick of dubious utilitiy there.