225fc6fe51
allows modules to add to the busybox applets and change config
52 lines
1.4 KiB
Nix
52 lines
1.4 KiB
Nix
{ lib, pkgs, config, ...}:
|
|
let
|
|
inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
|
|
inherit (pkgs.pseudofile) dir symlink;
|
|
inherit (pkgs) stdenv wireless-regdb;
|
|
regulatory = stdenv.mkDerivation {
|
|
name = "regulatory.db";
|
|
phases = ["installPhase"];
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp ${wireless-regdb}/lib/firmware/regulatory.db $out/
|
|
'';
|
|
};
|
|
in {
|
|
config = {
|
|
filesystem = dir {
|
|
lib = dir {
|
|
firmware = dir {
|
|
"regulatory.db" = symlink "${regulatory}/regulatory.db";
|
|
};
|
|
};
|
|
};
|
|
programs.busybox.applets = [
|
|
"insmod" "rmmod"
|
|
];
|
|
kernel = rec {
|
|
config = {
|
|
# Most of this is necessary infra to allow wireless stack/
|
|
# drivers to be built as module
|
|
ASN1 = "y";
|
|
ASYMMETRIC_KEY_TYPE = "y";
|
|
ASYMMETRIC_PUBLIC_KEY_SUBTYPE = "y";
|
|
CRC_CCITT = "y";
|
|
CRYPTO = "y";
|
|
CRYPTO_ARC4 = "y";
|
|
CRYPTO_CBC = "y";
|
|
CRYPTO_CCM = "y";
|
|
CRYPTO_CMAC = "y";
|
|
CRYPTO_GCM = "y";
|
|
CRYPTO_HASH_INFO = "y";
|
|
CRYPTO_USER_API = "y"; # ARC4 needs this
|
|
CRYPTO_USER_API_HASH = "y";
|
|
CRYPTO_USER_API_ENABLE_OBSOLETE = "y"; # ARC4 needs this
|
|
CRYPTO_LIB_ARC4 = "y"; # for WEP
|
|
CRYPTO_RSA = "y";
|
|
CRYPTO_SHA1 = "y";
|
|
ENCRYPTED_KEYS = "y";
|
|
KEYS = "y";
|
|
};
|
|
};
|
|
};
|
|
}
|