How to set Display Resolution while having to use "NOMODESET" on boot
Solution 1:
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.
Solution 2:
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.
Solution 3:
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