NixOS + Old NVIDIA: How to survive driver 595 (GTX 750 Ti / Maxwell)

Originally published on vivaolinux.com.br

Recently I faced a problem updating my NixOS system: after updating flakes, the NVIDIA driver was automatically updated from version 580.142 to 595.58.03, and my GPU (GTX 750 Ti, Maxwell architecture) simply stopped working. I could still access the framebuffer.

When I tried to load the driver module, I got this error:

modprobe: ERROR: could not insert 'nvidia': No such device

The cause is not a configuration error, but rather a recent NVIDIA change: Maxwell architecture was considered “feature-complete”, and newer drivers (like 595) no longer guarantee real support. The module loads but does not recognize the GPU. In other words, the driver exists, but it no longer contains effective support for the hardware.

The solution is to use the latest version still compatible with the GPU, which in my case is 580.142. Below is the configuration using mkDriver.

{ config, pkgs, ... }:

{
  services.xserver.videoDrivers = [ "nvidia" ];
  hardware.graphics.enable = true;
  nixpkgs.config.nvidia.acceptLicense = true;
  hardware.nvidia = {
    modesetting.enable = true;
    powerManagement.enable = true;
    open = false;
    nvidiaSettings = true;
    # Old GPUs don't support GSP
    gsp.enable = false;
    nvidiaPersistenced = true;
    package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
      version = "580.142";
      sha256_64bit = "sha256-IJFfzz/+icNVDPk7YKBKKFRTFQ2S4kaOGRGkNiBEdWM=";
      settingsSha256 = "sha256-BnrIlj5AvXTfqg/qcBt2OS9bTDDZd3uhf5jqOtTMTQM=";
      persistencedSha256 = "sha256-il403KPFAnDbB+dITnBGljhpsUPjZwmLjGt8iPKuBqw=";
    };
  };
}

According to the official site, the last supported version is indeed 580.142.

Official site screenshot

Important Notes

1. GSP firmware must be disabled

Older GPUs do not have GSP firmware support. If you do not explicitly disable it, you might encounter issues.

Without the following:

gsp.enable = false;

the build fails with:

This version of NVIDIA driver does not provide a GSP firmware

2. How to find hashes

To use a specific driver version that isn’t pre-built for your NixOS version, you can use pkgs.lib.fakeSha256. Let Nix try to build the package and fail. It will then display the correct hash to replace fakeSha256 with.

Conclusion

If you have an older GPU (like GTX 750 Ti), updating NixOS might break the NVIDIA driver without clear warning.

The solution is to pin the version to the specific version compatible with your hardware. In the case of the Maxwell architecture, this falls in the 580 series.

Nvidia stated that they will still provide three years of security updates for these GPUs, but there won’t be new versions. We have until 2028 to use these cards.

References