rpi2.nix 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. { config, pkgs, lib, ... }:
  2. {
  3. imports = [ <nixpkgs/nixos/modules/installer/sd-card/sd-image.nix> ];
  4. # Define the image name
  5. sdImage.imageBaseName = "nixos-rpi2";
  6. sdImage.compressImage = false;
  7. # Required: Set populateRootCommands
  8. sdImage.populateRootCommands = ''
  9. mkdir -p ./files
  10. echo "NixOS for Raspberry Pi 2" > ./files/welcome.txt
  11. '';
  12. sdImage.populateFirmwareCommands = "";
  13. # Bootloader: Use U-Boot for Raspberry Pi 2
  14. boot.loader.generic-extlinux-compatible.enable = true;
  15. hardware.deviceTree.enable = true;
  16. hardware.deviceTree.name = "bcm2709-rpi-2-b.dtb"; # Correct DTB for RPi2
  17. # Disable GRUB (not used on Raspberry Pi)
  18. boot.loader.grub.enable = false;
  19. # Qemu storage drivers
  20. # boot.initrd.enable = true;
  21. # boot.initrd.kernelModules = [ "brcmfmac" "bcm2835_rng" "mmc_block" "sdhci" "sdhci-pci" "sdhci-pltfm" ];
  22. # boot.initrd.network.enable = false;
  23. # boot.initrd.availableKernelModules = [ "mmc_block" "sdhci" "usb_storage" "ext4" ];
  24. # boot.initrd.availableKernelModules = [ "virtio_blk" "virtio_pci" "virtio_mmio" ];
  25. # boot.kernelModules = [ "virtio_blk" "virtio_net" "sd" "sdhci" ];
  26. # hardware.enableAllFirmware = true;
  27. boot.kernelPackages = lib.mkForce pkgs.linuxPackages_rpi2;
  28. nixpkgs.overlays = [
  29. (final: super: {
  30. makeModulesClosure = x:
  31. super.makeModulesClosure (x // { allowMissing = true; });
  32. })
  33. ];
  34. boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ];
  35. # Networking
  36. networking.hostName = "nixos-rpi2";
  37. networking.wireless.enable = false; # Enable this if using WiFi
  38. networking.interfaces.eth0.useDHCP = true;
  39. # Enable SSH
  40. services.openssh.enable = true;
  41. # User setup
  42. users.users.nixos = {
  43. isNormalUser = true;
  44. initialPassword = "nixos";
  45. extraGroups = [ "wheel" ];
  46. };
  47. users.groups.nixos = {};
  48. # Set system version (avoid warnings)
  49. system.stateVersion = "25.05";
  50. }