mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
nixos: add option to load wireless regulatory database as firmware
use it when networkmanager or wpa_supplicant is enabled. fixes #57053 fixes "Direct firmware load for regulatory.db failed with error -2" in dmesg Note that all kernels on unstable are newer that 4.15, which is required for this to work.
This commit is contained in:
parent
900115a4f7
commit
8fe0143d88
|
@ -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") [
|
++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
|
||||||
rtl8723bs-firmware
|
rtl8723bs-firmware
|
||||||
];
|
];
|
||||||
|
hardware.wirelessRegulatoryDatabase = true;
|
||||||
})
|
})
|
||||||
(mkIf cfg.enableAllFirmware {
|
(mkIf cfg.enableAllFirmware {
|
||||||
assertions = [{
|
assertions = [{
|
||||||
|
@ -75,5 +84,8 @@ in {
|
||||||
b43FirmwareCutter
|
b43FirmwareCutter
|
||||||
] ++ optional (pkgs.stdenv.hostPlatform.isi686 || pkgs.stdenv.hostPlatform.isx86_64) facetimehd-firmware;
|
] ++ optional (pkgs.stdenv.hostPlatform.isi686 || pkgs.stdenv.hostPlatform.isx86_64) facetimehd-firmware;
|
||||||
})
|
})
|
||||||
|
(mkIf cfg.wirelessRegulatoryDatabase {
|
||||||
|
hardware.firmware = [ pkgs.wireless-regdb ];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ let
|
||||||
cfg = config.networking.networkmanager;
|
cfg = config.networking.networkmanager;
|
||||||
|
|
||||||
basePackages = with pkgs; [
|
basePackages = with pkgs; [
|
||||||
crda
|
|
||||||
modemmanager
|
modemmanager
|
||||||
networkmanager
|
networkmanager
|
||||||
networkmanager-fortisslvpn
|
networkmanager-fortisslvpn
|
||||||
|
@ -367,6 +366,8 @@ in {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
hardware.wirelessRegulatoryDatabase = true;
|
||||||
|
|
||||||
environment.etc = with pkgs; {
|
environment.etc = with pkgs; {
|
||||||
"NetworkManager/NetworkManager.conf".source = configFile;
|
"NetworkManager/NetworkManager.conf".source = configFile;
|
||||||
|
|
||||||
|
|
|
@ -228,7 +228,8 @@ in {
|
||||||
environment.systemPackages = [ package ];
|
environment.systemPackages = [ package ];
|
||||||
|
|
||||||
services.dbus.packages = [ package ];
|
services.dbus.packages = [ package ];
|
||||||
services.udev.packages = [ pkgs.crda ];
|
|
||||||
|
hardware.wirelessRegulatoryDatabase = true;
|
||||||
|
|
||||||
# FIXME: start a separate wpa_supplicant instance per interface.
|
# FIXME: start a separate wpa_supplicant instance per interface.
|
||||||
systemd.services.wpa_supplicant = let
|
systemd.services.wpa_supplicant = let
|
||||||
|
|
Loading…
Reference in a new issue