diff options
-rw-r--r-- | nixos/modules/hardware/all-firmware.nix | 1 | ||||
-rw-r--r-- | pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix | 39 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
3 files changed, 42 insertions, 0 deletions
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index bc82bfd066c3..6e7f0bb491a1 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -23,6 +23,7 @@ with lib; config = mkIf config.hardware.enableAllFirmware { hardware.firmware = with pkgs; [ + broadcom-bt-firmware firmwareLinuxNonfree intel2200BGFirmware rtl8723bs-firmware diff --git a/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix b/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix new file mode 100644 index 000000000000..bac0ad14fdc7 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, cabextract, bt-fw-converter }: + +stdenv.mkDerivation rec { + name = "broadcom-bt-firmware-${version}"; + version = "12.0.1.1011"; + + src = fetchurl { + url = "http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2016/11/200033618_94cfea9130b30c04bc602cd3dcc1f9a793fc75bb.cab"; + sha256 = "6091e49c9d9c71cbe3aed2db3c0d60994ff562804c3b40e1e8bcbb818180987b"; + }; + + nativeBuildInputs = [ cabextract bt-fw-converter ]; + + unpackCmd = '' + mkdir -p ${name} + cabextract $src --directory ${name} + ''; + + installPhase = '' + mkdir -p $out/lib/firmware/brcm + bt-fw-converter -f bcbtums.inf -o $out/lib/firmware/brcm + for filename in $out/lib/firmware/brcm/*.hcd + do + linkname=$(basename $filename | awk 'match($0,/^(BCM)[0-9A-Z]+(-[0-9a-z]{4}-[0-9a-z]{4}\.hcd)$/,c) { print c[1]c[2] }') + if ! [ -z $linkname ] + then + ln -s -T $filename $out/lib/firmware/brcm/$linkname + fi + done + ''; + + meta = with stdenv.lib; { + description = "Firmware for Broadcom WIDCOMM® Bluetooth devices"; + homepage = http://www.catalog.update.microsoft.com/Search.aspx?q=Broadcom+bluetooth; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ zraexy ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3285c2a60b78..6c893722638d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11355,6 +11355,8 @@ with pkgs; bt-fw-converter = callPackage ../os-specific/linux/firmware/bt-fw-converter { }; + broadcom-bt-firmware = callPackage ../os-specific/linux/firmware/broadcom-bt-firmware { }; + batctl = callPackage ../os-specific/linux/batman-adv/batctl.nix { }; blktrace = callPackage ../os-specific/linux/blktrace { }; |