How to set Display Resolution while having to use "NOMODESET" on boot

I have 4 laptops upgraded with 16.04, and they all behave a little different with what GRUB accepts. The preferred way should be to set in /etc/default/grub

GRUB_GFXMODE=1920x1080x32

with the part after the equal sign the allowed resolutions for your device. Use either c at the GRUB prompt and enter vbeinfo, or run sudo hwinfo --framebuffer from the console in linux to get a list of accepted modes.

Sometimes, even if the screen is a 16:10 1920x1200 or similar, only a resolution of 1600x1200 is accepted, so watch out for this. This is the setting for GRUB. To have it carry over to the booting system, use a line

GRUB_GFXPAYLOAD_LINUX=keep 

after that.

For some devices, this (preferred) option has no effect. But for my two problem children, commenting out the GRUB_GFXMODE line, keeping the GRUB_GFXPAYLOAD_LINUX line and using the deprecated option vga= with nomodeset was sufficient:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset vga=0x35a quiet splash"

sets the tty to 1600x1200 with 24 bit. Use the hex value sudo hwinfo --framebuffer gives you.


I had the same problem and was finding nomodeset annoying not just because of the screen resolution, but because it really made compiz suck cpu. So I went back to not using nomodeset because I'd found that if I waited 5 minutes after booting, the screen would come on.

Anyway, just now when I booted, it went black after the grub screen as usual, but the screen turned on just before the login screen appeared. I remembered I took an update this morning that included Ubuntu base, so I'm speculating that the problem was addressed. It isn't fully fixed, but is 95% better, so give it a go if you haven't taken this update yet.


I've had the exact same problem. Blank screen on boot-time, that I've partially solved withe nomodeset. But after that, I could not use my external HDMI monitor.

So I've finally solved it by leaving GRUB_CMDLINE_LINUX_DEFAULT="" like that. It seems to me (I'm guessing) that removing the splash option does not force to load any video requirements, and hence once the boot is completed, and because I'm not using nomodeset, external monitor can be detected. But again, just a guess...

I'm using ubuntu 20.04.

OS: Ubuntu 20.04 LTS x86_64 
Host: 20N3S01B00 ThinkPad T490 
Kernel: 5.4.0-29-generic 
Uptime: 7 mins 
Packages: 1735 (dpkg), 6 (snap) 
Shell: bash 5.0.16 
Resolution: 1366x768, 1440x900 
DE: GNOME 
WM: Mutter 
WM Theme: Adwaita 
Theme: Yaru [GTK2/3] 
Icons: Yaru [GTK2/3] 
Terminal: gnome-terminal 
CPU: Intel i7-8565U (8) @ 4.600GHz 
GPU: Intel UHD Graphics 620 
Memory: 2461MiB / 7617MiB