Production nvidia failed build on linux 7.2

  # Enable graphics driver support
  hardware.graphics.enable = true;
  # Tell X11 and Wayland to use the NVIDIA driver
  services.xserver.videoDrivers = ["nvidia"];
  hardware.nvidia = {
    # Modesetting is required for Wayland and compositors
    modesetting.enable = true;

    # Use the NVidia open source kernel module (not to be confused with nouveau)
    # Set to true for Turing (GTX 16xx, RTX 20xx) or newer GPUs.
    # Set to false for older Pascal/legacy GPUs.
    open = false;

    # Enable the Nvidia settings menu (accessible via `nvidia-settings`)
    nvidiaSettings = true;

    # Select the appropriate driver version for your specific GPU.
    # NixOS 26.05 introduces `hardware.nvidia.branch` as a choice helper.
    branch = "production";
  };

nvidia/nv-mmap.c: In function 'nv_vma_enter_locked':
nvidia/nv-mmap.c:1005:9: warning: ignoring return value of 'refcount_sub_and_test' declared with attribute 'warn_unused_result' [-Wunused-result]
 1005 |         refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:412:11: warning: no previous prototype for 'nv_init_page_pools' [-Wmissing-prototypes]
  412 | NV_STATUS nv_init_page_pools(void) { return NV_OK; }
      |           ^~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:413:6: warning: no previous prototype for 'nv_destroy_page_pools' [-Wmissing-prototypes]
  413 | void nv_destroy_page_pools(void) {}
      |      ^~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:414:14: warning: no previous prototype for 'nv_mem_pool_alloc_pages' [-Wmissing-prototypes]
  414 | unsigned int nv_mem_pool_alloc_pages(nv_page_pool_t *mem_pool, nv_alloc_t *at) { return 0; }
      |              ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:415:11: warning: no previous prototype for 'nv_mem_pool_free_pages' [-Wmissing-prototypes]
  415 | NV_STATUS nv_mem_pool_free_pages(nv_page_pool_t *mem_pool, nv_alloc_t *at) { return NV_OK; }
      |           ^~~~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia/nv-pci-table.o
  CC [M]  nvidia/nv-kthread-q.o
nvidia/os-interface.c: In function 'os_get_current_process_name':
nvidia/os-interface.c:732:5: error: implicit declaration of function 'strncpy' [-Wimplicit-function-declaration]
  732 |     strncpy(buf, current->comm, len - 1);
      |     ^~~~~~~
nvidia/os-interface.c:39:1: note: 'strncpy' is defined in header '<string.h>'; this is probably fixable by adding '#include <string.h>'
   38 | #include <linux/sys_soc.h>
  +++ |+#include <string.h>
   39 | 
  CC [M]  nvidia/nv-memdbg.o
  CC [M]  nvidia/nv-report-err.o
