nix-config/hosts/radiobert/default.nix

128 lines
2.8 KiB
Nix

{ zentralwerk, config, lib, pkgs, ... }:
{
imports = [
./soapysdr.nix
./readsb.nix
];
c3d2 = {
isInHq = false;
hq.statistics.enable = true;
pi-sensors = if true then [] else [ {
type = "dht22";
pin = 17;
location = "Schrank";
} {
type = "dht22";
pin = 23;
location = "Aussen";
} ];
# unless you automate walking up to the roof, do never enable
# automatic updates for this machine!
autoUpdate = lib.mkForce false;
};
boot = {
loader = {
grub.enable = false;
raspberryPi = {
enable = true;
version = 4;
# TODO: this machine actually has u-boot setup but that's no
# longer working with nixos-22.05. DO NOT REBOOT! :-)
# https://github.com/NixOS/nixpkgs/pull/112677
# uboot.enable = true;
firmwareConfig = ''
gpu_mem=192
dtparam=audio=on
'';
};
};
kernelPackages = pkgs.linuxPackages_latest;
# No ZFS on latest kernel:
supportedFilesystems = lib.mkForce [ "vfat" "ext4" ];
tmpOnTmpfs = true;
extraModulePackages = [ ];
initrd = {
availableKernelModules = [ "usbhid" ];
kernelModules = [ ];
};
kernelModules = [ ];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
};
"/boot/firmware" = {
device = "/dev/disk/by-label/FIRMWARE";
fsType = "vfat";
};
};
swapDevices = [ ];
hardware = {
deviceTree.enable = false;
enableRedistributableFirmware = true;
};
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
nixpkgs.config.packageOverrides = pkgs: {
makeModulesClosure = x:
# prevent kernel install fail due to missing modules
pkgs.makeModulesClosure (x // { allowMissing = true; });
};
nix = {
buildCores = 4;
maxJobs = 2;
};
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
networking = {
hostName = "radiobert"; # Define your hostname.
useDHCP = false;
interfaces.eth0.ipv4.addresses = [{
address = config.c3d2.hosts."${config.networking.hostName}".ip4;
prefixLength = zentralwerk.lib.config.site.net.serv.subnet4Len;
}];
defaultGateway = "172.20.73.1";
firewall.enable = false;
nameservers = [ "172.20.73.8" "9.9.9.9" ];
};
environment.systemPackages = with pkgs; [
libraspberrypi
raspberrypi-eeprom
vim
wget
];
programs.tmux.enable = true;
services = {
# Do not log to flash:
journald.extraConfig = ''
Storage=volatile
'';
openssh = {
enable = true;
};
# Allow access to USB
udev.extraRules = ''
SUBSYSTEM=="usb", MODE:="0666"
'';
};
system.stateVersion = "21.05"; # Did you read the comment?
}