{pkgs, ...}: {
  imports = [
    "${builtins.fetchGit {url = "https://github.com/NixOS/nixos-hardware.git";}}/raspberry-pi/4"
    "${builtins.fetchGit {url = "https://github.com/robertjakub/oom-hardware.git";}}/uconsole/kernel"
    "${builtins.fetchGit {url = "https://github.com/robertjakub/oom-hardware.git";}}/raspberry-pi/overlays"
    "${builtins.fetchGit {url = "https://github.com/robertjakub/oom-hardware.git";}}/raspberry-pi/apply-overlays"
  ];

  nixpkgs.overlays = [
    (final: super: {
      makeModulesClosure = x:
        super.makeModulesClosure (x // {allowMissing = true;});
    })
  ];

  console = {
    earlySetup = true;
    font = "ter-v32n";
    packages = with pkgs; [terminus_font];
  };

  boot.kernelParams = [
    "8250.nr_uarts=1"
    "vc_mem.mem_base=0x3ec00000"
    "vc_mem.mem_size=0x20000000"
    "console=ttyS0,115200"
    "console=tty1"
    "plymouth.ignore-serial-consoles"
    "snd_bcm2835.enable_hdmi=1"
    "snd_bcm2835.enable_headphones=1"
    "psi=1"
    "iommu=force"
    "iomem=relaxed"
    "swiotlb=131072"
  ];

  hardware.raspberry-pi."4" = {
    xhci.enable = false;
    dwc2.enable = true;
    dwc2.dr_mode = "host";
    overlays = {
      cpu-revision.enable = true;
      audremap.enable = true;
      vc4-kms-v3d.enable = true;
      cpi-disable-pcie.enable = true;
      cpi-disable-genet.enable = true;
      cpi-uconsole.enable = true;
      cpi-i2c1.enable = false;
      cpi-spi4.enable = false;
      cpi-bluetooth.enable = true;
    };
  };

  hardware.deviceTree = {
    enable = true;
    filter = "bcm2711-rpi-cm4.dtb";
    overlaysParams = [
      {
        name = "bcm2711-rpi-cm4";
        params = {
          ant2 = "on";
          audio = "on";
          spi = "off";
          i2c_arm = "on";
        };
      }
      {
        name = "cpu-revision";
        params = {cm4-8 = "on";};
      }
      {
        name = "audremap";
        params = {pins_12_13 = "on";};
      }
      {
        name = "vc4-kms-v3d";
        params = {
          cma-384 = "on";
          nohdmi1 = "on";
        };
      }
    ];
  };
}