nixfiles/config/profiles/rpi.nix

81 lines
1.8 KiB
Nix

{ inputs, pkgs, ... }: {
imports = [
inputs.nixos-hardware.nixosModules.raspberry-pi-4
];
kyouma.machine-type.physical = true;
boot = {
extraModprobeConfig = ''
options snd_bcm2835 enable_headphones=1
'';
kernelParams = [ "snd_bcm2835.enable_hdmi=1" ];
loader.raspberryPi.firmwareConfig = ''
dtparam=audio=on
dtparam=krnbt=on
'';
};
console.enable = false;
environment.systemPackages = with pkgs; [
bluez
bluez-tools
libcec
libraspberrypi
raspberrypi-eeprom
];
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
};
};
hardware = {
bluetooth.enable = true;
pulseaudio.enable = true;
deviceTree = {
enable = true;
overlays = [
{
name = "bluetooth-overlay";
dtsText = ''
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2711";
fragment@0 {
target = <&uart0_pins>;
__overlay__ {
brcm,pins = <30 31 32 33>;
brcm,pull = <2 0 0 2>;
};
};
};
'';
}
];
};
raspberry-pi."4" = {
apply-overlays-dtmerge.enable = true;
fkms-3d.enable = true;
};
};
nixpkgs.overlays = [
(self: super: { libcec = super.libcec.override { withLibraspberrypi = true; }; })
(self: super: {
makeModulesClosure = x:
super.makeModulesClosure (x // { allowMissing = true; });
})
];
sound.enable = true;
services.avahi = {
enable = true;
ipv6 = true;
nssmdns4 = true;
publish.enable = true;
publish.userServices = true;
};
services.fstrim.enable = true;
}