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 grub.

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 vbeinfo on 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"
  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. Anyway, setting 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 grub to 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 ...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.