Hardware.nvidia.open is used but not defined error when updating nixos flake config

When I try updating the flake input I get: “The option `hardware.nvidia.open’ is used but not defined.”, however I can’t find what is using it. Here is my config nixos config

1 Like

I had the same problem. A default for the setting no longer exists, so you have to specify it by putting hardware.nvidia.open=false or true.

3 Likes

any advice on which one to pick: open-source driver or not?

Personally I chose false because that was the default, so it was what I was using before.

nvidia’s drivers set open by default now, so probably open. This is also why the default changed. Test both to see if there’s fallout.

That said, it definitely should still have a default (which is true if you’re on the latest drivers), guess something went wrong upstream: NixOS Search

1 Like

The default is only set for driver versions older than 560. With 560+, you must manually choose.

2 Likes

There’s a discussion about improving the error message here.

This may be related, so I’ll ask here. Ever since this change, perhaps coincidentally, the nvidia driver doesn’t work for me anymore. It hangs trying to start sddm. I have GeForce MX330. Do I need to make an additional specification now? Would my “user experience” be significantly different if I used the free driver? I’m concerned, because I haven’t been able to upgrade my system since this change.

Could you clarify please? Are you saying that, if you choose default, you are using the open source driver? I have it set to default and I see the NVIDIA driver being built and installed (and crapping out now on me).

Share your config and more precisely what “crapping out” means; probably best to do in a separate thread. This one is about a build-time error, which clearly you’re not getting.

1 Like

Crapping out was what I mentioned above…hangs when launching sddm. This is my config. Thank you.

{ config, lib, pkgs, ... }:
{

  hardware.graphics = {
    enable = true;
  };

  services.xserver.videoDrivers = ["nvidia"];

  hardware.nvidia = {
    modesetting.enable = true;
    open = false;

    nvidiaSettings = true;

    prime = {
      sync.enable = true;
      intelBusId = "PCI:0:2:0";
      nvidiaBusId = "PCI:1:0:0";
    };

  };
}

Didn’t see your post. My intention was to start a new thread if there wasn’t a quick answer. Posted here b/c coincident with this change.