{ config, lib, pkgs, self, ... }: { imports = [ self.inputs.nixos-hardware.nixosModules.raspberry-pi-4 ./hardware-configuration.nix ../server.nix ]; nixpkgs.hostPlatform = "aarch64-linux"; hardware = { raspberry-pi."4" = { apply-overlays-dtmerge.enable = true; audio.enable = false; fkms-3d.enable = false; xhci.enable = false; }; deviceTree = { enable = true; filter = "*rpi-4-*.dtb"; overlays = [ { name = "audio-off-overlay"; dtsText = '' /dts-v1/; /plugin/; / { compatible = "brcm,bcm2711"; fragment@0 { target = <&vchiq>; __overlay__ { status = "disabled"; }; }; }; ''; } { # Adapted from: https://github.com/raspberrypi/linux/blob/rpi-6.1.y/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts # changes: # - modified top-level "compatible" field from bcm2835 to bcm2711 # - s/i2s_clk_consumer/i2s/ (name on bcm2711 platform) name = "hifiberry-digi-pro"; dtsText = '' /dts-v1/; /plugin/; / { compatible = "brcm,bcm2711"; fragment@0 { target = <&i2s>; __overlay__ { status = "okay"; }; }; fragment@1 { target = <&i2c1>; __overlay__ { #address-cells = <1>; #size-cells = <0>; status = "okay"; wm8804@3b { #sound-dai-cells = <0>; compatible = "wlf,wm8804"; reg = <0x3b>; PVDD-supply = <&vdd_3v3_reg>; DVDD-supply = <&vdd_3v3_reg>; status = "okay"; }; }; }; fragment@2 { target = <&sound>; __overlay__ { compatible = "hifiberry,hifiberry-digi"; i2s-controller = <&i2s>; status = "okay"; clock44-gpio = <&gpio 5 0>; clock48-gpio = <&gpio 6 0>; }; }; }; ''; } ]; }; firmware = with pkgs; [ firmwareLinuxNonfree wireless-regdb ]; }; networking.hostId = "731d1660"; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; modules = { networking = { wireless = { enable = true; interfaces = [ "wlan0" ]; }; }; services = { borgmatic = { enable = true; repoPath = "ssh://qcw86s11@qcw86s11.repo.borgbase.com/./repo"; }; home-assistant.enable = true; }; }; # Connection to ONKYO HT-R990 networking.interfaces.end0 = { ipv4.addresses = [{ address = "172.16.0.1"; prefixLength = 30; }]; }; environment.systemPackages = with pkgs; [ python311Packages.onkyo-eiscp libraspberrypi raspberrypi-eeprom ]; system.stateVersion = "22.11"; }