diff --git a/systems/default.nix b/systems/default.nix index 4067cd0..90a72e3 100644 --- a/systems/default.nix +++ b/systems/default.nix @@ -27,7 +27,6 @@ ../configs/common.nix agenix.nixosModules.default home-manager.nixosModules.home-manager - vscode-server.nixosModules.default ]; desktop = with inputs; @@ -50,6 +49,7 @@ in { nixos ++ (with inputs; [ nixos-wsl.nixosModules.default + vscode-server.nixosModules.default ]); }; @@ -68,5 +68,10 @@ in { self.nixosModules.reposilite ]); }; + + vesuvio = { + system = "aarch64-linux"; + modules = nixos; + }; }; } diff --git a/systems/vesuvio/default.nix b/systems/vesuvio/default.nix new file mode 100644 index 0000000..16d248c --- /dev/null +++ b/systems/vesuvio/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./networking.nix + ]; + + boot.tmp.cleanOnBoot = true; + zramSwap.enable = true; +} diff --git a/systems/vesuvio/hardware-configuration.nix b/systems/vesuvio/hardware-configuration.nix new file mode 100644 index 0000000..1b34ca2 --- /dev/null +++ b/systems/vesuvio/hardware-configuration.nix @@ -0,0 +1,24 @@ +{modulesPath, ...}: { + imports = [(modulesPath + "/profiles/qemu-guest.nix")]; + + boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront"]; + boot.initrd.kernelModules = ["nvme"]; + + boot.loader.grub = { + efiSupport = true; + efiInstallAsRemovable = true; + device = "nodev"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/D951-0FE6"; + fsType = "vfat"; + }; + + fileSystems."/" = { + device = "/dev/sda1"; + fsType = "ext4"; + }; + + nixpkgs.hostPlatform = "aarch64-linux"; +} diff --git a/systems/vesuvio/networking-stock.nix b/systems/vesuvio/networking-stock.nix new file mode 100644 index 0000000..81f3a3d --- /dev/null +++ b/systems/vesuvio/networking-stock.nix @@ -0,0 +1,53 @@ +# kept in case something goes wrong colon three +{lib, ...}: { + # This file was populated at runtime with the networking + # details gathered from the active system. + networking = { + nameservers = [ + "8.8.8.8" + ]; + defaultGateway = ""; + defaultGateway6 = { + address = "fe80::1"; + interface = "eth0"; + }; + dhcpcd.enable = false; + usePredictableInterfaceNames = lib.mkForce false; + interfaces = { + eth0 = { + ipv4.addresses = [ + { + address = "100.64.15.234"; + prefixLength = 32; + } + ]; + ipv6.addresses = [ + { + address = "2a01:4f8:1c1c:8b12::1"; + prefixLength = 64; + } + { + address = "fe80::9400:3ff:fe24:4aab"; + prefixLength = 64; + } + ]; + ipv4.routes = [ + { + address = ""; + prefixLength = 32; + } + ]; + ipv6.routes = [ + { + address = "fe80::1"; + prefixLength = 128; + } + ]; + }; + }; + }; + services.udev.extraRules = '' + ATTR{address}=="96:00:03:24:4a:ab", NAME="eth0" + + ''; +} diff --git a/systems/vesuvio/networking.nix b/systems/vesuvio/networking.nix new file mode 100644 index 0000000..eba4a74 --- /dev/null +++ b/systems/vesuvio/networking.nix @@ -0,0 +1,22 @@ +{lib, ...}: { + # mac address + services.udev.extraRules = ''ATTR{address}=="96:00:03:24:4a:ab", NAME="eth0"''; + + networking = { + dhcpcd.enable = false; + usePredictableInterfaceNames = lib.mkForce false; + nameservers = ["1.1.1.1"]; + + defaultGateway6 = { + address = "fe80::1"; + interface = "eth0"; + }; + + interfaces.eth0.ipv6.addresses = [ + { + address = "2a01:4f8:1c1c:8b12::1"; + prefixLength = 64; + } + ]; + }; +}