diff --git a/flake.nix b/flake.nix index e4db2bf..1cd599a 100755 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,7 @@ systems.modules = { nixos = with inputs; [ + disko.nixosModules.disko sops-nix.nixosModules.sops ]; }; diff --git a/modules/nixos/system/boot/default.nix b/modules/nixos/system/boot/default.nix index 849937e..ebb0e13 100644 --- a/modules/nixos/system/boot/default.nix +++ b/modules/nixos/system/boot/default.nix @@ -6,12 +6,15 @@ let in { options.${namespace}.system.boot = { - enable = lib.mkEnableOption "booting"; - silentBoot = lib.mkEnableOption "silent boot"; - showNotch = lib.mkEnableOption "show macOS notch"; + enable = lib.mkEnableOption "Enable Boot"; + xenGuest = lib.mkEnableOption "Enable Xen Guest"; + showNotch = lib.mkEnableOption "Show macOS Notch"; + silentBoot = lib.mkEnableOption "Silent Boot"; }; config = mkIf cfg.enable { + services.xe-guest-utilities.enable = mkIf cfg.xenGuest true; + boot = { kernelParams = lib.optionals cfg.silentBoot [ "quiet" @@ -38,6 +41,14 @@ in timeout = 1; }; + + initrd = mkIf cfg.xenGuest { + availableKernelModules = [ "xen_blkfront" "xen_netfront" ]; + kernelModules = [ "xen_netfront" "xen_blkfront" ]; + supportedFilesystems = [ "ext4" "xenfs" ]; + }; + + kernelModules = mkIf cfg.xenGuest [ "xen_netfront" "xen_blkfront" "xenfs" ]; }; }; } diff --git a/modules/nixos/system/disk/default.nix b/modules/nixos/system/disk/default.nix index 8be5b28..f0d1895 100644 --- a/modules/nixos/system/disk/default.nix +++ b/modules/nixos/system/disk/default.nix @@ -1,6 +1,7 @@ { config, lib, namespace, ... }: let - inherit (lib) mkIf mkOpt types; + inherit (lib.${namespace}) mkOpt; + inherit (lib) mkIf types; cfg = config.${namespace}.system.disk; in diff --git a/modules/nixos/system/networking/default.nix b/modules/nixos/system/networking/default.nix index 339eb00..2e25769 100644 --- a/modules/nixos/system/networking/default.nix +++ b/modules/nixos/system/networking/default.nix @@ -29,5 +29,16 @@ in settings.General.EnableNetworkConfiguration = true; }; }; + + # TODO - Network Configuration + # (lib.mkIf (config.network != null) { + # networking = { + # inherit (config.network) defaultGateway nameservers; + # interfaces.${config.network.interface}.ipv4.addresses = [{ + # inherit (config.network) address; + # prefixLength = 24; + # }]; + # }; + # }) }; } diff --git a/systems/x86_64-linux/nixos-builder/default.nix b/systems/x86_64-linux/nixos-builder/default.nix index 141276d..4f90d89 100755 --- a/systems/x86_64-linux/nixos-builder/default.nix +++ b/systems/x86_64-linux/nixos-builder/default.nix @@ -5,13 +5,15 @@ in { reichard = { system = { - boot = enabled; - networking = enabled; # TODO - Network Config + boot = { + enable = true; + xenGuest = true; + }; disk = { enable = true; diskID = "/dev/xvda"; }; - # TODO - Xen Guest + networking = enabled; # TODO - Network Config }; services = {