summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix1
-rw-r--r--nixos/modules/hardware/all-firmware.nix2
-rw-r--r--nixos/modules/hardware/network/intel-2200bg.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix34
-rw-r--r--pkgs/top-level/all-packages.nix2
5 files changed, 39 insertions, 2 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 808d78d499d..094eaea56e6 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -184,6 +184,7 @@
   lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
   lsix = "Lancelot SIX <lsix@lancelotsix.com>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
+  lukasepple = "Lukas Epple <post@lukasepple.de>";
   lukego = "Luke Gorrie <luke@snabb.co>";
   luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
   lw = "Sergey Sofeychuk <lw@fmap.me>";
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix
index 1a04baef193..d0d481f72a4 100644
--- a/nixos/modules/hardware/all-firmware.nix
+++ b/nixos/modules/hardware/all-firmware.nix
@@ -22,7 +22,7 @@ with lib;
   ###### implementation
 
   config = mkIf config.hardware.enableAllFirmware {
-    hardware.firmware = [ pkgs.firmwareLinuxNonfree ];
+    hardware.firmware = [ pkgs.firmwareLinuxNonfree pkgs.intel2200BGFirmware ];
   };
 
 }
diff --git a/nixos/modules/hardware/network/intel-2200bg.nix b/nixos/modules/hardware/network/intel-2200bg.nix
index 1b70057d135..17b973474c9 100644
--- a/nixos/modules/hardware/network/intel-2200bg.nix
+++ b/nixos/modules/hardware/network/intel-2200bg.nix
@@ -23,7 +23,7 @@
 
   config = lib.mkIf config.networking.enableIntel2200BGFirmware {
 
-    hardware.enableAllFirmware = true;
+    hardware.firmware = [ pkgs.intel2200BGFirmware ];
 
   };
 
diff --git a/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix b/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix
new file mode 100644
index 00000000000..f5b6abdd9c7
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl }:
+
+let version = "3.1"; in
+
+stdenv.mkDerivation {
+  name = "intel2200BGFirmware-${version}";
+
+  src = fetchurl {
+    url = "http://pkgs.fedoraproject.org/repo/pkgs/ipw2200-firmware/ipw2200-fw-${version}.tgz/eaba788643c7cc7483dd67ace70f6e99/ipw2200-fw-${version}.tgz";
+    sha256 = "c6818c11c18cc030d55ff83f64b2bad8feef485e7742f84f94a61d811a6258bd";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/lib/firmware
+    for fw in \
+      ipw2200-bss.fw \
+      ipw2200-ibss.fw \
+      ipw2200-sniffer.fw
+    do
+      cp -f $fw $out/lib/firmware/$fw
+    done
+    mkdir -p $out/share/doc/intel2200BGFirmware
+    cp -f LICENSE.ipw2200-fw $out/share/doc/intel2200BGFirmware/LICENSE
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Firmware for Intel 2200BG cards";
+    homepage = http://ipw2200.sourceforge.net/firmware.php;
+    license = stdenv.lib.licenses.unfreeRedistributableFirmware;
+    maintainers = with maintainers; [ lukasepple ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 635f0125f2f..0f4534bbdc6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10073,6 +10073,8 @@ let
 
   ima-evm-utils = callPackage ../os-specific/linux/ima-evm-utils { };
 
+  intel2200BGFirmware = callPackage ../os-specific/linux/firmware/intel2200BGFirmware { };
+
   iomelt = callPackage ../os-specific/linux/iomelt { };
 
   iotop = callPackage ../os-specific/linux/iotop { };