From dbf176c90347c607b385a5c5b9e47b5408223066 Mon Sep 17 00:00:00 2001 From: Thomas Syms Date: Wed, 3 Jan 2024 09:55:25 -0400 Subject: [PATCH] Configured docker with nvidia passhrough --- hosts/Blackbird/default.nix | 2 ++ hosts/Equinox/default.nix | 9 +++++++++ modules/containers-nvidia.nix | 7 +++++++ modules/containers.nix | 6 ++++++ modules/system.nix | 2 +- modules/virtualization.nix | 6 ++++++ 6 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 modules/containers-nvidia.nix create mode 100644 modules/containers.nix create mode 100644 modules/virtualization.nix diff --git a/hosts/Blackbird/default.nix b/hosts/Blackbird/default.nix index 3079b3c..472ae73 100644 --- a/hosts/Blackbird/default.nix +++ b/hosts/Blackbird/default.nix @@ -17,6 +17,8 @@ in { # Import system configuration ../../modules/system.nix + ../../modules/containers.nix + ../../modules/virtualization.nix ../../modules/harden.nix ../../modules/kde.nix ]; diff --git a/hosts/Equinox/default.nix b/hosts/Equinox/default.nix index b072884..b3bb009 100644 --- a/hosts/Equinox/default.nix +++ b/hosts/Equinox/default.nix @@ -19,6 +19,8 @@ in { # Import system configuration ../../modules/system.nix + ../../modules/containers-nvidia.nix + ../../modules/virtualization.nix ../../modules/harden.nix ../../modules/kde.nix ]; @@ -68,4 +70,11 @@ in { # Setup bluetooth hardware.bluetooth.enable = true; + + # Add OpenGl support + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; } diff --git a/modules/containers-nvidia.nix b/modules/containers-nvidia.nix new file mode 100644 index 0000000..b53a80e --- /dev/null +++ b/modules/containers-nvidia.nix @@ -0,0 +1,7 @@ +{...}: { + virtualisation.docker = { + enable = true; + storageDriver = "btrfs"; + enableNvidia = true; + }; +} diff --git a/modules/containers.nix b/modules/containers.nix new file mode 100644 index 0000000..68f203c --- /dev/null +++ b/modules/containers.nix @@ -0,0 +1,6 @@ +{...}: { + virtualisation.docker = { + enable = true; + storageDriver = "btrfs"; + }; +} diff --git a/modules/system.nix b/modules/system.nix index dd4e602..ccba61b 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -35,7 +35,7 @@ users.users.panotaka = { isNormalUser = true; description = "panotaka"; - extraGroups = ["networkmanager" "wheel"]; + extraGroups = ["networkmanager" "wheel" "libvirtd"]; shell = pkgs.fish; openssh.authorizedKeys.keys = [ ]; diff --git a/modules/virtualization.nix b/modules/virtualization.nix new file mode 100644 index 0000000..b15f0df --- /dev/null +++ b/modules/virtualization.nix @@ -0,0 +1,6 @@ +{...}: { + virtualisation.libvirtd.enable = true; + + # Only true if a desktop environment is installed + programs.virt-manager.enable = true; +}