You are not logged in.

#1 2025-12-17 04:22:29

scott_fakename
Member
Registered: 2012-08-15
Posts: 129

[SOLVED] nvidia DRM modesetting no longer working, huge terminal font

For many years I've been using the deprecated (and apparently now no-longer-working) nvidia_drm.fbdev=0 kernel argument; but today after an upgrade, I had to remove that from my command line in order for x to start.

The reason I've been using that is that if I don't, then my virtual TTY font size becomes humongous. In X, a terminal currently supports 81 lines. In a TTY, it supports only 45; the font size is giant.

In early boot, the font size is huge, but during early inird the screen refreshes and the screen becomes normal looking; however as the boot proceeds at some point the screen clears and the font size gets giant again. With nvidia_drm.fbdev=0, the vconsole stayed as it was and the font was normal, but that kernel command line parameter has been deprecated for a long time. I knew this but I just kept using it to get around that.

Now that it's gone, what's the "proper" way to keep the resolution correct in the terminal, with an nvidia GPU?

I believe I was originally using that argument due to following https://wiki.archlinux.org/title/NVIDIA … de_setting but from here I'm a bit lost.

Last edited by scott_fakename (2025-12-18 02:19:40)

Offline

#2 2025-12-17 09:26:11

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 71,469

Re: [SOLVED] nvidia DRM modesetting no longer working, huge terminal font

w/o nvidia_drm.fbdev nvidia_drm can't take over from simpledrm, the hack where the explicit "nvidia_drm.modeset=1" parameter implicitly disables the simplydumb device was removed.
What's the output of "fbset -i" (on the console)?
Can you control the resolution w/ https://www.kernel.org/doc/Documentation/fb/modedb.rst
Is this a hybrid graphics system?

Offline

#3 2025-12-18 01:39:49

scott_fakename
Member
Registered: 2012-08-15
Posts: 129

Re: [SOLVED] nvidia DRM modesetting no longer working, huge terminal font

fbset -i says:

mode "2560x1440"
    geometry 2560 1440 2560 1440 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name        : nvidia-drmdrmfb
    Address     : (nil)
    Size        : 14745600
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 1
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 10240
    Accelerator : No

It's a dual monitor system but just one GPU, an nvidia one. I think I have an agpu as well but it's not plugged in to anything.

That's a good lead, It does look like the resolution is correct, these are indeed 2560x1440 screens; it's just that the font size that nvidia chooses is enormous. I'll see if there's a way to change the font size in the nvidia driver somewhere if I can find the docs for it.

Offline

#4 2025-12-18 02:02:40

scott_fakename
Member
Registered: 2012-08-15
Posts: 129

Re: [SOLVED] nvidia DRM modesetting no longer working, huge terminal font

Ah ha. If I just run

setfont Lat2-Terminus16

... Then it makes the font be normal. I have already set up my /etc/vconsole.conf:

$ cat /etc/vconsole.conf 
FONT=Lat2-Terminus16

... But it gets undone at some point during the boot. This also happens on a different computer I have but the result is just that it uses an ugly font not that it becomes giant.

I might just need to reorder my mkinitcpio hooks.

HOOKS=(base systemd autodetect microcode modconf keyboard sd-vconsole block sd-encrypt lvm2 filesystems fsck)

I'm just not sure why it *starts* with the font size being huge right at the start of the boot, resets, presumably running the vconsole hook, and then re-runs later undoing the vconsole hook.

Offline

#5 2025-12-18 02:18:49

scott_fakename
Member
Registered: 2012-08-15
Posts: 129

Re: [SOLVED] nvidia DRM modesetting no longer working, huge terminal font

https://wiki.archlinux.org/title/Linux_ … figuration

If the fonts appear to not change on boot, or change only temporarily, it is most likely that they got reset when graphics driver was initialized and console was switched to framebuffer. By default, all in-tree kernel drivers are loaded early, NVIDIA users should see NVIDIA#Early loading to load their graphics driver before /etc/vconsole.conf is applied.

Well that's that then. I would need to do early loading of my nvidia driver; I have tried that in the past, but my boot partition is actually too small to fit initramfses with nvidia modules packed in, (it's only 500MiB and I have two kernels, arch and arch-lts, so each of those having normal and fallback initramfses, it adds up quick). I guess this'll just have to be something I live with I guess.

Maybe I can hack around it sort of, by adding dependencies before my agetty sytemd units that rerun systemd-vconsole-setup, or just rerun setfont.

Much to consider.

Thanks!

Offline

Board footer

Powered by FluxBB