Some time ago, while trying to update my desktop system from Ubuntu 18.10 to 19.04, something failed, and I ended with a non working graphical environment.
This forced me to use the console (Ctrl+Alt+F3), which was working well. Actually, it was working very well. The screen was fully used, fonts were crisp, and even though they were small, just by virtue of fitting perfectly with the monitor's resolution, they were highly readable. I ended having a very large working space. In association with
tmux, it was a perfect development environment.
I felt so well in this new setup that I neglected repairing the graphical environment for a few weeks. However, one thing dearly missing from text mode is Firefox, and there is only so much I could do without ever accessing it. So I fixed the issue, which was apparently related to the nVidia graphics drivers. Just uninstalling and reinstalling fixed it. And now the graphical environment works perfectly.
So, I don't exactly "need" the console mode anymore, but since I liked it, I wanted to use it again, and to my dismay, resolution was set to a default 1024x768. The crips fonts were gone, text is now oversized and blurry, reducing work environment, and featuring a disagreeable read experience.
So, I went up to search some solution. And it happens that this question is asked quite often. I found many variants of the same answer, and all of them point to
Now, this is strange, because in the above scenario, console resolution was changed while
grub wasn't modified the slightest. So it smells fishy. I nonetheless reluctantly tried it. A good variant of the
grub solution can be read here. So I applied it, using my monitor's resolution, but it did not worked. The resolution is still low and blurry.
Digging deeper, I find some advises on how to select a video mode starting with listing them using
grub. It doesn't work. Later I see a note to use
videoinfo instead. This one works, but only lists "low resolution" modes, from 640 to 1280, in 4x3 format.
Finally, another answer suggests to use
hwinfo, which is available in user mode. This one lists more modes, but still not the one of my monitor.
sudo hwinfo --framebuffer 02: None 00.0: 11001 VESA Framebuffer [Created at bios.459] Unique ID: xxxx Hardware Class: framebuffer Model: "NVIDIA GPU Board" Vendor: "NVIDIA Corporation" Device: "GPU Board" SubVendor: "NVIDIA" SubDevice: Revision: "Chip Rev" Memory Size: 16 MB Memory Range: 0x01000000-0x01ffffff (rw) Mode 0x0301: 640x480 (+640), 8 bits Mode 0x0303: 800x600 (+1024), 8 bits Mode 0x0305: 1024x768 (+1024), 8 bits Mode 0x0307: 1280x1024 (+1280), 8 bits Mode 0x0311: 640x480 (+1280), 16 bits Mode 0x0312: 640x480 (+2560), 24 bits Mode 0x0314: 800x600 (+2048), 16 bits Mode 0x0315: 800x600 (+4096), 24 bits Mode 0x0317: 1024x768 (+2048), 16 bits Mode 0x0318: 1024x768 (+4096), 24 bits Mode 0x031a: 1280x1024 (+2560), 16 bits Mode 0x031b: 1280x1024 (+5120), 24 bits Mode 0x0345: 1600x1200 (+1664), 8 bits Mode 0x0346: 1600x1200 (+3328), 16 bits Mode 0x034a: 1600x1200 (+6656), 24 bits Mode 0x0371: 1360x768 (+6144), 24 bits Mode 0x0377: 1920x1080 (+7680), 24 bits Config Status: cfg=new, avail=yes, need=no, active=unknown
My monitor offers a native resolution of 1680x1050, a 16:10 format. It's not present in this list. This seems to suggest that the graphics card is not able to handle.
Yet, it works perfectly fine in graphical mode. And what's even more strange is that Console Mode at 1680x1050 used to work perfectly while the graphic driver were in bad shape. Somehow, fixing the graphic driver made the situation worse for console mode.
Is there anything that can be attempted on top of the previously described actions ?
edit : I tried my luck with
rEFInd, which offers a more sensible configuration experience through
refind.conf. I guess it also means the
grub2 trick is no longer valid.
resolution 1680 1050 doesn't work, and boot immediately complains about it, restricting the choice to
640x480, 800x600, 1024x768, 1280x1024.
So I guess
rEFInd is constrained to select one among them, likely due to limits in what nVidia VGA Bios supports.
However, it feels strange to me that the console would be constrained to just "inherit" the same resolution as the boot loader. And it still doesn't explain why a console at 1680x1050 was working fine before fixing the graphics driver.
edit 2 : modifying the resolution of
1280x1024, which is one of the resolutions allowed by
videoinfo, is successful in modifying the resolution of Ubuntu tty to the same
1280x1024. At last, some impact. It increases workspace from the default
1024x768, but fonts are even less readable ...
Still no explanation as to why tty using
1680x1050 was working fine while nvidia drivers were in shamble.
edit 3 : I now suspect that, while my graphic environment was not working, the graphic driver was probably provided by
nouveau. It was unfortunately incompatible with my graphic card because it was too new (it's an RTX2080). But somehow,
nouveau has a working framebuffer implementation which makes it possible to have high-res console, something that is strangely missing from the official nVidia drivers ...