make[4]: *** [/nix/store/rvrswvmlrss37pnzavczhijwza4cb3q8-linux-7.2.2-dev/lib/modules/7.2.2/source/scripts/Makefile.build:289: nvidia/os-interface.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/nix/store/rvrswvmlrss37pnzavczhijwza4cb3q8-linux-7.2.2-dev/lib/modules/7.2.2/source/Makefile:2187: .] Error 2
make[2]: *** [/nix/store/rvrswvmlrss37pnzavczhijwza4cb3q8-linux-7.2.2-dev/lib/modules/7.2.2/source/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/build/nvidia-x11-595.71.05-modsrc'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/nix/store/rvrswvmlrss37pnzavczhijwza4cb3q8-linux-7.2.2-dev/lib/modules/7.2.2/source'
make: *** [Makefile:115: modules] Error 2
1 Like

You can use boot.kernelPackages = pkgs.linuxPackages_7_1; for now until the nvidia drivers update to catch up with 7.2 changes.

Thanks, and hope the new nvidia driver could support it. I just confirm beta branch could not work. I just switched to 7.1.12.

I can confirm. Driver 595.71.05-7.2.3 does not build with the linux-7.2.3 kernel.

hardware = {

graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
nvidia = {
open = true;
modesetting.enable = true;
nvidiaSettings = true;
powerManagement.enable = false;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};

};


nvidia-open> CC [M] nvidia/nv-kthread-q.o
nvidia-open> nvidia/nv-vm.c:585:1: warning: no previous prototype for ‘nv_mem_pool_alloc_pages’ [-Wmissing-prototypes]
nvidia-open> 585 | nv_mem_pool_alloc_pages
nvidia-open> | ^~~~~~~~~~~~~~~~~~~~~~~
nvidia-open> nvidia/nv-vm.c:691:1: warning: no previous prototype for ‘nv_mem_pool_destroy’ [-Wmissing-prototypes]
nvidia-open> nvidia/nv-vm.c:716:17: warning: no previous prototype for ‘nv_mem_pool_init’ [-Wmissing-prototypes]
nvidia-open> 716 | nv_page_pool_t* nv_mem_pool_init(int node_id, unsigned int order)
nvidia-open> | ^~~~~~~~~~~~~~~~
nvidia-open> nvidia/nv-vm.c:770:1: warning: no previous prototype for ‘nv_mem_pool_free_pages’ [-Wmissing-prototypes]
nvidia-open> 770 | nv_mem_pool_free_pages
nvidia-open> | ^~~~~~~~~~~~~~~~~~~~~~
nvidia-open> nvidia/nv-vm.c:846:11: warning: no previous prototype for ‘nv_init_page_pools’ [-Wmissing-prototypes]
nvidia-open> 846 | NV_STATUS nv_init_page_pools(void)
nvidia-open> | ^~~~~~~~~~~~~~~~~~
nvidia-open> nvidia/nv-vm.c:872:6: warning: no previous prototype for ‘nv_destroy_page_pools’ [-Wmissing-prototypes]
nvidia-open> 872 | void nv_destroy_page_pools(void)
nvidia-open> | ^~~~~~~~~~~~~~~~~~~~~
nvidia-open> nvidia/os-interface.c: In function ‘os_get_current_process_name’:
nvidia-open> nvidia/os-interface.c:764:5: error: implicit declaration of function ‘strncpy’ [-Wimplicit-funvidia-open> nvidia/os-interface.c:42:1: note: ‘strncpy’ is defined in header ‘<string.h>’; this is probabnvidia-open> 41 | #include <linux/pid_namespace.h>
nvidia-open> +++ |+#include <string.h>
nvidia-open> 42 | #if defined(CONFIG_LOCKDEP)
nvidia-open> CC [M] nvidia/nv-memdbg.o
nvidia-open> CC [M] nvidia/nv-report-err.o
nvidia-open> make[5]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/scripts/Makefile.build:289: nvidia/os-interface.o] Error 1
nvidia-open> make[5]: *** Waiting for unfinished jobs…
nvidia-open> make[4]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/Makefile:2187: .] Error 2
nvidia-open> make[3]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/Makefile:248: __sub-make] Error 2
nvidia-open> make[3]: Leaving directory ‘/build/source/kernel-open’
nvidia-open> make[2]: *** [Makefile:248: __sub-make] Error 2
nvidia-open> make[2]: Leaving directory ‘/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source’
nvidia-open> make[1]: *** [Makefile:115: modules] Error 2
nvidia-open> make[1]: Leaving directory ‘/build/source/kernel-open’
nvidia-open> make: *** [Makefile:59: modules] Error 2
error: Cannot build ‘/nix/store/9zr66pwya0fqq3b1y7dc78b3wk9qn3p2-nvidia-open-595.71.05-7.2.3.drv’.
Reason: builder failed with exit code 2.
Output paths:
/nix/store/j382hnghkzrva1jzrdcwadmjxi6l03r7-nvidia-open-595.71.05-7.2.3
Last 25 log lines:

846 | NV_STATUS nv_init_page_pools(void)
| ^~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:872:6: warning: no previous prototype for ‘nv_destroy_page_pools’ [-Wmissing-prototypes]
872 | void nv_destroy_page_pools(void)
| ^~~~~~~~~~~~~~~~~~~~~
nvidia/os-interface.c: In function ‘os_get_current_process_name’:
nvidia/os-interface.c:764:5: error: implicit declaration of function ‘strncpy’ [-Wimplicit-function-declaration]
764 | strncpy(buf, current->comm, len - 1);
| ^~~~~~~
nvidia/os-interface.c:42:1: note: ‘strncpy’ is defined in header ‘<string.h>’; this is probably fixable by adding ‘#include <string.h>’
41 | #include <linux/pid_namespace.h>
+++ |+#include <string.h>
42 | #if defined(CONFIG_LOCKDEP)
CC [M] nvidia/nv-memdbg.o
CC [M] nvidia/nv-report-err.o
make[5]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/scripts/Makefile.build:289: nvidia/os-interface.o] Error 1
make[5]: *** Waiting for unfinished jobs…
make[4]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/Makefile:2187: .] Error 2
make[3]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source/Makefile:248: __sub-make] Error 2
make[3]: Leaving directory ‘/build/source/kernel-open’
make[2]: *** [Makefile:248: __sub-make] Error 2
make[2]: Leaving directory ‘/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/source’
make[1]: *** [Makefile:115: modules] Error 2
make[1]: Leaving directory ‘/build/source/kernel-open’
make: *** [Makefile:59: modules] Error 2
For full logs, run:
nix log /nix/store/9zr66pwya0fqq3b1y7dc78b3wk9qn3p2-nvidia-open-595.71.05-7.2.3.drv
error: Cannot build ‘/nix/store/iybsarwxjpb2iwm64ys7ikpnds2qcp61-linux-7.2.3-modules.drv’.
Reason: 1 dependency failed.
Output paths:
/nix/store/4rkmjhgwvakc7y3n01sj85ibrssy15ib-linux-7.2.3-modules
error: Cannot build ‘/nix/store/ykn319bhn6pncppalmgnni27w4bm5j6v-nixos-system-Lucerno-PC-26.05.20260907.93108a5.drv’.
Reason: 1 dependency failed.
Output paths:
/nix/store/9l1a8wa4jr14g5b5czzl5nzwsldh8bkk-nixos-system-Lucerno-PC-26.05.20260907.93108a5
┏━ 3 Errors:

