This adds automatic kernel module detection for boot-critical hardware:
- disk.nix: Detects and loads kernel modules for storage controllers
Auto-detects modules for: disk controllers, storage controllers,
and FireWire controllers (for FireWire-attached disks).
Modules are automatically added to boot.initrd.availableKernelModules.
- keyboard.nix: Detects USB controller drivers for keyboard support
Ensures USB HID drivers are loaded in initrd for keyboard access
during boot (critical for LUKS password entry, etc.).
Follow up to #454237.
Part of incremental upstreaming from nixos-facter-modules.
This adds foundational functionality for nixos-facter hardware detection:
- lib.nix: Internal helper functions for querying facter reports
- hasCpu/hasAmdCpu/hasIntelCpu: CPU vendor detection
- collectDrivers: Extract driver_modules from hardware entries
- toZeroPaddedHex: Format USB device IDs (for fingerprint matching)
- system.nix: Auto-detect nixpkgs.hostPlatform from facter report
Automatically sets the correct platform (x86_64-linux, aarch64-linux, etc.)
based on the hardware report, reducing manual configuration.
This builds on the base infrastructure added in PR #450303 and provides
the foundation for upcoming hardware detection modules (boot, networking,
graphics, etc.).
Part of the incremental upstreaming effort from:
https://github.com/nix-community/nixos-facter-modules
As of systemd 258 adb and fastboot connections are handled by a built-in
uaccess rule, so a dedicated package with hardcoded ID-based udev rules
is no longer needed.
Drop the android-udev-rules package and related mentions of the adbusers
group, which is also no longer used.
Syncthing can be configured to ignore certain files and
directories via ignore patterns. This PR adds a new nix option to
set these patterns declaratively.
The replacement instructions for the removed services.postfix.extraConfig option suggests using the services.postfix.extraConfig option instead, which doesn't exist.