Nvidia driver attributes don't do anything?

My nix ain’t that great, but it looks like it’ll always pick the highest one, so no matter what attribute you pick, you’ll get the highest one (535.85.x)

hardware.nvidia = {
modesetting.enable = true;
open = true; # use open source kernel module
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;

Gives me 535.85.x, the highest one. I can try .beta, .latest, .stable, all the same version (production, 535.85), or more like my build won’t do anything, since there’s nothing to do.

The wiki gives me the impression it’s suppose to change driver versions

# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;

But from actual usage and my basic nix understanding , it looks like it’s always the highest version available.

Am I misunderstanding something? My goal is to move to ‘beta’ or ‘latest’.

1 Like

Yes, because apparently the latest stable driver is newer than the latest beta driver. I dug into blame, here’s the PR with reasoning for this: nvidia_x11: reorganize latest versions by Kiskae · Pull Request #186834 · NixOS/nixpkgs · GitHub


Thanks for confirming and digging up more information about it.

I agree Nvidia has some weird scheme, but I don’t agree with the way it’s handled in nixpkgs. It should be presented as-is (unless security/broken) by the upstream.

Or at the very least if I goto Nvidia’s site Unix Drivers | NVIDIA I’m being presented with certain naming & versions, then I go search nixpkgs, and I’m presented with the same naming scheme except it doesn’t follow the versions. That leads to some confusion.

I think there is use-cases too for allowing users to decide between the different versions presented by Nvidia. Considering how buggy the drivers are, the latest isn’t always the best for different users.