{ nixpkgs, nixos-hardware, ... }:
{ pkgs, ... }:
{
  imports = [
    "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
    nixos-hardware.nixosModules.raspberry-pi-4

    ../../users/root
    ../../users/erwin
    ./home.nix
  ];

  eboskma = {
    users.erwin = {
      enable = true;
      server = true;
    };
    klipper.enable = true;
    networking.enable = true;
    nix-common.enable = true;
    systemd.enable = true;
  };

  # nixpkgs.crossSystem.system = "aarch64-linux";

  hardware = {
    enableAllFirmware = true; # This also sets hardware.enableRedistributableFirmware
    raspberry-pi."4".fkms-3d = {
      enable = true;
      cma = 256;
    };
  };

  boot = {
    bootspec.enable = true;
    kernelPackages = pkgs.linuxPackages_rpi4;
  };

  zramSwap.enable = true;

  sdImage.compressImage = false;

  networking = {
    hostName = "regin";
    useDHCP = true;
    useNetworkd = true;
    wireless.enable = true;
  };

  systemd.network = {
    enable = true;

    networks = {
      "40-eth0" = {
        DHCP = "yes";
      };
    };
  };

  services.openssh.enable = true;
  services.tailscale.enable = true;

  security = {
    polkit.enable = true;
  };
  environment.systemPackages = with pkgs; [ libraspberrypi ];

  system.stateVersion = "23.05";
}