{ config, lib, pkgs, ... }: with pkgs; { # A bunch of boot parameters needed for optimal runtime on RPi 4B boot.kernelPackages = linuxPackages_rpi4; boot.kernelParams = [ "zfs.zfs_arc_max=134217728" "console=TTYAMA0,115200" "console=tty1" "8250.nr_uarts=1" "iomem=relaxed" "strict-devmem=0" ]; # Enable SATA-HAT GPIO features boot.loader = { grub.enable = false; generic-extlinux-compatible.enable = lib.mkForce false; }; boot.loader.raspberryPi = { enable = true; version = 4; firmwareConfig = '' iomem=relaxed strict-devmem=0 dtoverlay=w1-gpio ''; }; boot.kernelModules = [ "pwm_bcm2835" "w1-gpio" "w1-therm" ]; # Load PWM hardware timers hardware.raspberry-pi."4".pwm0.enable = true; # Enable I2C hardware.raspberry-pi."4".i2c1.enable = true; }