diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index a3821e9738a6..37a9f4d0d314 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -25,6 +25,7 @@ with lib; config = mkIf config.hardware.enableAllFirmware { hardware.firmware = [ "${pkgs.firmwareLinuxNonfree}/lib/firmware" + "${pkgs.iwlegacy}/lib/firmware" "${pkgs.iwlwifi}/lib/firmware" ]; }; diff --git a/pkgs/os-specific/linux/firmware/iwlegacy/default.nix b/pkgs/os-specific/linux/firmware/iwlegacy/default.nix new file mode 100644 index 000000000000..48472c96659c --- /dev/null +++ b/pkgs/os-specific/linux/firmware/iwlegacy/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl }: + +let + packages = [ + # Kernel 2.6.28+ + { name = "4965-ucode-228.61.2.24"; sha256 = "1n5af3cci0v40w4gr0hplqr1lfvhghlbzdbf60d6185vpcny2l5m"; } + + # Kernel 2.6.29+ + { name = "3945-ucode-15.32.2.9"; sha256 = "0baf07lblwsq841zdcj9hicf11jiq06sz041qcybc6l8yyhhcqjk"; } + ]; + + fetchPackage = + { name, sha256 }: fetchurl { + name = "iwlwifi-${name}.tgz"; + url = "http://wireless.kernel.org/en/users/Drivers/iwlegacy?action=AttachFile&do=get&target=iwlwifi-${name}.tgz"; + inherit sha256; + }; + + srcs = map fetchPackage packages; + +in stdenv.mkDerivation { + name = "iwlegacy"; + inherit srcs; + + unpackPhase = '' + mkdir -p ./firmware + ''; + + buildPhase = '' + for src in $srcs; do + tar zxf $src + done + ''; + + installPhase = '' + mkdir -p $out/lib/firmware + cp -r iwlwifi-*/*.ucode "$out/lib/firmware/" + ''; + + meta = { + description = "Binary firmware collection from intel"; + homepage = http://wireless.kernel.org/en/users/Drivers/iwlwifi; + license = stdenv.lib.licenses.unfreeRedistributableFirmware; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ ttuegel ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9722bf25cc8f..68712a254ed4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8131,6 +8131,8 @@ let iwlwifi = callPackage ../os-specific/linux/firmware/iwlwifi { }; + iwlegacy = callPackage ../os-specific/linux/firmware/iwlegacy { }; + jujuutils = callPackage ../os-specific/linux/jujuutils { }; kbd = callPackage ../os-specific/linux/kbd { };