64 lines
1.6 KiB
Nix
64 lines
1.6 KiB
Nix
{ config, lib, pkgs, namespace, ... }:
|
|
let
|
|
inherit (lib.${namespace}) mkOpt mkBoolOpt;
|
|
cfg = config.${namespace}.hardware.raspberry-pi.overlays;
|
|
|
|
firmware = pkgs.${namespace}.raspberrypifw;
|
|
configfsPath = "/sys/kernel/config/device-tree/overlays";
|
|
in
|
|
{
|
|
options.${namespace}.hardware.raspberry-pi.overlays = with lib; {
|
|
pi5DisableWifi = {
|
|
enable = lib.mkEnableOption "Disable wifi on Pi5";
|
|
overlay = mkOpt types.str "${firmware}/boot/overlays/disable-wifi-pi5.dtbo" "Location of the dtbo file";
|
|
};
|
|
};
|
|
|
|
# audremap-pi5.dtbo
|
|
# disable-bt-pi5.dtbo
|
|
# disable-wifi-pi5.dtbo
|
|
# i2c0-pi5.dtbo
|
|
# i2c1-pi5.dtbo
|
|
# i2c2-pi5.dtbo
|
|
# i2c3-pi5.dtbo
|
|
# imx500-pi5.dtbo
|
|
# midi-uart0-pi5.dtbo
|
|
# midi-uart1-pi5.dtbo
|
|
# midi-uart2-pi5.dtbo
|
|
# midi-uart3-pi5.dtbo
|
|
# midi-uart4-pi5.dtbo
|
|
# pcie-32bit-dma-pi5.dtbo
|
|
# pciex1-compat-pi5.dtbo
|
|
# pisound-pi5.dtbo
|
|
# sdio-pi5.dtbo
|
|
# spi2-1cs-pi5.dtbo
|
|
# spi2-2cs-pi5.dtbo
|
|
# spi3-1cs-pi5.dtbo
|
|
# spi3-2cs-pi5.dtbo
|
|
# spi5-1cs-pi5.dtbo
|
|
# spi5-1cs.dtbo
|
|
# spi5-2cs-pi5.dtbo
|
|
# spi5-2cs.dtbo
|
|
# tc358743-pi5.dtbo
|
|
# uart0-pi5.dtbo
|
|
# uart1-pi5.dtbo
|
|
# uart2-pi5.dtbo
|
|
# uart3-pi5.dtbo
|
|
# uart4-pi5.dtbo
|
|
# vc4-kms-v3d-pi5.dtbo
|
|
# w1-gpio-pi5.dtbo
|
|
# w1-gpio-pullup-pi5.dtbo
|
|
|
|
systemd.services = {
|
|
apply-overlays = {
|
|
description = "Apply Raspberry Pi Device Tree Overlays";
|
|
script = ''
|
|
echo "Applying Device Tree Overlays via ConfigFS"
|
|
'' ++ lib.mkIf cfg.pi5DisableWifi.enable ''
|
|
mkdir ${configfsPath}/disable-wifi-pi5
|
|
cp ${cfg.pi5DisableWifi.overlay} ${configfsPath}/disable-wifi-pi5/dtbo
|
|
'';
|
|
wantedBy = [ "multi-user.target" ];
|
|
};
|
|
};
|
|
} |