{ config, lib, pkgs, ... }: with lib; { deploy.profile.hardware.raspi = true; nixpkgs.crossOverlays = [ (import ../../../overlays/pi) ]; boot = { loader = { grub.enable = false; generic-extlinux-compatible.enable = true; }; consoleLogLevel = lib.mkDefault 7; kernelPackages = pkgs.linuxPackages_rpi1; kernelModules = mkForce [ "loop" "atkbd" ]; initrd = { includeDefaultModules = false; availableKernelModules = mkForce [ "mmc_block" "usbhid" "ext4" "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" "hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft" ]; }; }; services.udev.extraRules = '' SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660" SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="${pkgs.runtimeShell} -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'" SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="${pkgs.runtimeShell} -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'" T ''; users.groups.gpio = { }; environment.noXlibs = true; documentation.info.enable = false; documentation.man.enable = false; programs.command-not-found.enable = false; security.polkit.enable = false; security.audit.enable = false; services.udisks2.enable = false; boot.enableContainers = false; nixpkgs.crossSystem = systems.examples.raspberryPi // { system = "armv6l-linux"; }; fileSystems = { "/" = { device = "/dev/disk/by-label/NIXOS_SD"; fsType = "ext4"; }; }; }