From 7449a8e180a9b5c7085434c074462855267b1275007a050cae76c9263b25f36f Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Fri, 26 Jul 2024 14:55:48 +0000 Subject: [PATCH] - Provide fallback in case %_firmwaredir is not defined OBS-URL: https://build.opensuse.org/package/show/hardware/b43-fwcutter?expand=0&rev=32 --- .gitattributes | 23 ++++++ .gitignore | 1 + b43-fwcutter-019.tar.bz2 | 3 + b43-fwcutter.changes | 122 ++++++++++++++++++++++++++++ b43-fwcutter.spec | 168 +++++++++++++++++++++++++++++++++++++++ install_bcm43xx_firmware | 64 +++++++++++++++ 6 files changed, 381 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 b43-fwcutter-019.tar.bz2 create mode 100644 b43-fwcutter.changes create mode 100644 b43-fwcutter.spec create mode 100644 install_bcm43xx_firmware diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/b43-fwcutter-019.tar.bz2 b/b43-fwcutter-019.tar.bz2 new file mode 100644 index 0000000..7e08c62 --- /dev/null +++ b/b43-fwcutter-019.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6ea85310df6ae08e7f7e46d8b975e17fc867145ee249307413cfbe15d7121ce +size 46769 diff --git a/b43-fwcutter.changes b/b43-fwcutter.changes new file mode 100644 index 0000000..208f0d1 --- /dev/null +++ b/b43-fwcutter.changes @@ -0,0 +1,122 @@ +------------------------------------------------------------------- +Wed Mar 20 19:29:54 UTC 2024 - Arjen de Korte + +- Provide fallback in case %_firmwaredir is not defined + +------------------------------------------------------------------- +Sun Apr 18 01:46:07 UTC 2021 - Ferdinand Thiessen + +- Fixed SPEC file: Replace broken URL with current upstream + +------------------------------------------------------------------- +Mon Oct 19 13:04:29 UTC 2020 - Ludwig Nussel + +- use %_firmwaredir + +------------------------------------------------------------------- +Wed Jan 6 20:20:08 UTC 2016 - Larry.Finger@lwfinger.net + +- Update downloaded firmware from version 666.2 to version 784.2. This + release adds firmware for a number of newer devices. Not all of these + are supported by b43, but with this change, the firmware will be + available when any are supported. As Broadcom does not release details + of the changes in their firmware, it is not known what enhancements have + been made to the firmware for older devices. + +------------------------------------------------------------------- +Sun Nov 16 18:43:00 UTC 2014 - Led + +- fix bashism in install_bcm43xx_firmware script + +------------------------------------------------------------------- +Tue Nov 11 19:00:19 UTC 2014 - p.drouand@gmail.com + +- Update to version 019 + + No changelog available + +------------------------------------------------------------------- +Sun Nov 24 18:30:14 UTC 2013 - crrodriguez@opensuse.org + +- Update to version 018 (no changelog) + +------------------------------------------------------------------- +Fri Sep 6 20:43:03 UTC 2013 - crrodriguez@opensuse.org + +- add Supplements for the rest of devices supported by the b43 + and b43legacy drivers. + +------------------------------------------------------------------- +Wed Apr 17 02:39:36 UTC 2013 - jeffm@suse.com + +- Update to v017 (bnc#815700) +- Update source URL for firmware +- removed b43-fwcutter.diff + +------------------------------------------------------------------- +Thu Aug 23 07:13:02 UTC 2012 - cfarrell@suse.com + +- license update: BSD-2-Clause + Only BSD-2-Clause license found in the package + +------------------------------------------------------------------- +Sat Sep 17 16:26:49 UTC 2011 - jengelh@medozas.de + +- Remove redundant tags/sections from specfile +- Use %_smp_mflags for parallel build + +------------------------------------------------------------------- +Sun Aug 21 14:38:00 CST 2011 - Larry.Finger@lwfinger.net + +- Remove 2 files that require 300+ MB downloads +- Add 5 new files with newest firmware (508.X, 644.1001, and 666.2) + * 802.11 cores through rev 22 are supported +- the install_bcm43xx_firmware script now unloads and + reloads the driver so that it will work immediately +- Removed firmware-IDs from fwcutter - they are not maintained in kernel +- Updated Email address for Michael Buesch +- Updated to Revision 15 + +------------------------------------------------------------------- +Tue Jan 12 14:38:00 CST 2010 - Larry.Finger@lwfinger.net + +- Add 2 new files with 478.104 firmware + * 802.11 cores with rev 16 are msupported +- Use ARRAY_SIZE instead of local FILES macro +- Add sparse support, Add quiet build, Add autodependencies + +------------------------------------------------------------------- +Mon Aug 3 11:56:39 UTC 2009 - cstender@novell.com + +- updated to version 012 + * don't extract core 4 firmware from V4 drivers + +------------------------------------------------------------------- +Mon Feb 9 13:54:25 CET 2009 - cstender@suse.de + +- %ghost b43 and b43legacy firmware (bnc#466113) + +------------------------------------------------------------------- +Fri Apr 11 14:04:45 CEST 2008 - cstender@suse.de + +- added curl to requires +- improved install_bcm43xx_firmware script + +------------------------------------------------------------------- +Thu Apr 10 14:34:00 CEST 2008 - cstender@suse.de + +- updated to version 011 +- added supplement tag so package gets installed when a bcm43xx + card is detected +- added install_bcm43xx_firmware script which downloads and + extracts firmware files + +------------------------------------------------------------------- +Sun Mar 16 07:31:01 CET 2008 - coolo@suse.de + +- correctly replace the old name + +------------------------------------------------------------------- +Thu Jan 10 16:51:20 CET 2008 - cstender@suse.de + +- initial package (version 009) + diff --git a/b43-fwcutter.spec b/b43-fwcutter.spec new file mode 100644 index 0000000..866766c --- /dev/null +++ b/b43-fwcutter.spec @@ -0,0 +1,168 @@ +# +# spec file for package b43-fwcutter +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{!?_firmwaredir: %global _firmwaredir /lib/firmware} + +Name: b43-fwcutter +Version: 019 +Release: 0 +Summary: Tool for extracting firmware from newer Broadcom WLAN drivers +License: BSD-2-Clause +Group: Hardware/Wifi +URL: https://bues.ch/cms/hacking/misc.html#linux_b43_driver_firmware_tools +Source: http://bues.ch/b43/fwcutter/%{name}-%{version}.tar.bz2 +Source1: install_bcm43xx_firmware +Requires: curl +Supplements: modalias(pci:v000014E4d000043*sv*sd*bc*sc*i*) +#b43legacy +Supplements: modalias(ssb:v4243id0812rev04*) +Supplements: modalias(ssb:v4243id0812rev02*) +#b43 +Supplements: modalias(pcmcia:m02D0c0476f*fn*pfn*pa*pb*pc*pd*) +Supplements: modalias(pcmcia:m02D0c0448f*fn*pfn*pa*pb*pc*pd*) +Supplements: modalias(bcma:m04BFid0812rev1Dcl*) +Supplements: modalias(bcma:m04BFid0812rev18cl*) +Supplements: modalias(bcma:m04BFid0812rev17cl*) +Supplements: modalias(bcma:m04BFid0812rev11cl*) +Supplements: modalias(ssb:v4243id0812rev10*) +Supplements: modalias(ssb:v4243id0812rev0F*) +Supplements: modalias(ssb:v4243id0812rev0D*) +Supplements: modalias(ssb:v4243id0812rev0C*) +Supplements: modalias(ssb:v4243id0812rev0B*) +Supplements: modalias(ssb:v4243id0812rev0A*) +Supplements: modalias(ssb:v4243id0812rev09*) +Supplements: modalias(ssb:v4243id0812rev07*) +Supplements: modalias(ssb:v4243id0812rev06*) +Supplements: modalias(ssb:v4243id0812rev05*) + +Obsoletes: bcm43xx-fwcutter < %{version} +Provides: bcm43xx-fwcutter = %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +b43-fwcutter can be used to extract firmware from Windows WLAN drivers +for Broadcom bcm43xx devices. The firmware is necessary to run such a +card under Linux using the b43 or b43legacy driver. + +%prep +%setup -q + +%build +make CFLAGS="%{optflags}" %{?_smp_mflags} + +%install +#make PREFIX=%%{buildroot}/usr \ +# MANDIR=%%{buildroot}/%%{_mandir} install +mkdir -p %{buildroot}%{_bindir}/ +mkdir -p %{buildroot}%{_sbindir}/ +install -m 755 b43-fwcutter %{buildroot}%{_bindir}/ +install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/ +sed -i -e 's,/lib/firmware,%{_firmwaredir},' %{buildroot}%{_sbindir}/install_bcm43xx_firmware +mkdir -p %{buildroot}%{_firmwaredir}/b43/ +mkdir -p %{buildroot}%{_firmwaredir}/b43legacy/ +for i in a0g0bsinitvals5.fw a0g0bsinitvals9.fw a0g0initvals5.fw a0g0initvals9.fw a0g1bsinitvals13.fw a0g1bsinitvals5.fw a0g1bsinitvals9.fw a0g1initvals13.fw a0g1initvals5.fw a0g1initvals9.fw b0g0bsinitvals13.fw b0g0bsinitvals5.fw b0g0bsinitvals9.fw b0g0initvals13.fw b0g0initvals5.fw b0g0initvals9.fw lp0bsinitvals13.fw lp0bsinitvals14.fw lp0bsinitvals15.fw lp0bsinitvals16.fw lp0initvals13.fw lp0initvals14.fw lp0initvals15.fw lp0initvals16.fw n0absinitvals11.fw n0bsinitvals11.fw n0bsinitvals16.fw n0initvals11.fw n0initvals16.fw pcm5.fw sslpn0bsinitvals16.fw sslpn0initvals16.fw sslpn1bsinitvals20.fw sslpn1initvals20.fw sslpn2bsinitvals17.fw sslpn2bsinitvals19.fw sslpn2initvals17.fw sslpn2initvals19.fw sslpn4bsinitvals22.fw sslpn4initvals22.fw ucode11.fw ucode13.fw ucode14.fw ucode15.fw ucode16_lp.fw ucode16_mimo.fw ucode16_sslpn.fw ucode16_sslpn_nobt.fw ucode17.fw ucode19.fw ucode20.fw ucode22_sslpn.fw ucode5.fw ucode9.fw +do + touch %{buildroot}%{_firmwaredir}/b43/$i +done +for j in a0g0bsinitvals2.fw a0g0bsinitvals5.fw a0g0initvals2.fw a0g0initvals5.fw a0g1bsinitvals5.fw a0g1initvals5.fw b0g0bsinitvals2.fw b0g0bsinitvals5.fw b0g0initvals2.fw b0g0initvals5.fw pcm4.fw pcm5.fw ucode11.fw ucode2.fw ucode4.fw ucode5.fw +do + touch %{buildroot}%{_firmwaredir}/b43legacy/$j +done + +%files +%defattr(-, root, root) +%doc README +%{_bindir}/b43-fwcutter +%{_sbindir}/install_bcm43xx_firmware +#%%{_mandir}/man1/b43-fwcutter.1.gz +%dir %{_firmwaredir}/b43 +%dir %{_firmwaredir}/b43legacy +# ghost b43 firmware +%ghost %{_firmwaredir}/b43/a0g0bsinitvals5.fw +%ghost %{_firmwaredir}/b43/a0g0bsinitvals9.fw +%ghost %{_firmwaredir}/b43/a0g0initvals5.fw +%ghost %{_firmwaredir}/b43/a0g0initvals9.fw +%ghost %{_firmwaredir}/b43/a0g1bsinitvals13.fw +%ghost %{_firmwaredir}/b43/a0g1bsinitvals5.fw +%ghost %{_firmwaredir}/b43/a0g1bsinitvals9.fw +%ghost %{_firmwaredir}/b43/a0g1initvals13.fw +%ghost %{_firmwaredir}/b43/a0g1initvals5.fw +%ghost %{_firmwaredir}/b43/a0g1initvals9.fw +%ghost %{_firmwaredir}/b43/b0g0bsinitvals13.fw +%ghost %{_firmwaredir}/b43/b0g0bsinitvals5.fw +%ghost %{_firmwaredir}/b43/b0g0bsinitvals9.fw +%ghost %{_firmwaredir}/b43/b0g0initvals13.fw +%ghost %{_firmwaredir}/b43/b0g0initvals5.fw +%ghost %{_firmwaredir}/b43/b0g0initvals9.fw +%ghost %{_firmwaredir}/b43/lp0bsinitvals13.fw +%ghost %{_firmwaredir}/b43/lp0bsinitvals14.fw +%ghost %{_firmwaredir}/b43/lp0bsinitvals15.fw +%ghost %{_firmwaredir}/b43/lp0bsinitvals16.fw +%ghost %{_firmwaredir}/b43/lp0initvals13.fw +%ghost %{_firmwaredir}/b43/lp0initvals14.fw +%ghost %{_firmwaredir}/b43/lp0initvals15.fw +%ghost %{_firmwaredir}/b43/lp0initvals16.fw +%ghost %{_firmwaredir}/b43/n0absinitvals11.fw +%ghost %{_firmwaredir}/b43/n0bsinitvals11.fw +%ghost %{_firmwaredir}/b43/n0bsinitvals16.fw +%ghost %{_firmwaredir}/b43/n0initvals11.fw +%ghost %{_firmwaredir}/b43/n0initvals16.fw +%ghost %{_firmwaredir}/b43/pcm5.fw +%ghost %{_firmwaredir}/b43/sslpn0bsinitvals16.fw +%ghost %{_firmwaredir}/b43/sslpn0initvals16.fw +%ghost %{_firmwaredir}/b43/sslpn1bsinitvals20.fw +%ghost %{_firmwaredir}/b43/sslpn1initvals20.fw +%ghost %{_firmwaredir}/b43/sslpn2bsinitvals17.fw +%ghost %{_firmwaredir}/b43/sslpn2bsinitvals19.fw +%ghost %{_firmwaredir}/b43/sslpn2initvals17.fw +%ghost %{_firmwaredir}/b43/sslpn2initvals19.fw +%ghost %{_firmwaredir}/b43/sslpn4bsinitvals22.fw +%ghost %{_firmwaredir}/b43/sslpn4initvals22.fw +%ghost %{_firmwaredir}/b43/ucode11.fw +%ghost %{_firmwaredir}/b43/ucode13.fw +%ghost %{_firmwaredir}/b43/ucode14.fw +%ghost %{_firmwaredir}/b43/ucode15.fw +%ghost %{_firmwaredir}/b43/ucode16_lp.fw +%ghost %{_firmwaredir}/b43/ucode16_mimo.fw +%ghost %{_firmwaredir}/b43/ucode16_sslpn.fw +%ghost %{_firmwaredir}/b43/ucode16_sslpn_nobt.fw +%ghost %{_firmwaredir}/b43/ucode17.fw +%ghost %{_firmwaredir}/b43/ucode19.fw +%ghost %{_firmwaredir}/b43/ucode20.fw +%ghost %{_firmwaredir}/b43/ucode22_sslpn.fw +%ghost %{_firmwaredir}/b43/ucode5.fw +%ghost %{_firmwaredir}/b43/ucode9.fw +# ghost b43legacy firmware +%ghost %{_firmwaredir}/b43legacy/a0g0bsinitvals2.fw +%ghost %{_firmwaredir}/b43legacy/a0g0bsinitvals5.fw +%ghost %{_firmwaredir}/b43legacy/a0g0initvals2.fw +%ghost %{_firmwaredir}/b43legacy/a0g0initvals5.fw +%ghost %{_firmwaredir}/b43legacy/a0g1bsinitvals5.fw +%ghost %{_firmwaredir}/b43legacy/a0g1initvals5.fw +%ghost %{_firmwaredir}/b43legacy/b0g0bsinitvals2.fw +%ghost %{_firmwaredir}/b43legacy/b0g0bsinitvals5.fw +%ghost %{_firmwaredir}/b43legacy/b0g0initvals2.fw +%ghost %{_firmwaredir}/b43legacy/b0g0initvals5.fw +%ghost %{_firmwaredir}/b43legacy/pcm4.fw +%ghost %{_firmwaredir}/b43legacy/pcm5.fw +%ghost %{_firmwaredir}/b43legacy/ucode11.fw +%ghost %{_firmwaredir}/b43legacy/ucode2.fw +%ghost %{_firmwaredir}/b43legacy/ucode4.fw +%ghost %{_firmwaredir}/b43legacy/ucode5.fw + +%changelog diff --git a/install_bcm43xx_firmware b/install_bcm43xx_firmware new file mode 100644 index 0000000..d6a570f --- /dev/null +++ b/install_bcm43xx_firmware @@ -0,0 +1,64 @@ +#!/bin/sh +# +# install_bcm43xx_firmware +# +# This script tries to download and install the firmware needed to run +# WLAN cards using Broadcom's bcm43xx chips. + +# firmware for b43 +URL1=http://www.lwfinger.com/b43-firmware +FILE1=broadcom-wl-6.30.163.46.tar.bz2 +FIRMWARE1=broadcom-wl-6.30.163.46.wl_apsta.o + +# firmware for b43legacy +URL2=http://downloads.openwrt.org/sources +FILE2=wl_apsta-3.130.20.0.o + +test -z "$( type -p curl)" && { echo "'curl' is not installed, aborting. Please install 'curl' and try again."; exit 1; } +test -z "$( type -p b43-fwcutter)" && { echo "'b43-fwcutter' is not installed, aborting. Please install 'b43-fwcutter' and try again."; exit 1; } +test -d /lib/firmware || mkdir -p /lib/firmware + +TMPDIR=$(mktemp -d /var/tmp/bcm.XXXXXX) || exit 1 + +cd $TMPDIR + +echo "Downloading b43 firmware" +curl -# -f -o $FILE1 $URL1/$FILE1 +if [ $? -eq 0 ];then + echo "Extracting b43 firmware" + tar xjf $FILE1 + b43-fwcutter -w /lib/firmware $FIRMWARE1 +else + echo "Could not download b43 firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README." +fi + +echo +echo "Downloading b43legacy firmware" +curl -# -f -o $FILE2 $URL2/$FILE2 +if [ $? -eq 0 ];then + echo "Extracting b43legacy firmware" + b43-fwcutter -w /lib/firmware $FILE2 +else + echo "Could not download b43legacy firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README." +fi + +echo +if [ -d /lib/firmware/b43 ] ; then + echo "b43 firmware successfully installed." + /sbin/modprobe -r b43 + /sbin/modprobe b43 +else + echo "b43 firmware installation failed." +fi +if [ -d /lib/firmware/b43legacy ] ; then + echo "b43legacy firmware successfully installed." + /sbin/modprobe -r b43legacy + /sbin/modprobe b43legacy +else + echo "b43legacy firmware installation failed." +fi + +cd - >/dev/null +rm -rf $TMPDIR + +exit 0