liminix

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

wlan.nix (1586B)


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