From 75addcd6257f9f02669f3cf11422a61dea1c7323 Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 9 Apr 2025 22:13:08 +0200 Subject: Introduce new small-scale local 'fourmi' machine Signed-off-by: Mel --- machines/fourmi/default.nix | 23 +++++++++++++++++++++++ machines/fourmi/devices.nix | 38 ++++++++++++++++++++++++++++++++++++++ machines/fourmi/hardware.nix | 32 ++++++++++++++++++++++++++++++++ machines/fourmi/home.nix | 9 +++++++++ 4 files changed, 102 insertions(+) create mode 100644 machines/fourmi/default.nix create mode 100644 machines/fourmi/devices.nix create mode 100644 machines/fourmi/hardware.nix create mode 100644 machines/fourmi/home.nix (limited to 'machines') diff --git a/machines/fourmi/default.nix b/machines/fourmi/default.nix new file mode 100644 index 0000000..780838d --- /dev/null +++ b/machines/fourmi/default.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: + +{ + imports = [ + ../../modules/common.nix + + ./hardware.nix + ./devices.nix + ]; + + foundation.monitoring = { + client.enable = false; + }; + + # extra packages for dealing with the device + # hardware. + environment.systemPackages = with pkgs; [ + libraspberrypi + raspberrypi-eeprom + ]; + + system.stateVersion = "24.11"; +} diff --git a/machines/fourmi/devices.nix b/machines/fourmi/devices.nix new file mode 100644 index 0000000..3738553 --- /dev/null +++ b/machines/fourmi/devices.nix @@ -0,0 +1,38 @@ +{ lib, nixos-hardware, ... }: + +{ + # correctly configure hardware in this pi server. + imports = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ]; + + # boot settings + boot = { + loader = { + grub.enable = false; + generic-extlinux-compatible.enable = true; + }; + + kernelModules = [ "wireguard" ]; + }; + + # apply rpi4-specific device tree from nixos-hardware. + hardware = { + raspberry-pi."4".apply-overlays-dtmerge.enable = true; + deviceTree = { + enable = true; + filter = "*rpi-4-*.dtb"; + }; + }; + + networking = { + # todo: configure properly + firewall.enable = lib.mkForce false; + + useDHCP = true; + networkmanager = { + enable = false; + wifi.powersave = false; + }; + }; +} diff --git a/machines/fourmi/hardware.nix b/machines/fourmi/hardware.nix new file mode 100644 index 0000000..e3913be --- /dev/null +++ b/machines/fourmi/hardware.nix @@ -0,0 +1,32 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; + fsType = "ext4"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.end0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/machines/fourmi/home.nix b/machines/fourmi/home.nix new file mode 100644 index 0000000..be5d645 --- /dev/null +++ b/machines/fourmi/home.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + imports = [ + ../../modules/home/common.nix + ]; + + home.stateVersion = "24.11"; +} -- cgit 1.4.1