diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2015-02-21 16:29:36 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-02-21 16:34:24 +0100 |
commit | a3a467ce77ada3409ebcdc11a80b6621b0b3adca (patch) | |
tree | c0776d4bc964ded6df92e3dd0e80173929a765d3 /nixos | |
parent | 77986803a63a95505658e942d5e59d78279f1818 (diff) | |
download | nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar.gz nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar.bz2 nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar.lz nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar.xz nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.tar.zst nixpkgs-a3a467ce77ada3409ebcdc11a80b6621b0b3adca.zip |
nixos/nvidia: use correct 32-bit legacy libs; refactor
Fixes #6127. Now we avoid multiple switches among the version possibilities.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/hardware/video/nvidia.nix | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index 325aa5f093f..2b20dc7395a 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -11,20 +11,21 @@ let # FIXME: should introduce an option like # ‘hardware.video.nvidia.package’ for overriding the default NVIDIA # driver. - enabled = elem "nvidia" drivers || elem "nvidiaLegacy173" drivers - || elem "nvidiaLegacy304" drivers || elem "nvidiaLegacy340" drivers; - - nvidia_x11 = + nvidiaForKernel = kernelPackages: if elem "nvidia" drivers then - config.boot.kernelPackages.nvidia_x11 + kernelPackages.nvidia_x11 else if elem "nvidiaLegacy173" drivers then - config.boot.kernelPackages.nvidia_x11_legacy173 + kernelPackages.nvidia_x11_legacy173 else if elem "nvidiaLegacy304" drivers then - config.boot.kernelPackages.nvidia_x11_legacy304 + kernelPackages.nvidia_x11_legacy304 else if elem "nvidiaLegacy340" drivers then - config.boot.kernelPackages.nvidia_x11_legacy340 - else throw "impossible"; + kernelPackages.nvidia_x11_legacy340 + else null; + + nvidia_x11 = nvidiaForKernel config.boot.kernelPackages; + nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; }; + enabled = nvidia_x11 != null; in { @@ -40,7 +41,7 @@ in ''; hardware.opengl.package = nvidia_x11; - hardware.opengl.package32 = pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernel = null; }; + hardware.opengl.package32 = nvidia_libs32; environment.systemPackages = [ nvidia_x11 ]; |