Hello everyone. I’ve been using NixOS for about nine months now, and overall I love the system - it took a lot of time to learn how to get it to work how I needed (particularly for audio stuff, which is my main focus) but I’ve enjoyed it quite a bit since I got it to that point. As I’ve seen other people say, “it takes a lot of work, but once you’ve got it set how you need, you’re golden”.
Until 26.05 came along at least, for me. My NixOS computer isn’t my main computer, it’s my secondary laptop, so I can go a little while without using it. I realized at some point recently that there was a new major version out, so I decided to work on getting it upgraded this weekend.
I learned from my last time struggling to get it to 25.11 that I needed to update the flake as well to make the main upgrade take effect, which was pretty much the only issue I ran into that time. This time there was a bit more.
A couple packages had been renamed so I just needed to fix those. But then we come across the first issue - the kernel version I use, rt_latest (realtime kernel for audio) was depreciated due to lack of maintenance. Now, this might not be a problem, I feel like I had heard about some of the improvements from the rt kernel being pulled into the upstream kernel, so maybe I didn’t need it. But it’s a bit concerning to me that it wasn’t depreciated for “merged into upstream” or something like that if that was the case, but rather just that it wasn’t being maintained any more.
Final build attempt after switching the kernel to just the normal latest one, and it all looks like it works!
Until I try logging in using X11.
This is a ThinkPad P43s, which has a discrete Nvidia Quadro P520 card in it. That had taken some time to get working in the first place when I was initially setting up the system, but it did work - however, it only worked in X11 as far as I could tell. I could open up nvidia-smi in X11 and see all the processes using it, looked totally fine. In Wayland, nvidia-smi never showed any processes (even when putting the computer under a relatively high graphical load), which implied to me that Wayland was just never using it.
So, I always used X11 with NixOS as a result. And when I tried logging in with X11 selected, it turns to a black screen, looks like it’s about to drop me on the desktop and then… back to SDDM. It’s like the display server has just ceased to be. Of course, nothing in my configuration regarding this had changed - all I had done was change the kernel and rename a couple renamed packages (and remove an unrelated package of my own). services.xserver.enable = true; is still there. And I don’t know if it’s just a result of search engines being borderline useless nowadays, but I couldn’t find anyone saying this happened to them. Looking at the current NixOS manual’s section on X, it seems like everything is in order.
Well, I log into Wayland. Figure I might as well run nvidia-smi, see if the upgrade worked out the kinks and now Wayland can use the card. But no, now nvidia-smi just doesn’t see a driver whatsoever. It doesn’t even start, just says there is no driver.
Well that’s not good. I do a bit of digging and find that apparently Nvidia drivers have just kind of been nonfunctional in Wayland this whole time? I don’t know if that’s true or not, but that could explain why it had never worked for me. But then in another thread of someone who seemed in a similar situation to me (though from years back IIRC), the recommendation was to use the legacy_### version of the driver for older cards, which the P520 most likely is. I looked up the latest driver version for it on Nvidia and it matched one of the legacy driver versions, so I switched it to that.
And it failed to build, because it was missing the “of_gpio.h” header. The only information I could find on this is that it may have just been removed outright? If so it has probably been replaced with a different header file but I’m not really at the level of, say, manually editing graphics card driver source code to change the header file it uses. But hey, nixos-hardware has a setup created for the P43s, so let me just remove my nvidia.nix file and let nixos-hardware handle it.
Same thing happened. Well, let me remove that from my flake and re-add my nvidia.nix file in case the flake had predominated it from the start.
Same thing, again. RIP.
~
So, unfortunately, I think this might have to be the end of the road for me and NixOS. It’s a shame, I really do like the system and “enjoyed” the challenge of getting it set up in the first place. I had it all working how I needed, it was great. The only thing I had left on my plate was to figure out how to get the Nvidia driver working with Wayland at some point, but I was in no rush for that. But 26.05 just messed it up. I’m sure my audio setup still works - assuming that not having the realtime kernel isn’t going to mess with it - but I don’t really want to limp along with a mutilated build with no working X11 and no working graphics card driver. (My theory is that X11 isn’t starting because it wants to start with the Nvidia driver, but can’t find it, so it just boots out back to sddm. So it might be possible to tell X11 to start with the integrated Intel driver, but that still doesn’t really fix the issue.)
While I do enjoy the challenge involved in getting things to work in Linux (a fun one recently was a tty-only Artix build using tmux as a sort of “display server” with a ton of TUI and CLI tools, links as a browser, cbonsai as a “desktop” decoration, etc), at the end of the day I do need a functional system, because the operating system itself isn’t my hobby - it’s what I use to pursue my hobbies.
I would still like to use NixOS, so if you have any input as to what my issues might be I’d love to hear them, but a system upgrade breaking my configuration like this in the first place sort of brings into question how much I can rely on NixOS for this system long-term. For anyone interested to look, my config files are here: GitHub - Hyfudiar/NixOSConf: My NixOS configuration · GitHub (It’s amateurish I’m sure, it was just hacked together as I was learning how to use NixOS. So I’m sure it’s in a rough/messy shape, but it has worked just fine for me til now.)