nixos/modules/hardware/raspi4/raspi-base.nix

60 lines
1.5 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
let
cfg = config.hardware.az-raspi4-base;
in
{
options = {
hardware.az-raspi4-base.enable = lib.mkEnableOption "Enable the base config for a Raspberry Pi 4.";
};
config = lib.mkIf cfg.enable {
boot = {
supportedFilesystems = lib.mkForce [ "f2fs" "ntfs" "cifs" "ext4" "vfat" "nfs" "nfs4" ];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
};
};
boot = {
initrd.availableKernelModules = [
"usbhid"
"usb_storage"
"vc4"
"pcie_brcmstb" # required for the pcie bus to work
"reset-raspberrypi" # required for vl805 firmware to load
];
loader = {
grub.enable = false;
generic-extlinux-compatible.enable = true;
};
};
boot.extraModulePackages = [ ];
boot.kernelParams = [ ];
hardware.enableRedistributableFirmware = true;
hardware.pulseaudio.enable = true;
environment.systemPackages = with pkgs; [
libraspberrypi
raspberrypi-eeprom
];
environment.shellAliases = {
raspi-cpu = ''
sudo vcgencmd get_throttled && sudo vcgencmd measure_temp
'';
raspi-firmware-update = ''
2023-06-11 12:38:56 +02:00
sudo mkdir -p /mnt/firmware && \
sudo mount /dev/disk/by-label/FIRMWARE /mnt/firmware && \
BOOTFS=/mnt/firmware FIRMWARE_RELEASE_STATUS=stable sudo -E rpi-eeprom-update -d -a && \
sudo umount /mnt/firmware
'';
};
};
}