1 { config, lib, pkgs, ... }:
7 (lib.mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "hardware" "enableRedistributableFirmware" ])
8 (lib.mkRenamedOptionModule [ "networking" "enableIntel3945ABGFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
9 (lib.mkRenamedOptionModule [ "networking" "enableIntel2100BGFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
10 (lib.mkRenamedOptionModule [ "networking" "enableRalinkFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
11 (lib.mkRenamedOptionModule [ "networking" "enableRTL8192cFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
18 hardware.enableAllFirmware = lib.mkEnableOption "all firmware regardless of license";
20 hardware.enableRedistributableFirmware = lib.mkEnableOption "firmware with a license allowing redistribution" // {
21 default = config.hardware.enableAllFirmware;
22 defaultText = lib.literalExpression "config.hardware.enableAllFirmware";
25 hardware.wirelessRegulatoryDatabase = lib.mkEnableOption "loading the wireless regulatory database at boot" // {
26 default = cfg.enableRedistributableFirmware || cfg.enableAllFirmware;
27 defaultText = lib.literalMD "Enabled if proprietary firmware is allowed via {option}`enableRedistributableFirmware` or {option}`enableAllFirmware`.";
35 config = lib.mkMerge [
36 (lib.mkIf (cfg.enableAllFirmware || cfg.enableRedistributableFirmware) {
37 hardware.firmware = with pkgs; [
46 libreelec-dvb-firmware
47 ] ++ lib.optional pkgs.stdenv.hostPlatform.isAarch raspberrypiWirelessFirmware;
49 (lib.mkIf cfg.enableAllFirmware {
51 assertion = !cfg.enableAllFirmware || pkgs.config.allowUnfree;
53 the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files.
54 This requires nixpkgs.config.allowUnfree to be true.
55 An alternative is to use the hardware.enableRedistributableFirmware option.
58 hardware.firmware = with pkgs; [
61 b43Firmware_6_30_163_46
63 ] ++ lib.optionals pkgs.stdenv.hostPlatform.isx86 [
64 facetimehd-calibration
68 (lib.mkIf cfg.wirelessRegulatoryDatabase {
69 hardware.firmware = [ pkgs.wireless-regdb ];