From 1207101eabd68b1744a5ed023a036dfc55b0d16c Mon Sep 17 00:00:00 2001 From: GaspardCulis Date: Mon, 4 Nov 2024 14:39:20 +0100 Subject: [PATCH] feat: Added new `Pi4` host --- flake.lock | 179 +++++++++++++++++++++++++++ flake.nix | 16 +++ hosts/Pi4/default.nix | 29 +++++ hosts/Pi4/hardware-configuration.nix | 2 + 4 files changed, 226 insertions(+) create mode 100644 hosts/Pi4/default.nix create mode 100644 hosts/Pi4/hardware-configuration.nix diff --git a/flake.lock b/flake.lock index ac38227..5918a1a 100644 --- a/flake.lock +++ b/flake.lock @@ -457,6 +457,40 @@ "type": "github" } }, + "libcamera-src": { + "flake": false, + "locked": { + "lastModified": 1725630279, + "narHash": "sha256-KH30jmHfxXq4j2CL7kv18DYECJRp9ECuWNPnqPZajPA=", + "owner": "raspberrypi", + "repo": "libcamera", + "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "repo": "libcamera", + "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", + "type": "github" + } + }, + "libpisp-src": { + "flake": false, + "locked": { + "lastModified": 1724944683, + "narHash": "sha256-Fo2UJmQHS855YSSKKmGrsQnJzXog1cdpkIOO72yYAM4=", + "owner": "raspberrypi", + "repo": "libpisp", + "rev": "28196ed6edcfeda88d23cc5f213d51aa6fa17bb3", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "v1.0.7", + "repo": "libpisp", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -527,6 +561,35 @@ "type": "github" } }, + "raspberry-pi-nix": { + "inputs": { + "libcamera-src": "libcamera-src", + "libpisp-src": "libpisp-src", + "nixpkgs": [ + "nixpkgs" + ], + "rpi-bluez-firmware-src": "rpi-bluez-firmware-src", + "rpi-firmware-nonfree-src": "rpi-firmware-nonfree-src", + "rpi-firmware-src": "rpi-firmware-src", + "rpi-linux-6_10_12-src": "rpi-linux-6_10_12-src", + "rpi-linux-6_6_54-src": "rpi-linux-6_6_54-src", + "rpicam-apps-src": "rpicam-apps-src", + "u-boot-src": "u-boot-src" + }, + "locked": { + "lastModified": 1729460856, + "narHash": "sha256-D/zTVmEcwle8Z09r6/vhAe4BmmPS2uPhY4i3wkRdDOs=", + "owner": "nix-community", + "repo": "raspberry-pi-nix", + "rev": "db08995cd65ff26ec3aef48f80bfa964e623c46a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "raspberry-pi-nix", + "type": "github" + } + }, "root": { "inputs": { "anixrun": "anixrun", @@ -543,9 +606,112 @@ ], "jovian": "jovian", "nixpkgs": "nixpkgs_2", + "raspberry-pi-nix": "raspberry-pi-nix", "sops-nix": "sops-nix" } }, + "rpi-bluez-firmware-src": { + "flake": false, + "locked": { + "lastModified": 1708969706, + "narHash": "sha256-KakKnOBeWxh0exu44beZ7cbr5ni4RA9vkWYb9sGMb8Q=", + "owner": "RPi-Distro", + "repo": "bluez-firmware", + "rev": "78d6a07730e2d20c035899521ab67726dc028e1c", + "type": "github" + }, + "original": { + "owner": "RPi-Distro", + "ref": "bookworm", + "repo": "bluez-firmware", + "type": "github" + } + }, + "rpi-firmware-nonfree-src": { + "flake": false, + "locked": { + "lastModified": 1723266537, + "narHash": "sha256-T7eTKXqY9cxEMdab8Snda4CEOrEihy5uOhA6Fy+Mhnw=", + "owner": "RPi-Distro", + "repo": "firmware-nonfree", + "rev": "4b356e134e8333d073bd3802d767a825adec3807", + "type": "github" + }, + "original": { + "owner": "RPi-Distro", + "ref": "bookworm", + "repo": "firmware-nonfree", + "type": "github" + } + }, + "rpi-firmware-src": { + "flake": false, + "locked": { + "lastModified": 1727798811, + "narHash": "sha256-eavbshXGYmkYR33y9FLcQMJoAYdYTESVEy0g/RRXnb0=", + "owner": "raspberrypi", + "repo": "firmware", + "rev": "287e6a6c2d3b50eee3e2c5b2eacdd907e5cbe09a", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "1.20241001", + "repo": "firmware", + "type": "github" + } + }, + "rpi-linux-6_10_12-src": { + "flake": false, + "locked": { + "lastModified": 1728305462, + "narHash": "sha256-LtvNmGD1D5YYv+C9xxxddAeHw69o3OX/H9M7F663L74=", + "owner": "raspberrypi", + "repo": "linux", + "rev": "26ee50d56618c2d98100b1bc672fd201aed4d00f", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "rpi-6.10.y", + "repo": "linux", + "type": "github" + } + }, + "rpi-linux-6_6_54-src": { + "flake": false, + "locked": { + "lastModified": 1728155174, + "narHash": "sha256-/8RjW35XQMnshjAE4Ey8j3oWzE2GOntnBYY6PlvZGhs=", + "owner": "raspberrypi", + "repo": "linux", + "rev": "12f0f28db3afe451a81a34c5a444f6841c10067c", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "rpi-6.6.y", + "repo": "linux", + "type": "github" + } + }, + "rpicam-apps-src": { + "flake": false, + "locked": { + "lastModified": 1727515047, + "narHash": "sha256-qCYGrcibOeGztxf+sd44lD6VAOGoUNwRqZDdAmcTa/U=", + "owner": "raspberrypi", + "repo": "rpicam-apps", + "rev": "a8ccf9f3cd9df49875dfb834a2b490d41d226031", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "v1.5.2", + "repo": "rpicam-apps", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -612,6 +778,19 @@ "type": "github" } }, + "u-boot-src": { + "flake": false, + "locked": { + "lastModified": 1719857238, + "narHash": "sha256-mJ2TBy0Y5ZtcGFgtU5RKr0UDUp5FWzojbFb+o/ebRJU=", + "type": "tarball", + "url": "https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2" + }, + "original": { + "type": "tarball", + "url": "https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2" + } + }, "utils": { "inputs": { "systems": "systems_2" diff --git a/flake.nix b/flake.nix index e35a48b..4d8212d 100644 --- a/flake.nix +++ b/flake.nix @@ -56,6 +56,12 @@ url = "github:Jovian-Experiments/Jovian-NixOS"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # Rasoberry PI + raspberry-pi-nix = { + url = "github:nix-community/raspberry-pi-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { @@ -66,6 +72,7 @@ sops-nix, home-manager, jovian, + raspberry-pi-nix, ... } @ inputs: let system = "x86_64-linux"; @@ -91,6 +98,15 @@ home-manager.nixosModules.home-manager ]; }; + + Pi4 = nixpkgs.lib.nixosSystem { + extraArgs = {inherit inputs;}; + system = "aarch64-linux"; + modules = [ + raspberry-pi-nix.nixosModules.raspberry-pi + ./hosts/Pi4 + ]; + }; }; homeConfigurations = { diff --git a/hosts/Pi4/default.nix b/hosts/Pi4/default.nix new file mode 100644 index 0000000..7e866ba --- /dev/null +++ b/hosts/Pi4/default.nix @@ -0,0 +1,29 @@ +{ + pkgs, + lib, + ... +}: { + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + + # Nix + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Set your time zone. + time.timeZone = "Europe/Paris"; + + services.openssh = { + enable = true; + ports = [22]; + settings = { + PasswordAuthentication = false; + }; + }; + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHQyRXFQ6iA5p0vDuoGSHZfajiVZPAGIyqhTziM7QgBV gaspard@nixos" + ]; + + environment.systemPackages = with pkgs; [ + helix + git + ]; +} diff --git a/hosts/Pi4/hardware-configuration.nix b/hosts/Pi4/hardware-configuration.nix new file mode 100644 index 0000000..ea8f50d --- /dev/null +++ b/hosts/Pi4/hardware-configuration.nix @@ -0,0 +1,2 @@ +{...}: { +}