forked from DGNum/liminix
65479e206b
the kernel on most devices is now newer than the version that the backported drivers were backported from
60 lines
1.6 KiB
Nix
60 lines
1.6 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";
|
|
|
|
WLAN = "y";
|
|
CFG80211 = "m";
|
|
MAC80211 = "m";
|
|
EXPERT = "y";
|
|
CFG80211_CERTIFICATION_ONUS = "y";
|
|
CFG80211_REQUIRE_SIGNED_REGDB = "n"; # depends on ONUS
|
|
CFG80211_CRDA_SUPPORT = "n";
|
|
};
|
|
};
|
|
};
|
|
}
|