NixOS / nixos-hardware

A collection of NixOS modules covering hardware quirks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Config for GA402X broken?

codingCoffee opened this issue · comments

I'm trying to configure my Asus Zephyrus G14 GA402X laptop with viz this

Here is my flake.nix

{
  description = "my flake!";

  inputs = {
    nixpkgs = {
      url = "github:NixOS/nixpkgs/nixos-23.11";
    };

    nixos-hardware = {
      url = "github:NixOS/nixos-hardware/master";
    };
  };

  outputs = { self, nixpkgs, ... }@inputs:
    let
      lib = nixpkgs.lib;
    in
    {
      nixosConfigurations = {
        zephyrus = lib.nixosSystem {
          system = "x86_64-linux";
          specialArgs = {inherit inputs;};
          modules = [
            ./configuration.nix
            inputs.nixos-hardware.nixosModules.asus-zephyrus-ga402x
          ];
        };
      };
    };
}

Ref: picked up the config from

asus-zephyrus-ga402x = import ./asus/zephyrus/ga402x;

This is the error I'm facing

$ sudo nixos-rebuild switch --flake .
error:
       … while calling the 'seq' builtin

         at /nix/store/x06xw73q4lpsa83amgnyy1fmaark3pg3-source/lib/modules.nix:320:18:

          319|         options = checked options;
          320|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          321|         _module = checked (config._module);while calling the 'throw' builtin

         at /nix/store/x06xw73q4lpsa83amgnyy1fmaark3pg3-source/lib/modules.nix:296:18:

          295|                     ''
          296|             else throw baseMsg
             |                  ^
          297|         else null;

       error: The option `amdgpu' does not exist. Definition values:
       - In `/nix/store/x06xw73q4lpsa83amgnyy1fmaark3pg3-source/flake.nix': <function, args: {config, lib, pkgs}>

I'm relatively new to nix, so is this some relative import problem? Or is my method of using nixos-hardware repo incorrect?

Dug a little deeper, realized the problem was in my config. I need to explicitly mention which GPU config I'd like to use.

# nixos-hardware.nixosModules.asus-zephyrus-ga402x.amdgpu

# nixos-hardware.nixosModules.asus-zephyrus-ga402x.nvidia

So, effectively my config became

{
  description = "my flake!";

  inputs = {
    nixpkgs = {
      url = "github:NixOS/nixpkgs/nixos-23.11";
    };

    nixos-hardware = {
      url = "github:NixOS/nixos-hardware/master";
    };
  };

  outputs = { self, nixpkgs, ... }@inputs:
    let
      lib = nixpkgs.lib;
    in
    {
      nixosConfigurations = {
        zephyrus = lib.nixosSystem {
          system = "x86_64-linux";
          specialArgs = {inherit inputs;};
          modules = [
            ./configuration.nix
            inputs.nixos-hardware.nixosModules.asus-zephyrus-ga402x.nvidia
          ];
        };
      };
    };
}

The issue can be closed. But should this be fixed in flake.nix file by splitting it into 2 lines to make it easier for a newcomer?

asus-zephyrus-ga402 = import ./asus/zephyrus/ga402;