{ config, lib, pkgs, modulesPath, ... }: # Hardware configuration for the primary Raspberry Pi 4 (8 GB). # # nixos-raspberrypi's raspberry-pi-4.base module (imported in flake.nix) # provides everything that nixos-hardware.raspberry-pi-4 previously did: # - linuxPackages_rpi4 vendor kernel + matching firmware # - u-boot bootloader with /boot/firmware partition management # - initrd modules (xhci_pci, usbhid, usb_storage, vc4, pcie_brcmstb, etc.) # - config.txt generation # # This file adds only host-specific overrides on top of that. # # External HD: # Set homey.storage.device to the by-id path of your USB drive. # Find it with: ls -la /dev/disk/by-id/ # # TODO: Verify SD card partition labels after first flash. # The config assumes labels NIXOS_SD (root) and FIRMWARE (boot). # Check with: lsblk -o NAME,LABEL # Update fileSystems entries below if they differ. { # tmpfs for /tmp — keep the SD card writes down boot.tmp.useTmpfs = true; # Filesystems fileSystems."/" = { device = "/dev/disk/by-label/NIXOS_SD"; fsType = "ext4"; options = [ "noatime" ]; }; fileSystems."/boot/firmware" = { device = "/dev/disk/by-label/FIRMWARE"; fsType = "vfat"; options = [ "fmask=0022" "dmask=0022" ]; }; # External HD — device path is set in default.nix via homey.storage.device. # storage.nix creates the actual fileSystems entry from that option. swapDevices = []; # Platform nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; # Power management powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; }