liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

wlan.nix (1638B)


      1 { lib, pkgs, config, ...}:
      2 let
      3   inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
      4   inherit (pkgs.pseudofile) dir symlink;
      5   inherit (pkgs) stdenv wireless-regdb;
      6   regulatory = stdenv.mkDerivation {
      7     name = "regulatory.db";
      8     phases = ["installPhase"];
      9     installPhase = ''
     10       mkdir -p $out
     11       cp ${wireless-regdb}/lib/firmware/regulatory.db $out/
     12     '';
     13   };
     14 in {
     15   config = {
     16     filesystem = dir {
     17       lib = dir {
     18         firmware = dir {
     19           "regulatory.db" = symlink "${regulatory}/regulatory.db";
     20         };
     21       };
     22     };
     23     programs.busybox.applets = [
     24       "insmod" "rmmod"
     25     ];
     26     kernel = rec {
     27       config = {
     28         # Most of this is necessary infra to allow wireless stack/
     29         # drivers to be built as module
     30         ASN1 = "y";
     31         ASYMMETRIC_KEY_TYPE = "y";
     32         ASYMMETRIC_PUBLIC_KEY_SUBTYPE = "y";
     33         CRC_CCITT = "y";
     34         CRYPTO = "y";
     35         CRYPTO_ARC4 = "y";
     36         CRYPTO_CBC = "y";
     37         CRYPTO_CCM = "y";
     38         CRYPTO_CMAC = "y";
     39         CRYPTO_GCM = "y";
     40         CRYPTO_HASH_INFO = "y";
     41         CRYPTO_USER_API = "y"; # ARC4 needs this
     42         CRYPTO_USER_API_HASH = "y";
     43         CRYPTO_USER_API_ENABLE_OBSOLETE = "y"; # ARC4 needs this
     44         CRYPTO_LIB_ARC4 = "y"; # for WEP
     45         CRYPTO_RSA = "y";
     46         CRYPTO_SHA1 = "y";
     47         ENCRYPTED_KEYS = "y";
     48         KEYS = "y";
     49 
     50         WLAN = "y";
     51         CFG80211 = "m";
     52         MAC80211 = "m";
     53         EXPERT = "y";
     54         CFG80211_CERTIFICATION_ONUS = "y";
     55         CFG80211_REQUIRE_SIGNED_REGDB = "n"; # depends on ONUS
     56         CFG80211_CRDA_SUPPORT = "n";
     57       };
     58     };
     59   };
     60 }