All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m36s
83 lines
2.0 KiB
Nix
83 lines
2.0 KiB
Nix
{ config, lib, 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 ];
|
|
};
|
|
};
|
|
|
|
users.users.root = {
|
|
openssh.authorizedKeys.keys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS jordan@vimium.com"
|
|
];
|
|
};
|
|
|
|
services.openssh.settings.PermitRootLogin = lib.mkForce "prohibit-password";
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
camera-streamer
|
|
git
|
|
neovim
|
|
libraspberrypi
|
|
raspberrypi-eeprom
|
|
rpicam-apps
|
|
v4l-utils
|
|
unstable.ustreamer
|
|
];
|
|
|
|
system.stateVersion = "24.05";
|
|
}
|