brainix/modules/brain.nix
2026-02-13 17:06:24 +09:00

76 lines
2.1 KiB
Nix

{ 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";
}