From a7dd88977bd010a7eef5345847228eb934c2dfe0 Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Mon, 26 Jun 2023 20:49:19 +0200 Subject: [PATCH 1/7] system silvio-pc: add nvidia support (prime sync) --- system/machines/silvio-pc/default.nix | 1 + system/machines/silvio-pc/nvidia.nix | 61 ++++++++++++++++++++ system/machines/silvio-pc/virtualisation.nix | 2 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 system/machines/silvio-pc/nvidia.nix diff --git a/system/machines/silvio-pc/default.nix b/system/machines/silvio-pc/default.nix index c679bfe5..87c6b017 100644 --- a/system/machines/silvio-pc/default.nix +++ b/system/machines/silvio-pc/default.nix @@ -14,6 +14,7 @@ ./bootloader.nix ./services.nix ./virtualisation.nix + ./nvidia.nix ./impermanence.nix ./sops.nix ]; diff --git a/system/machines/silvio-pc/nvidia.nix b/system/machines/silvio-pc/nvidia.nix new file mode 100644 index 00000000..4dc4f110 --- /dev/null +++ b/system/machines/silvio-pc/nvidia.nix @@ -0,0 +1,61 @@ +{ + lib, + pkgs, + config, + ... +}: { + nixpkgs.allowUnfreePackages = [ + "nvidia-x11" + "nvidia-settings" + "nvidia-persistenced" + ]; + + # Enable OpenGL + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + # Modesetting is required. + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + powerManagement.enable = false; + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. + open = false; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + + prime = { + sync.enable = true; + + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:2:0:0"; + }; + }; + + # CUDA + # boot.kernelModules = [ "nvidia-uvm" ]; + # boot.blacklistedKernelModules = [ "nouveau" ]; + + # TODO: check out https://github.com/guibou/nixGL +} diff --git a/system/machines/silvio-pc/virtualisation.nix b/system/machines/silvio-pc/virtualisation.nix index 3a5d4d71..e23ea8f5 100644 --- a/system/machines/silvio-pc/virtualisation.nix +++ b/system/machines/silvio-pc/virtualisation.nix @@ -8,5 +8,5 @@ # Blacklist nvidia because it's annoying. # TODO: pcie passthrough using ie. https://github.com/CRTified/nur-packages - boot.blacklistedKernelModules = ["nvidia" "nouveau"]; + # boot.blacklistedKernelModules = ["nvidia" "nouveau"]; } From 394364f5766b215065495304028e8beec3e7dca1 Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Sun, 5 Nov 2023 23:23:50 +0100 Subject: [PATCH 2/7] system: make gaming a module --- system/machines/leilasus/default.nix | 2 +- system/machines/leilasus/gaming.nix | 19 ------------------- system/machines/silvio-pc/default.nix | 1 + system/modules/gaming.nix | 24 ++++++++++++++++++++++++ system/modules/unfree.nix | 18 ++++++++++++++++++ 5 files changed, 44 insertions(+), 20 deletions(-) delete mode 100644 system/machines/leilasus/gaming.nix create mode 100644 system/modules/gaming.nix create mode 100644 system/modules/unfree.nix diff --git a/system/machines/leilasus/default.nix b/system/machines/leilasus/default.nix index 9810151b..787c9fd5 100644 --- a/system/machines/leilasus/default.nix +++ b/system/machines/leilasus/default.nix @@ -11,8 +11,8 @@ ./services.nix ./users.nix ./cinnamon.nix - ./gaming.nix ./amd.nix ]; booq.sops.enable = false; + booq.gaming.enable = true; } diff --git a/system/machines/leilasus/gaming.nix b/system/machines/leilasus/gaming.nix deleted file mode 100644 index 6c6bc827..00000000 --- a/system/machines/leilasus/gaming.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "steam" - "steam-run" - "steam-original" - "steam-runtime" - ]; - - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - }; -} diff --git a/system/machines/silvio-pc/default.nix b/system/machines/silvio-pc/default.nix index 87c6b017..51326197 100644 --- a/system/machines/silvio-pc/default.nix +++ b/system/machines/silvio-pc/default.nix @@ -6,6 +6,7 @@ ... }: { booq.audio = "pipewire"; + booq.gaming.enable = true; # TODO: luks+yubikey+secureboot https://www.reddit.com/r/NixOS/comments/xrgszw/comment/iqf1gps/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button imports = [ ./hardware-configuration.nix diff --git a/system/modules/gaming.nix b/system/modules/gaming.nix new file mode 100644 index 00000000..bf7c39f5 --- /dev/null +++ b/system/modules/gaming.nix @@ -0,0 +1,24 @@ +{ + lib, + config, + ... +}: { + options.booq.gaming.enable = lib.mkOption { + default = false; + type = lib.types.bool; + }; + config = lib.mkIf config.booq.gaming.enable { + nixpkgs.allowUnfreePackages = [ + "steam" + "steam-run" + "steam-original" + "steam-runtime" + ]; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + }; + }; +} diff --git a/system/modules/unfree.nix b/system/modules/unfree.nix new file mode 100644 index 00000000..d37abdcd --- /dev/null +++ b/system/modules/unfree.nix @@ -0,0 +1,18 @@ +{ + lib, + config, + ... +}: { + # from https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085 + options = with lib; { + nixpkgs.allowUnfreePackages = mkOption { + type = with types; listOf str; + default = []; + example = ["steam" "steam-original"]; + }; + }; + + config = { + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowUnfreePackages; + }; +} From 7773fbae452fa1c6c0e2e3c9dbd9873f93316f5a Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Mon, 6 Nov 2023 07:41:58 +0100 Subject: [PATCH 3/7] fixup! system silvio: add new ssh key --- system/modules/users/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/modules/users/default.nix b/system/modules/users/default.nix index 7307fe6e..103133b2 100644 --- a/system/modules/users/default.nix +++ b/system/modules/users/default.nix @@ -11,7 +11,7 @@ extraGroups = ["wheel" "networkmanager"]; shell = pkgs.nushell; openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDoHum4oCBnA8D9EXORuM6I8ARALZ6uEDF0zIBu1+V7RW1zNBlhlC8m+ZZ23NxridfVkUat6Nh6EfsJXTzzsKwERayrTULCp7YWm5ALO8vFUKM5qRyCoiLR5E9WpVYeNVLkYXjiIl4ctcotVJ65zxLAdeIi6QYJHd4Ze8lhzO5bqOQSNYVzMj+ASmY6/886IRwCYVM+dJ7sMSMN6suk4mgVSRR3+L5D2+zrYRkhfT/cD6aCdkHOZLV+mW3W79D7v+6Vba2zxZiH2UlAfTuQbkEKSQbB4Sy9uruKfv4gFOx+mxrK1rdWE0peMzCcEFeEEN5Fkh3Riy91xNRK2gnvsLqRYE7wLxaH7+X9zTMJYZDuGGgMU+3E1IfowOqA7w10YmSHIpCNEFkUb/FPaGCpEtLBgRwq/kYmCwghWmcp6MOQ83p6hwTqZ8fvgkdvtd7UIbha87WlEAhy0fHS6dLdPc0H66OlBDscsJkM4qmntiBnzFxInvZfyVnAWjNcNxSDmTpv1FdAPfquItY1PNhZSea1elFC3k6ivYUwe8n83dgJKb1ODU0D//ScsLiQiSvD4yjqx3cLj2NLEJ7QA+LQpT6APLDAJQM/AHmbqpi+m95aprtSRR1FH6LB8aX7Icgb4lHiE3QwwsLdPnn0TIWyQXgaoO0bNVPjELXoAyibQpHTBw==" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDoHum4oCBnA8D9EXORuM6I8ARALZ6uEDF0zIBu1+V7RW1zNBlhlC8m+ZZ23NxridfVkUat6Nh6EfsJXTzzsKwERayrTULCp7YWm5ALO8vFUKM5qRyCoiLR5E9WpVYeNVLkYXjiIl4ctcotVJ65zxLAdeIi6QYJHd4Ze8lhzO5bqOQSNYVzMj+ASmY6/886IRwCYVM+dJ7sMSMN6suk4mgVSRR3+L5D2+zrYRkhfT/cD6aCdkHOZLV+mW3W79D7v+6Vba2zxZiH2UlAfTuQbkEKSQbB4Sy9uruKfv4gFOx+mxrK1rdWE0peMzCcEFeEEN5Fkh3Riy91xNRK2gnvsLqRYE7wLxaH7+X9zTMJYZDuGGgMU+3E1IfowOqA7w10YmSHIpCNEFkUb/FPaGCpEtLBgRwq/kYmCwghWmcp6MOQ83p6hwTqZ8fvgkdvtd7UIbha87WlEAhy0fHS6dLdPc0H66OlBDscsJkM4qmntiBnzFxInvZfyVnAWjNcNxSDmTpv1FdAPfquItY1PNhZSea1elFC3k6ivYUwe8n83dgJKb1ODU0D//ScsLiQiSvD4yjqx3cLj2NLEJ7QA+LQpT6APLDAJQM/AHmbqpi+m95aprtSRR1FH6LB8aX7Icgb4lHiE3QwwsLdPnn0TIWyQXgaoO0bNVPjELXoAyibQpHTBw==" ]; }; From ff573fe6da12e6430283ec516ee84d0b734699c1 Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Mon, 6 Nov 2023 07:53:56 +0100 Subject: [PATCH 4/7] system unfree: allow regexes --- system/machines/silvio-pc/nvidia.nix | 4 +--- system/modules/gaming.nix | 5 +---- system/modules/unfree.nix | 21 ++++++++++++++------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/system/machines/silvio-pc/nvidia.nix b/system/machines/silvio-pc/nvidia.nix index 4dc4f110..488412ed 100644 --- a/system/machines/silvio-pc/nvidia.nix +++ b/system/machines/silvio-pc/nvidia.nix @@ -5,9 +5,7 @@ ... }: { nixpkgs.allowUnfreePackages = [ - "nvidia-x11" - "nvidia-settings" - "nvidia-persistenced" + "nvidia-.*" ]; # Enable OpenGL diff --git a/system/modules/gaming.nix b/system/modules/gaming.nix index bf7c39f5..0a4bc413 100644 --- a/system/modules/gaming.nix +++ b/system/modules/gaming.nix @@ -9,10 +9,7 @@ }; config = lib.mkIf config.booq.gaming.enable { nixpkgs.allowUnfreePackages = [ - "steam" - "steam-run" - "steam-original" - "steam-runtime" + "steam(-.*)?" ]; programs.steam = { diff --git a/system/modules/unfree.nix b/system/modules/unfree.nix index d37abdcd..01ce5b03 100644 --- a/system/modules/unfree.nix +++ b/system/modules/unfree.nix @@ -1,18 +1,25 @@ { - lib, config, + lib, ... -}: { - # from https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085 - options = with lib; { +}: let + inherit (lib) mkOption types; + cfg = config.nixpkgs.allowUnfreePackages; +in { + options = { nixpkgs.allowUnfreePackages = mkOption { - type = with types; listOf str; default = []; - example = ["steam" "steam-original"]; + type = types.listOf types.str; + description = "List of unfree packages allowed to be installed"; + example = lib.literalExpression ''[ "slack" "discord" steam-.*" ]''; }; }; config = { - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowUnfreePackages; + nixpkgs.config.allowUnfreePredicate = pkg: let + pkgName = lib.getName pkg; + matchPkgs = reg: ! builtins.isNull (builtins.match reg pkgName); + in + builtins.any matchPkgs cfg; }; } From f92e800e4061cd5f2b24806d04106e05a8496bf2 Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Mon, 6 Nov 2023 23:11:56 +0100 Subject: [PATCH 5/7] user gpg: update key --- user/modules/gpg/pubkeys/A63BA766.gpg | 104 +++++++++++++------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/user/modules/gpg/pubkeys/A63BA766.gpg b/user/modules/gpg/pubkeys/A63BA766.gpg index 0eb50469..548b483b 100644 --- a/user/modules/gpg/pubkeys/A63BA766.gpg +++ b/user/modules/gpg/pubkeys/A63BA766.gpg @@ -12,19 +12,19 @@ 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 @@ -61,20 +61,20 @@ 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 @@ -206,18 +206,18 @@ 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 @@ -229,17 +229,17 @@ x++CR2+13tQhuFrztaUQCHLR8dLp0t09zQfro6UEOxywmQziqae2IGfMXEie9l/J WcBaM1w3FIOZOm/UV0A9+q4i1jU82FlJ5rV6UULeTqK9hTB7yfzd2AkpvU4NTQP/ 9JywuJCJK8PjKOrHdwuPY0sQntAD4tClPoA8sMAlAz8AeZuqmL6b3lqmu1JFHUUf osHxpfshyBviUeITdDDCwt0+efRMhbJBeBqg7Rs1U+MQtegDKJtCkdMHABEBAAGJ -Ai0EGAEKACEWIQS40vMSGoXkBhKn/XCCzvkVpjunZgUCZUQcbwMbIAQAANbPEACN -pWyiZROLegjK741jd57EBdWl85E9kx4zLRl4D9HOdYqMODxRE/aJijGeAY9PRH7j -ZRlpF8ypsKzA1N5HVOAH+uplqUYNE74oq2Ai/qgYv1vCWAkPXImsg8YmaXwVQVXX -Ik7fIQf3gW7HSHtnhS/esYhggYNSVgYs4rFtSOV8f9D5kEtxvjpgXWaj2bOXrtBi -dweBJDpnP4B1isVbsMbdn2kpjahC9IV1UPGnpJm9c7QQYrE7J+ToLJedXYas2L3/ -ywVYjwwyazH0gUvPzJYlW5m+vgEc1UU97kLDn9eSoUW7qXkBY9+xhuOHTxg9FuLl -ZP6/fvW/zcQNzGKEBWi+kr41ppnUw0GZJbFFjemH10g1xas29EIWUMB45mwl0gKj -VtDbgkaoZCJVasVO0FohhhRo3L53sbN1o1SoCYyPg18WjGWexaxsh4W4zW1EHv3Z -fB5f9eoH561xm3+LSAwz0Wsb9KnGvqxY4FX7KQOL7MuAqnwUN/enfuHv+j97eEWs -IRrGg251hG5ZxW8Mv9IysOe13qQ0lMW5aTzQQUlYzasjktVujic424g0AVtPMz1U -XcP8ydnF41oQXiJ66mAT0FsvMyGPJh1t7uf3TMUAu9UAfJTzl7p3v2Mfw9EA0vq6 -af1xcj1mwSFtC875ZCOEHmmsv6N/GjFBCnGFmqQtaA== -=hVAk +Aj0EGAEKACcDGyAEFiEEuNLzEhqF5AYSp/1wgs75FaY7p2YFAmVJTusFCRLRNXsA +CgkQgs75FaY7p2Y/WQ//ZSJ5mbd05EuiyQTG1C92/9SVHyDt6VT45xHs4dPLs+WZ +rjm9jOM0JsXJdwEXlIuEP8LI4bwcJ1PyJTmfgtxsjO91MLpAzhAKSRq2Psi9a8Ch ++K5quz6kEQQ+lp6Vdpcp7QhoknSgUKY2pAE1VqGzmqFhGxufExJIRr4TNOgPqwML +GdaYK1zt7+FGXyo8t1dzxdTOdGU6BfgGjBWB/yy7klicAoNQ+olwkARHATE+78W8 +yLWjjqoveRA9jdH7KDIef6sMnjKWuUy0y3WEPpYc5UoNr7rwk6Ijz4doLnLcv32R +ik1hqdJUvhT2APMB0ifhLeN8wj32KpY8WA5qWD7Raa6HLMk+dRlPHbtHwXD9tSyH +Uai1DjPrrBkbkhDFXal7TTgJ2kKiGCdEET2Y5Slz1HJeW3gEL73XsV8ytaozvyg2 +mgGWcrhANuUaYnPuWdXXA3gwa005wovWoO5do35MK9n7glwbKxbA9heQIIhfEE8Z +wgTVAtunslMzNtN8+YZQdUgfyiwda5SN5xcgVjIrqc1gDXfWXq/u5+ROHTz5c2YH +MMYdhIEetULOdKK3pBydamNevtzjIv3LeVjR2Tje/Yn9pt6QFbo4xOXMCHYzNq7p +0p5E+yCJsidOZ3VuJnCj+49nrbV5jzOai2eU0CY2koOPIbYrCDKnvZCSwOuIPrs= +=nf7t -----END PGP PUBLIC KEY BLOCK----- From 89bc077a258b544817217a953aba493a5b3e4eaf Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Mon, 6 Nov 2023 23:27:14 +0100 Subject: [PATCH 6/7] system silvio-pc: enable cuda + add cuda cache --- system/machines/silvio-pc/nvidia.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/system/machines/silvio-pc/nvidia.nix b/system/machines/silvio-pc/nvidia.nix index 488412ed..5a132e33 100644 --- a/system/machines/silvio-pc/nvidia.nix +++ b/system/machines/silvio-pc/nvidia.nix @@ -8,6 +8,8 @@ "nvidia-.*" ]; + nixpkgs.config.cudaSupport = true; + # Enable OpenGL hardware.opengl = { enable = true; @@ -55,5 +57,15 @@ # boot.kernelModules = [ "nvidia-uvm" ]; # boot.blacklistedKernelModules = [ "nouveau" ]; + nix = { + settings = { + substituters = [ + "https://cuda-maintainers.cachix.org" + ]; + trusted-public-keys = [ + "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" + ]; + }; + }; # TODO: check out https://github.com/guibou/nixGL } From 9a1f560060251d7cc7a454b44550b4bc517529c8 Mon Sep 17 00:00:00 2001 From: Silvio Ankermann Date: Tue, 7 Nov 2023 00:15:39 +0100 Subject: [PATCH 7/7] WIP: system silvio-pc: enable nvidia vgpu --- system/configuration.nix | 3 ++- system/flake.lock | 24 ++++++++++++++++++++---- system/flake.nix | 6 +++++- system/machines/silvio-pc/default.nix | 2 ++ system/machines/silvio-pc/nvidia.nix | 7 ++++++- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/system/configuration.nix b/system/configuration.nix index cdf3420a..d5502ed1 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -4,6 +4,7 @@ { config, pkgs, + lib, ... }: { imports = map (n: "${./modules}/${n}") (builtins.attrNames (builtins.readDir ./modules)); @@ -44,7 +45,7 @@ boot.supportedFilesystems = ["ntfs"]; boot.initrd.systemd.enable = true; - boot.kernelPackages = pkgs.linuxPackages_latest; + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; services.udisks2.enable = true; diff --git a/system/flake.lock b/system/flake.lock index 527ba00c..f55d5f95 100644 --- a/system/flake.lock +++ b/system/flake.lock @@ -37,16 +37,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1698553279, - "narHash": "sha256-T/9P8yBSLcqo/v+FTOBK+0rjzjPMctVymZydbvR/Fak=", + "lastModified": 1699169573, + "narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "90e85bc7c1a6fc0760a94ace129d3a1c61c3d035", + "rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } @@ -83,12 +83,28 @@ "type": "github" } }, + "nvidia-vgpu": { + "locked": { + "lastModified": 1629956048, + "narHash": "sha256-mhKZWRn6swGwwfdb/bRrDB6GkA8V5sMhlOS60Jm/dM0=", + "owner": "danielfullmer", + "repo": "nixos-nvidia-vgpu", + "rev": "a4be77969dc2a8acbe3a4882ba5f0324cca138b6", + "type": "github" + }, + "original": { + "owner": "danielfullmer", + "repo": "nixos-nvidia-vgpu", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", "impermanence": "impermanence", "nixpkgs": "nixpkgs", "nixpkgs-master": "nixpkgs-master", + "nvidia-vgpu": "nvidia-vgpu", "sops-nix": "sops-nix" } }, diff --git a/system/flake.nix b/system/flake.nix index 26f4847d..ec1b14ba 100644 --- a/system/flake.nix +++ b/system/flake.nix @@ -1,11 +1,13 @@ { - inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; + # inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; inputs.nixpkgs-master.url = "github:nixos/nixpkgs/master"; inputs.disko.url = "github:nix-community/disko"; inputs.disko.inputs.nixpkgs.follows = "nixpkgs"; inputs.impermanence.url = "github:nix-community/impermanence"; inputs.sops-nix.url = "github:Mic92/sops-nix"; inputs.sops-nix.inputs.nixpkgs.follows = "nixpkgs"; + inputs.nvidia-vgpu.url = "github:danielfullmer/nixos-nvidia-vgpu"; outputs = { self, @@ -14,6 +16,7 @@ disko, impermanence, sops-nix, + nvidia-vgpu, }: let #machinedir = ./machines lib = nixpkgs.lib; @@ -24,6 +27,7 @@ disko.nixosModules.disko impermanence.nixosModules.impermanence sops-nix.nixosModules.sops + nvidia-vgpu.nixosModules.nvidia-vgpu { options.booq.audio = lib.mkOption { default = "pulseaudio"; diff --git a/system/machines/silvio-pc/default.nix b/system/machines/silvio-pc/default.nix index 51326197..ca641a3b 100644 --- a/system/machines/silvio-pc/default.nix +++ b/system/machines/silvio-pc/default.nix @@ -7,6 +7,8 @@ }: { booq.audio = "pipewire"; booq.gaming.enable = true; + + boot.kernelPackages = pkgs.linuxPackages_5_4; # TODO: luks+yubikey+secureboot https://www.reddit.com/r/NixOS/comments/xrgszw/comment/iqf1gps/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button imports = [ ./hardware-configuration.nix diff --git a/system/machines/silvio-pc/nvidia.nix b/system/machines/silvio-pc/nvidia.nix index 5a132e33..955a6105 100644 --- a/system/machines/silvio-pc/nvidia.nix +++ b/system/machines/silvio-pc/nvidia.nix @@ -43,7 +43,7 @@ nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; + # package = config.boot.kernelPackages.nvidiaPackages.stable; prime = { sync.enable = true; @@ -51,6 +51,11 @@ intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:2:0:0"; }; + + vgpu = { + enable = true; # Enable NVIDIA KVM vGPU + GRID driver + unlock.enable = true; # Unlock vGPU functionality on consumer cards using DualCoder/vgpu_unlock project. + }; }; # CUDA