mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-10 09:43:30 +01:00
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.
58 lines
1.5 KiB
Nix
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);
|
|
};
|
|
|
|
}
|