{ lib, pkgs, pkgsKernel, ... }: let brainKernel = import ../nix/brain-kernel.nix { pkgs = pkgsKernel; }; in { # ========================================================================= # Board specific configuration # ========================================================================= boot.kernelPackages = pkgsKernel.linuxPackagesFor brainKernel; boot.kernelParams = [ "console=ttyAMA0,115200n8" "console=tty1" "rootwait" "fbcon=font:ProFont6x11" ]; boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" "btrfs" ]; hardware.deviceTree = { enable = true; name = "imx28-pwsh6.dtb"; }; # Firmware bundle; keep the same set as before. hardware.firmware = lib.mkForce ( with pkgs; [ linux-firmware intel2200BGFirmware rtl8192su-firmware rt5677-firmware zd1211fw # alsa-firmware builds a host tool (tobin) that runs during build. pkgs.buildPackages.alsa-firmware ] ++ lib.optional (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) raspberrypiWirelessFirmware ++ lib.optionals (builtins.hasAttr "rtl8723bs-firmware" pkgs && lib.versionOlder brainKernel.version "4.13") [ pkgs."rtl8723bs-firmware" ] ++ lib.optionals (builtins.hasAttr "openelec-dvb-firmware" pkgs) [ pkgs."openelec-dvb-firmware" ] ++ lib.optionals (builtins.hasAttr "rtlwifi_new-firmware" pkgs) [ pkgs."rtlwifi_new-firmware" ] ); powerManagement.cpuFreqGovernor = "ondemand"; # ========================================================================= # Base NixOS Configuration # ========================================================================= networking.hostName = "brain"; networking.useDHCP = true; services.openssh = { enable = lib.mkDefault true; settings = { X11Forwarding = lib.mkDefault true; PasswordAuthentication = lib.mkDefault true; }; openFirewall = lib.mkDefault true; }; nix.settings = { experimental-features = [ "nix-command" "flakes" ]; }; system.stateVersion = "25.11"; }