4

I have added my username to the video group, and this allows me to open and use the /dev/fb0 device. So far so good.

But when I try to change the resolution using fbset(1) nothing happens. There are no errors, but there is no change of video mode either.

I use this on a virtual text console.

$ fbset -v 640x480-72
Linux Frame Buffer Device Configuration Version 2.1 (23/06/1999)
(C) Copyright 1995-1999 by Geert Uytterhoeven

Opening frame buffer device /dev/fb0' Reading mode database from file /etc/fb.modes' Using video mode 640x480-72' Setting video mode to /dev/fb0' $

There are also no messages in /var/log/kern.log about this, either.

Why does the resolution change not happen?

NOTE: The rest of the framebuffer functionality works just fine. I can directly write pixels to it, which show up on screen. But the resolution is stuck at 1024x768-75. Running fbset as root doesn't help either.

During boot time, the kernel says:

[    0.360247] efifb: probing for efifb
[    0.360262] efifb: No BGRT, not showing boot graphics
[    0.360264] efifb: framebuffer at 0xb0000000, using 3072k, total 3072k
[    0.360266] efifb: mode is 1024x768x32, linelength=4096, pages=1
[    0.360268] efifb: scrolling: redraw
[    0.360269] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.360330] Console: switching to colour frame buffer device 128x48
[    0.361439] fb0: EFI VGA frame buffer device

The framebuffer is EFI:

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

OS: Ubuntu 21.10

Kernel: 5.13.0-28-generic

GPU: RTX 3070

CPU: Xeon W-2140B

Bram
  • 3,919
  • 5
  • 39
  • 59
  • Same issue for me. It just uses a smaller part of the screen instead of lowering the resolution to display bigger text. Old computers from de 1990s was far better at this, with just as little as a few KB of RAM and disk and a few MHz single core CPU, and the text was perfectly readable. Now we have computers with incredible tons of RAM, disk, CPU speeds and cores, to be unable to achieve such a simple task a displaying readable text on a basic terminal … what a pity (sigh). – Hibou57 Sep 08 '25 at 12:30

1 Answers1

1

It’s not exactly what the original poster asked for, but it may help: when on a TTY (after Ctrl-Alt-F1, as an example), type something like fbterm -s 40 (with a magnifier if needed), where 40 is the font size (one may need it to be bigger or smaller). This other command, fbterm, may need to be installed with the package of the same name, if it’s not already on your distribution.

After this response: https://unix.stackexchange.com/a/441293/36670

Additional notes:

It seems to start a sub-shell, so you have to exit twice to be really logged out. May be there is a way to set it as the default when switching to a TTYn? If not, there is a least the solution to use exec fbterm -s 40, the added exec replaces the current process with the new one, so when one exit for fbterm, he/she is really logged out.

Edit: to set it as the default on a TTYn, see: https://superuser.com/a/1836154/341156 . It seems to works for at least Linux using systemd init model. For other init model, may be this one is better suited: https://superuser.com/a/810655/341156 . Running sudo dpkg-reconfigure console-setup may be useful too and at least harmless (needs a reboot too). Edit end.

There are so many basic things which does not work in this area, I can't promise it will work for every one, I can just hope it will …

Hibou57
  • 1,225