feat: add cudaSupport option for mkNixOS
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
129aa3224e
commit
72611337ab
2 changed files with 76 additions and 42 deletions
|
@ -1,9 +1,16 @@
|
||||||
inputs: rec {
|
inputs: rec {
|
||||||
# Import pkgs from a nixpkgs instance
|
# Import pkgs from a nixpkgs instance
|
||||||
mkPkgs = system: nixpkgs:
|
mkPkgs = {
|
||||||
|
system,
|
||||||
|
nixpkgs,
|
||||||
|
cudaSupport ? false,
|
||||||
|
}:
|
||||||
import nixpkgs {
|
import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
inherit cudaSupport;
|
||||||
|
};
|
||||||
overlays =
|
overlays =
|
||||||
(map (i: inputs.${i}.overlays.default) [
|
(map (i: inputs.${i}.overlays.default) [
|
||||||
"discord-overlay"
|
"discord-overlay"
|
||||||
|
@ -21,28 +28,37 @@ inputs: rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Function that makes the attrs that make up the specialArgs
|
# Function that makes the attrs that make up the specialArgs
|
||||||
mkArgs = system:
|
mkArgs = {
|
||||||
|
system,
|
||||||
|
cudaSupport ? false,
|
||||||
|
}:
|
||||||
inputs
|
inputs
|
||||||
// {
|
// {
|
||||||
pkgs = mkPkgs system inputs.nixpkgs;
|
pkgs = mkPkgs {
|
||||||
|
inherit system cudaSupport;
|
||||||
|
inherit (inputs) nixpkgs;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Default system
|
# Default system
|
||||||
mkNixOS = mods:
|
mkNixOS = {
|
||||||
|
extraModules ? [],
|
||||||
|
cudaSupport ? false,
|
||||||
|
}:
|
||||||
inputs.nixpkgs.lib.nixosSystem rec {
|
inputs.nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = mkArgs system;
|
specialArgs = mkArgs {inherit system cudaSupport;};
|
||||||
modules =
|
modules =
|
||||||
[
|
[
|
||||||
{home-manager.extraSpecialArgs = specialArgs;}
|
{home-manager.extraSpecialArgs = specialArgs;}
|
||||||
../common
|
../common
|
||||||
]
|
]
|
||||||
++ mods;
|
++ extraModules;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkNixOnDroid = mods:
|
mkNixOnDroid = mods:
|
||||||
inputs.nix-on-droid.lib.nixOnDroidConfiguration rec {
|
inputs.nix-on-droid.lib.nixOnDroidConfiguration rec {
|
||||||
extraSpecialArgs = mkArgs "aarch64-linux";
|
extraSpecialArgs = mkArgs {system = "aarch64-linux";};
|
||||||
home-manager-path = inputs.home-manager.outPath;
|
home-manager-path = inputs.home-manager.outPath;
|
||||||
pkgs = extraSpecialArgs.pkgs;
|
pkgs = extraSpecialArgs.pkgs;
|
||||||
|
|
||||||
|
|
38
outputs.nix
38
outputs.nix
|
@ -57,7 +57,7 @@
|
||||||
|
|
||||||
perSystem = attrs:
|
perSystem = attrs:
|
||||||
nixpkgs.lib.genAttrs (import systems) (system:
|
nixpkgs.lib.genAttrs (import systems) (system:
|
||||||
attrs (mkPkgs system nixpkgs));
|
attrs (mkPkgs {inherit system nixpkgs;}));
|
||||||
in {
|
in {
|
||||||
nixosModules = import ./nixosModules self;
|
nixosModules = import ./nixosModules self;
|
||||||
|
|
||||||
|
@ -65,40 +65,57 @@
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
# Desktops
|
# Desktops
|
||||||
wim = mkNixOS [
|
wim = mkNixOS {
|
||||||
|
extraModules = [
|
||||||
./devices/wim
|
./devices/wim
|
||||||
secrets.nixosModules.default
|
secrets.nixosModules.default
|
||||||
];
|
];
|
||||||
binto = mkNixOS [./devices/binto];
|
};
|
||||||
|
binto = mkNixOS {
|
||||||
|
# FIXME: https://github.com/NixOS/nixpkgs/issues/338315
|
||||||
|
# cudaSupport = true;
|
||||||
|
extraModules = [./devices/binto];
|
||||||
|
};
|
||||||
|
|
||||||
bbsteamie = mkNixOS [./devices/bbsteamie];
|
bbsteamie = mkNixOS {extraModules = [./devices/bbsteamie];};
|
||||||
|
|
||||||
# NAS
|
# NAS
|
||||||
nos = mkNixOS [
|
nos = mkNixOS {
|
||||||
|
# FIXME: https://github.com/NixOS/nixpkgs/issues/338315
|
||||||
|
# cudaSupport = true;
|
||||||
|
extraModules = [
|
||||||
./devices/nos
|
./devices/nos
|
||||||
secrets.nixosModules.nos
|
secrets.nixosModules.nos
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Build / test server
|
# Build / test server
|
||||||
servivi = mkNixOS [
|
servivi = mkNixOS {
|
||||||
|
extraModules = [
|
||||||
./devices/servivi
|
./devices/servivi
|
||||||
secrets.nixosModules.servivi
|
secrets.nixosModules.servivi
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Home-assistant
|
# Home-assistant
|
||||||
homie = mkNixOS [./devices/homie];
|
homie = mkNixOS {extraModules = [./devices/homie];};
|
||||||
|
|
||||||
# Cluster
|
# Cluster
|
||||||
thingone = mkNixOS [
|
thingone = mkNixOS {
|
||||||
|
extraModules = [
|
||||||
(import ./devices/cluster "thingone")
|
(import ./devices/cluster "thingone")
|
||||||
secrets.nixosModules.thingy
|
secrets.nixosModules.thingy
|
||||||
];
|
];
|
||||||
thingtwo = mkNixOS [
|
};
|
||||||
|
thingtwo = mkNixOS {
|
||||||
|
extraModules = [
|
||||||
(import ./devices/cluster "thingtwo")
|
(import ./devices/cluster "thingtwo")
|
||||||
secrets.nixosModules.thingy
|
secrets.nixosModules.thingy
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
live-image = mkNixOS [
|
live-image = mkNixOS {
|
||||||
|
extraModules = [
|
||||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
|
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
|
||||||
{home-manager.users.nixos.home.stateVersion = "24.05";}
|
{home-manager.users.nixos.home.stateVersion = "24.05";}
|
||||||
{
|
{
|
||||||
|
@ -109,6 +126,7 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nixOnDroidConfigurations.default =
|
nixOnDroidConfigurations.default =
|
||||||
mkNixOnDroid [./devices/android];
|
mkNixOnDroid [./devices/android];
|
||||||
|
|
Loading…
Reference in a new issue