nixpkgs/nixos/modules/hardware/facter/networking/intel.nix
Jörg Thalheim 6741751801 nixos/facter: add networking configuration
This adds automatic network configuration based on detected hardware:

- networking/default.nix: Auto-configure DHCP on physical interfaces
  Detects Ethernet, WLAN, USB-Link, and generic network interfaces,
  automatically enabling DHCP on each. Excludes loopback and mainframe
  interfaces. Sets networking.useDHCP and per-interface useDHCP.

- networking/intel.nix: Intel WiFi firmware detection
  Auto-enables firmware for Intel 2200BG and 3945ABG wireless cards
  based on PCI vendor/device IDs.

- networking/initrd.nix: Network drivers in initrd
  Loads network controller drivers when boot.initrd.network.enable
  is set, enabling network boot scenarios.

Builds on PR #454847 (boot & storage).
Part of incremental upstreaming from nixos-facter-modules.
2025-10-24 12:50:34 +02:00

58 lines
1.5 KiB
Nix

{ lib, config, ... }:
let
inherit (config.hardware.facter) report;
cfg = config.hardware.facter.detected.networking.intel;
in
{
options.hardware.facter.detected.networking.intel = with lib; {
_2200BG.enable = mkEnableOption "the Facter Intel 2200BG module" // {
default = lib.any (
{
vendor ? { },
device ? { },
...
}:
# vendor (0x8086) Intel Corp.
(vendor.value or 0) == 32902
&& (lib.elem (device.value or 0) [
4163 # 0x1043
4175 # 0x104f
16928 # 0x4220
16929 # 0x4221
16931 # 0x4223
16932 # 0x4224
])
) (report.hardware.network_controller or [ ]);
defaultText = "hardware dependent";
};
_3945ABG.enable = mkEnableOption "the Facter Intel 3945ABG module" // {
default = lib.any (
{
vendor ? { },
device ? { },
...
}:
# vendor (0x8086) Intel Corp.
(vendor.value or 0) == 32902
&& (lib.elem (device.value or 0) [
16937 # 0x4229
16938 # 0x4230
16930 # 0x4222
16935 # 0x4227
])
) (report.hardware.network_controller or [ ]);
defaultText = "hardware dependent";
};
};
config = {
networking.enableIntel2200BGFirmware = lib.mkIf cfg._2200BG.enable (lib.mkDefault true);
hardware.enableRedistributableFirmware = lib.mkIf cfg._3945ABG.enable (lib.mkDefault true);
};
}