nix-config/hosts/skycam/default.nix
Jordan Holt 127ef6353c
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m56s
Add custom packages
2024-08-04 11:47:33 +01:00

75 lines
1.7 KiB
Nix

{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../server.nix
];
hardware = {
raspberry-pi."4" = {
apply-overlays-dtmerge.enable = true;
audio.enable = false;
xhci.enable = false;
};
deviceTree = {
enable = true;
filter = "*rpi-4-*.dtb";
# From https://github.com/Electrostasy/dots/blob/3b81723feece67610a252ce754912f6769f0cd34/hosts/phobos/klipper.nix#L43-L65
overlays =
let
mkCompatibleDtsFile = dtbo:
let
drv = pkgs.runCommand "fix-dts" { nativeBuildInputs = with pkgs; [ dtc gnused ]; } ''
mkdir "$out"
dtc -I dtb -O dts ${dtbo} | sed -e 's/bcm2835/bcm2711/' > $out/overlay.dts
'';
in
"${drv}/overlay.dts";
inherit (config.boot.kernelPackages) kernel;
in
[
{
name = "imx708.dtbo";
dtsFile = mkCompatibleDtsFile "${kernel}/dtbs/overlays/imx708.dtbo";
}
{
name = "vc4-kms-v3d-pi4.dtbo";
dtsFile = mkCompatibleDtsFile "${kernel}/dtbs/overlays/vc4-kms-v3d-pi4.dtbo";
}
];
};
firmware = with pkgs; [
firmwareLinuxNonfree
wireless-regdb
];
};
services.udev.extraRules = ''
SUBSYSTEM="dma_heap", GROUP="video", MODE="0600"
'';
networking = {
hostId = "731d1660";
firewall = {
enable = true;
allowedTCPPorts = [ 8080 ];
allowedUDPPorts = [ 8080 ];
};
};
environment.systemPackages = with pkgs; [
camera-streamer
git
neovim
libraspberrypi
raspberrypi-eeprom
rpicam-apps
v4l-utils
unstable.ustreamer
];
system.stateVersion = "24.05";
}