aboutsummaryrefslogtreecommitdiff
path: root/profiles/hardware
diff options
context:
space:
mode:
Diffstat (limited to 'profiles/hardware')
-rw-r--r--profiles/hardware/do-droplet.nix67
-rw-r--r--profiles/hardware/framework-desktop.nix30
-rw-r--r--profiles/hardware/synology-vm.nix22
3 files changed, 119 insertions, 0 deletions
diff --git a/profiles/hardware/do-droplet.nix b/profiles/hardware/do-droplet.nix
new file mode 100644
index 0000000..0744181
--- /dev/null
+++ b/profiles/hardware/do-droplet.nix
@@ -0,0 +1,67 @@
+{ modulesPath, lib, ... }:
+{
+
+ imports = [
+ (modulesPath + "/virtualisation/digital-ocean-config.nix")
+ ];
+
+ boot.loader.grub = {
+ efiSupport = true;
+ efiInstallAsRemovable = true;
+ };
+
+ networking.useDHCP = lib.mkForce false;
+
+ # this one seems to always be broken
+ systemd.services.growpart.enable = lib.mkForce false;
+
+ # in order to get networking setup we need to enable it in cloud-init
+ # Disables all modules that do not work with NixOS
+ # Based on https://github.com/nix-community/nixos-anywhere-examples/blob/7f945ff0ae676c0eb77360b892add91328dd1f17/digitalocean.nix
+ services.cloud-init = {
+ enable = true;
+ network.enable = true;
+ settings = {
+ datasource_list = [
+ "ConfigDrive"
+ "Digitalocean"
+ ];
+ datasource.ConfigDrive = { };
+ datasource.Digitalocean = { };
+ # Based on https://github.com/canonical/cloud-init/blob/main/config/cloud.cfg.tmpl
+ cloud_init_modules = [
+ "seed_random"
+ "bootcmd"
+ "write_files"
+ "growpart"
+ "resizefs"
+ "set_hostname"
+ "update_hostname"
+ "set_password"
+ ];
+ cloud_config_modules = [
+ "ssh-import-id"
+ "keyboard"
+ "runcmd"
+ "disable_ec2_metadata"
+ ];
+ cloud_final_modules = [
+ "write_files_deferred"
+ "puppet"
+ "chef"
+ "ansible"
+ "mcollective"
+ "salt_minion"
+ "reset_rmc"
+ "scripts_per_once"
+ "scripts_per_boot"
+ "scripts_user"
+ "ssh_authkey_fingerprints"
+ "keys_to_console"
+ "install_hotplug"
+ "phone_home"
+ "final_message"
+ ];
+ };
+ };
+}
diff --git a/profiles/hardware/framework-desktop.nix b/profiles/hardware/framework-desktop.nix
new file mode 100644
index 0000000..85580d1
--- /dev/null
+++ b/profiles/hardware/framework-desktop.nix
@@ -0,0 +1,30 @@
+{ inputs, ... }:
+{
+ imports = [
+ inputs.nixos-hardware.nixosModules.framework-desktop-amd-ai-max-300-series
+ ];
+
+ boot.loader.efi.canTouchEfiVariables = true;
+ boot.loader.systemd-boot.enable = true;
+
+ boot.kernelModules = [
+ "kvm-amd"
+ "k10temp"
+ "nct6775"
+ ];
+
+ boot.initrd.availableKernelModules = [
+ "nvme"
+ "r8169" # ethernet driver
+ "sd_mod"
+ "thunderbolt"
+ "usb_storage"
+ "usbhid"
+ "xhci_pci"
+ ];
+
+ services.fwupd.enable = true;
+
+ hardware.enableRedistributableFirmware = true;
+ hardware.cpu.amd.updateMicrocode = true;
+}
diff --git a/profiles/hardware/synology-vm.nix b/profiles/hardware/synology-vm.nix
new file mode 100644
index 0000000..7d784eb
--- /dev/null
+++ b/profiles/hardware/synology-vm.nix
@@ -0,0 +1,22 @@
+{ lib, modulesPath, ... }:
+{
+ imports = [
+ (modulesPath + "/profiles/qemu-guest.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [
+ "ata_piix"
+ "uhci_hcd"
+ "virtio_pci"
+ "virtio_scsi"
+ "sd_mod"
+ "sr_mod"
+ ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ swapDevices = [ ];
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+}