summary refs log tree commit diff
path: root/machines/fourmi/devices.nix
blob: 87f8728ca706e2920e08b8d5e5f9a5580a076951 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  config,
  pkgs,
  lib,
  nixos-hardware,
  ...
}:

{
  # correctly configure hardware in this pi server.
  imports = [
    nixos-hardware.nixosModules.raspberry-pi-4
    ../../modules/hardware/ads7846.nix
  ];

  # boot settings
  boot = {
    kernelPackages = lib.mkForce pkgs.linuxPackages_rpi4;

    loader = {
      grub.enable = false;
      generic-extlinux-compatible.enable = true;
    };

    kernelModules = [ "wireguard" ];
  };

  zramSwap = {
    enable = true;
    algorithm = "zstd";
    swapDevices = 1;
    memoryPercent = 100;
  };

  # apply rpi4-specific device tree from nixos-hardware.
  hardware = {
    raspberry-pi."4" = {
      apply-overlays-dtmerge.enable = true;
      fkms-3d.enable = true;
    };
    deviceTree = {
      enable = true;
      filter = "bcm2711-rpi-4*.dtb";
    };
  };

  age.secrets.wireless-secrets = {
    file = ../../secrets/wireless-secrets.age;
  };

  networking = {
    # todo: configure properly
    firewall.enable = lib.mkForce false;

    useDHCP = true;
    wireless = {
      enable = true;
      interfaces = [ "wlan0" ];
      secretsFile = config.age.secrets.wireless-secrets.path;
      networks = {
        # yea this is my home network :3
        # (my boyfriends brother picked the name)
        "Das asoziale Netzwerk".pskRaw = "ext:psk_home";
      };
    };
  };
}