47 lines
1.4 KiB
Nix
47 lines
1.4 KiB
Nix
|
|
# nix build .#nixosConfigurations.rpi3.config.system.build.sdImage
|
|||
|
|
{
|
|||
|
|
description = "Minimal NixOS Raspberry Pi 3B Flake";
|
|||
|
|
|
|||
|
|
inputs = {
|
|||
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
outputs =
|
|||
|
|
{ self, nixpkgs, ... }@inputs:
|
|||
|
|
{
|
|||
|
|
nixosConfigurations.rpi3 = nixpkgs.lib.nixosSystem {
|
|||
|
|
system = "aarch64-linux";
|
|||
|
|
modules = [
|
|||
|
|
# Include the official SD card image builder module
|
|||
|
|
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
|||
|
|
|
|||
|
|
({ lib, pkgs, ... }: {
|
|||
|
|
# System basic configuration
|
|||
|
|
system.stateVersion = "24.11";
|
|||
|
|
networking.hostName = "nixos-pi3";
|
|||
|
|
|
|||
|
|
# Enable necessary hardware firmware
|
|||
|
|
hardware.enableRedistributableFirmware = true;
|
|||
|
|
|
|||
|
|
# Create a default user so you can log in
|
|||
|
|
users.users.root.initialHashedPassword = ""; # Or set a password/SSH key
|
|||
|
|
users.users.nixos = {
|
|||
|
|
isNormalUser = true;
|
|||
|
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’
|
|||
|
|
initialPassword = "changeme";
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
# Enable SSH for remote access on first boot
|
|||
|
|
services.openssh = {
|
|||
|
|
enable = true;
|
|||
|
|
settings.PermitRootLogin = "yes"; # Change or use keys for security
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
# Expand root partition automatically on first boot
|
|||
|
|
# services.growpart.enable = true;
|
|||
|
|
})
|
|||
|
|
];
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
}
|