60 lines
1.5 KiB
Nix
60 lines
1.5 KiB
Nix
{ 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 = ''
|
|
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
|
|
'';
|
|
};
|
|
};
|
|
}
|