I’ve been using Arch for a few years now with an nvidia GTX 680, using
nvidia-dkms on a self-compiled kernel (-ck patch). This worked well, up to (and including) nvidia version 440.100-1.
Beginning with 450.57-1, however, while I can boot just fine (initrd messages showing up, SDDM login showing up, can login into the DE (KDE/Plasma 5) and use the graphical session perfectly), I can not switch to any of the TTYs using CTRL+ALT+F*.
When I do so, the screen turns black and the monitors even go into stand-by mode due to no signal. I can switch back to my graphical session and it shows up fine. Same thing when I shut down: with the older (working) nvidia version, it will show me the shutdown messages and tell me which services are being stopped etc. With the new nvidia version, the screens go black/stand-by again until the PC shuts off fully. This issue started with version 450.57-1 (which is the first non-440 driver available in Arch Linux, so the first 450.* that I was able to easily test) and even with the up-to-date version (455.28-1; released 10 days ago in the Arch Linux repo), I still have exactly the same issue.
Important: This also happens with the official kernel, not just my self-compiled one. I tried enabling DRM kernel mode setting by adding the relevant modules into my initcpio and adding
options nvidia_drm modeset=1 to /etc/modprobe.d, but this only makes it worse: Early in the boot process, after barely showing a few messages, the screen turns black/stand-by and will not turn back on until it has fully booted up and displays the SDDM login screen.
It feels like as soon the nvidia driver “takes over”, the non-graphic terminals are broken.
I should reiterate that bootup messages show up fine until SDDM shows up. That is, without DRM kernel mode setting. When I add the nvidia modules into my initcpio and then also add that modprobe.d entry above, the black screen/monitor standby still happens, but earlier - pretty much in the middle of the bootup process.
Another attempt that I did was still with the nvidia initcpio modules enabled and
options nvidia_drm modeset=1 in modprobe.d but commented-out efi_gop/_uga in GRUB: no visible difference, screen shuts down early on and stays off until SDDM starts. With gfxterm commented out: grub looks different (smaller menu, fills about top left 1/4 of the screen only), after I select the boot entry it switches back up to showing kernel logs in full screen, then after a few messages it turns black/standby again until SDDM comes up. So these (and similar) attempts have not improved anything. In fact, I am not quite sure if grub even has any kind of influence here, because it starts with the messages being shown just fine. I assume that means that grub hands it all off correctly to the kernel.
It feels more like nvidia ends up being loaded and then proceeds to brick something, hence I assume it’s the driver’s fault. Especially seeing as the only difference between a fully working system and the issue I’m describing is literally just nvidia 440.* vs 450.*/455.*.
I’ve been using Arch for about 3-4 years now, always kept it up-to-date, but while nvidia has indeed broken a few times for me, I only had two cases: 1) not compileable at all, 2) compileable, but the autocompilation broke for some reason and I had to manually trigger a rebuild.
But: I’ve never seen a “working” driver where only the graphical sessions work and not the TTYs/kernel messages on shutdown and/or boot.
Now that 455.28-1 is out, I thought I’d update to that version and see if it’s fixed now, but I still see exactly the same effect. For now I’ve continued to do my computing needs with the nvidia updates being blacklisted in my package manager so that I stay on nvidia 440.* on Linux 5.7 for the time being. However, with the 5.8 kernel and the new 5.9 kernel the 440.* driver doesn’t seem to compile anymore, so I’m getting a bit worried about the future.
tl;dr: GTX 680, Linux 5.7, old version of nvidia (440.*) = works perfectly; new version (anything 450.*/455.*) = graphical session works, TTY show black screen (monitors say “no signal” and go into standby); shutdown messages are also not shown (black screen again)