Merge pull request #25478 from zraexy/zraexy-broadcom-bt-firmware

broadcom-bt-firmware: init at 12.0.1.1011

authored by Jörg Thalheim and committed by GitHub 3156ef2d d75ae6de

+95
+1
nixos/modules/hardware/all-firmware.nix
··· 23 23 24 24 config = mkIf config.hardware.enableAllFirmware { 25 25 hardware.firmware = with pkgs; [ 26 + broadcom-bt-firmware 26 27 firmwareLinuxNonfree 27 28 intel2200BGFirmware 28 29 rtl8723bs-firmware
+42
pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix
··· 1 + { stdenv, fetchurl, cabextract, bt-fw-converter }: 2 + 3 + # Kernels between 4.2 and 4.7 will not work with 4 + # this packages as they expect the firmware to be named "BCM.hcd" 5 + # see: https://github.com/NixOS/nixpkgs/pull/25478#issuecomment-299034865 6 + stdenv.mkDerivation rec { 7 + name = "broadcom-bt-firmware-${version}"; 8 + version = "12.0.1.1011"; 9 + 10 + src = fetchurl { 11 + url = "http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2016/11/200033618_94cfea9130b30c04bc602cd3dcc1f9a793fc75bb.cab"; 12 + sha256 = "6091e49c9d9c71cbe3aed2db3c0d60994ff562804c3b40e1e8bcbb818180987b"; 13 + }; 14 + 15 + nativeBuildInputs = [ cabextract bt-fw-converter ]; 16 + 17 + unpackCmd = '' 18 + mkdir -p ${name} 19 + cabextract $src --directory ${name} 20 + ''; 21 + 22 + installPhase = '' 23 + mkdir -p $out/lib/firmware/brcm 24 + bt-fw-converter -f bcbtums.inf -o $out/lib/firmware/brcm 25 + for filename in $out/lib/firmware/brcm/*.hcd 26 + do 27 + 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] }') 28 + if ! [ -z $linkname ] 29 + then 30 + ln -s -T $filename $out/lib/firmware/brcm/$linkname 31 + fi 32 + done 33 + ''; 34 + 35 + meta = with stdenv.lib; { 36 + description = "Firmware for Broadcom WIDCOMM® Bluetooth devices"; 37 + homepage = http://www.catalog.update.microsoft.com/Search.aspx?q=Broadcom+bluetooth; 38 + license = licenses.unfree; 39 + platforms = platforms.linux; 40 + maintainers = with maintainers; [ zraexy ]; 41 + }; 42 + }
+35
pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
··· 1 + { stdenv, fetchurl, makeWrapper, perl, perlPackages, bluez }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "bt-fw-converter-${version}"; 5 + version = "2017-02-19"; 6 + rev = "2d8b34402df01c6f7f4b8622de9e8b82fadf4153"; 7 + 8 + src = fetchurl { 9 + url = "https://raw.githubusercontent.com/winterheart/broadcom-bt-firmware/${rev}/tools/bt-fw-converter.pl"; 10 + sha256 = "c259b414a4a273c89a0fa7159b3ef73d1ea62b6de91c3a7c2fcc832868e39f4b"; 11 + }; 12 + 13 + nativeBuildInputs = [ makeWrapper ]; 14 + 15 + buildInputs = [ perl perlPackages.RegexpGrammars bluez ]; 16 + 17 + unpackCmd = '' 18 + mkdir -p ${name} 19 + cp $src ${name}/bt-fw-converter.pl 20 + ''; 21 + 22 + installPhase = '' 23 + install -D -m755 bt-fw-converter.pl $out/bin/bt-fw-converter 24 + substituteInPlace $out/bin/bt-fw-converter --replace /usr/bin/hex2hcd ${bluez}/bin/hex2hcd 25 + wrapProgram $out/bin/bt-fw-converter --set PERL5LIB $PERL5LIB 26 + ''; 27 + 28 + meta = with stdenv.lib; { 29 + homepage = https://github.com/winterheart/broadcom-bt-firmware/; 30 + description = "A tool that converts hex to hcd based on inf file"; 31 + license = licenses.mit; 32 + platforms = platforms.linux; 33 + maintainers = with maintainers; [ zraexy ]; 34 + }; 35 + }
+4
pkgs/top-level/all-packages.nix
··· 11355 11355 b43Firmware_6_30_163_46 = callPackage ../os-specific/linux/firmware/b43-firmware/6.30.163.46.nix { }; 11356 11356 11357 11357 b43FirmwareCutter = callPackage ../os-specific/linux/firmware/b43-firmware-cutter { }; 11358 + 11359 + bt-fw-converter = callPackage ../os-specific/linux/firmware/bt-fw-converter { }; 11360 + 11361 + broadcom-bt-firmware = callPackage ../os-specific/linux/firmware/broadcom-bt-firmware { }; 11358 11362 11359 11363 batctl = callPackage ../os-specific/linux/batman-adv/batctl.nix { }; 11360 11364
+13
pkgs/top-level/perl-packages.nix
··· 11317 11317 sha256 = "09c8xb43p1s6ala6g4274az51mf33phyjkp66dpvgkgbi1xfnawp"; 11318 11318 }; 11319 11319 }; 11320 + 11321 + RegexpGrammars = buildPerlPackage rec { 11322 + name = "Regexp-Grammars-1.045"; 11323 + src = fetchurl { 11324 + url = "mirror://cpan/authors/id/D/DC/DCONWAY/${name}.tar.gz"; 11325 + sha256 = "8ab001f5641d03f7acce09ca5826b219b02ce40f8e56c2066737228a9232b594"; 11326 + }; 11327 + meta = { 11328 + homepage = http://search.cpan.org/~dconway/Regexp-Grammars-1.045/lib/Regexp/Grammars.pm; 11329 + description = "Add grammatical parsing features to Perl 5.10 regexes"; 11330 + license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; 11331 + }; 11332 + }; 11320 11333 11321 11334 RegexpIPv6 = buildPerlPackage { 11322 11335 name = "Regexp-IPv6-0.03";