┏━ 3 Errors:

┃ > 872 | void nv_destroy_page_pools(void)
┃ > | ^~~~~~~~~~~~~~~~~~~~~
┃ > nvidia/os-interface.c: In function ‘os_get_current_process_name’:
┃ > nvidia/os-interface.c:764:5: error: implicit declaration of function ‘strncpy’ [-Wimplicit-function-dec…
┃ > 764 | strncpy(buf, current->comm, len - 1);
┃ > | ^~~~~~~
┃ > nvidia/os-interface.c:42:1: note: ‘strncpy’ is defined in header ‘<string.h>’; this is probably fixable by adding ‘#include <string.h>’
┃ > 41 | #include <linux/pid_namespace.h>
┃ > +++ |+#include <string.h>
┃ > 42 | #if defined(CONFIG_LOCKDEP)
┃ > CC [M] nvidia/nv-memdbg.o
┃ > CC [M] nvidia/nv-report-err.o
┃ > make[5]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/so…
┃ > make[5]: *** Waiting for unfinished jobs…
┃ > make[4]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/so…
┃ > make[3]: *** [/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/modules/7.2.3/so…
┃ > make[3]: Leaving directory ‘/build/source/kernel-open’
┃ > make[2]: *** [Makefile:248: __sub-make] Error 2
┃ > make[2]: Leaving directory '/nix/store/m0qzcx746454jq1h4p6rcjj2mxn0pnp6-linux-7.2.3-dev/lib/mo…
┃ > make[1]: *** [Makefile:115: modules] Error 2
┃ > make[1]: Leaving directory ‘/build/source/kernel-open’
┃ > make: *** [Makefile:59: modules] Error 2
┃ For full logs, run:
┃ nix log /nix/store/9zr66pwya0fqq3b1y7dc78b3wk9qn3p2-nvidia-open-595.71.05-7.2.3.drv
┣━ Dependency Graph:
┃ ┌─ ↓ :check_mark: 55-nixos-aslr-entropy.conf 160.0B
┃ ┌─ :check_mark: etc :stopwatch: 1s
┃ ┌─ :check_mark: activate
┃ ├─ :pause_button: boot.json waiting for 1 :warning:
┃ │ ┌─ ↓ :check_mark: xone-0.5.7 1.3MiB
┃ │ ├─ ↓ :check_mark: xpad-noone-0-unstable-2024-01-10 73.8KiB
┃ │ ├─ ↓ :check_mark: v4l2loopback-0.15.3 253.8KiB
┃ │ │ ┌─ ↓ :check_mark: linux-7.2.3 851.9MiB
┃ │ │ ├─ :check_mark: uname
┃ │ ├─ :warning: nvidia-open-595.71.05-7.2.3 failed with exit code 2 after :stopwatch: 53s in buildPhase
┃ │ ┌─ :pause_button: linux-7.2.3-modules
┃ │ ┌─ :pause_button: linux-7.2.3-modules-shrunk
┃ ├─ :pause_button: initrd-linux-7.2.3
:pause_button: nixos-system-Lucerno-PC-26.05.20260907.93108a5
┣━━━ Builds │ Downloads │ Host
┗━ ∑ ⏵ 0 │ :check_mark: 3 │ :pause_button: 5 │ ↓ 0 │ ↓ 8 │ :pause_button: 0 │ :warning: Exited after 1 build failures at 16:38:20 after 2m3s
Error:
0: Failed to build configuration
1: Command exited with status ExitStatus(Exited(1))

Location:
crates/nh-core/src/command.rs:1044
    ~/nixos-config    main !1 

Drivers 595.99.02 work for me with Linux 7.2.4 .

{
  config,
  ...
}:
{
  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
    version = "595.99.02";
    sha256_64bit = "sha256-6HR3lYv3YwcFSTJL1a1slI66btIQ5EAFs+/4SUD24ew=";
    sha256_aarch64 = "sha256-CCqHZTN2KNOZ4yZp2rDcuRJp9pHfRw47k4m4dWnS/2w=";
    openSha256 = "sha256-T36x/jx8yQ8l3LFp1rZIrTfcSwbGy8YSAvXOUSptpb4=";
    settingsSha256 = "sha256-GYCcnxfKPrTCrsmd25sMyzfC5cqJQJx0c31haooyTYM=";
    persistencedSha256 = "sha256-VyKtF/HdHPQrHHK6opSO69M72LmnGZtauuchj9uuje8=";
  };
}

PS: I use the Xanmod kernel, but I imagine this would work with the stock one as well.

3 Likes

It works! Thanks!

    ~  uname -r  :check_mark:  18:04:38  
7.2.3-zen1
    ~  nvidia-smi  :check_mark:  18:04:42  
Thu Sep 10 18:04:52 2026
±----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.99.02 Driver Version: 595.99.02 CUDA Version: 13.2 |