You are not logged in.
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
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
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 : NoIt'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
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
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