about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Girol <symphorien@users.noreply.github.com>2021-07-27 16:43:57 +0000
committerGitHub <noreply@github.com>2021-07-27 16:43:57 +0000
commit407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17 (patch)
treeff2e3f3780794192fe111ef8d236d262fcd783b3
parent9b3caf1d0c1ab3c717b5d374cd21c652d274f90b (diff)
parent8fe0143d88e87e529c3d143ae2fb589ce651dcb6 (diff)
downloadnixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar.gz
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar.bz2
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar.lz
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar.xz
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.tar.zst
nixlib-407ef1dc6f91f9ecf7f61e4dfaedcde052f2bd17.zip
Merge pull request #121530 from symphorien/wifireg
nixos: add option to load wireless regulatory database as firmware
-rw-r--r--nixos/modules/hardware/all-firmware.nix12
-rw-r--r--nixos/modules/services/networking/networkmanager.nix3
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix3
3 files changed, 16 insertions, 2 deletions
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix
index 3e88a4c20adc..524dae57010b 100644
--- a/nixos/modules/hardware/all-firmware.nix
+++ b/nixos/modules/hardware/all-firmware.nix
@@ -35,6 +35,14 @@ in {
       '';
     };
 
+    hardware.wirelessRegulatoryDatabase = mkOption {
+      default = false;
+      type = types.bool;
+      description = ''
+        Load the wireless regulatory database at boot.
+      '';
+    };
+
   };
 
 
@@ -58,6 +66,7 @@ in {
         ++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
         rtl8723bs-firmware
       ];
+      hardware.wirelessRegulatoryDatabase = true;
     })
     (mkIf cfg.enableAllFirmware {
       assertions = [{
@@ -75,5 +84,8 @@ in {
         b43FirmwareCutter
       ] ++ optional (pkgs.stdenv.hostPlatform.isi686 || pkgs.stdenv.hostPlatform.isx86_64) facetimehd-firmware;
     })
+    (mkIf cfg.wirelessRegulatoryDatabase {
+      hardware.firmware = [ pkgs.wireless-regdb ];
+    })
   ];
 }
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 064018057cdb..790de4ace012 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -6,7 +6,6 @@ let
   cfg = config.networking.networkmanager;
 
   basePackages = with pkgs; [
-    crda
     modemmanager
     networkmanager
     networkmanager-fortisslvpn
@@ -404,6 +403,8 @@ in {
       }
     ];
 
+    hardware.wirelessRegulatoryDatabase = true;
+
     environment.etc = with pkgs; {
       "NetworkManager/NetworkManager.conf".source = configFile;
 
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index c0a4ce40760a..494d21cc8678 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -241,7 +241,8 @@ in {
     environment.systemPackages = [ package ];
 
     services.dbus.packages = [ package ];
-    services.udev.packages = [ pkgs.crda ];
+
+    hardware.wirelessRegulatoryDatabase = true;
 
     # FIXME: start a separate wpa_supplicant instance per interface.
     systemd.services.wpa_supplicant = let