- Package:
- src:firmware-nonfree
- Source:
- firmware-nonfree
- Submitter:
- Peter Nelson
- Date:
- 2021-03-26 08:21:03 UTC
- Severity:
- wishlist
- Tags:
The firmware files required when using an Adaptec Starfire-based network card using the kernel driver starfire.ko are missing. They are in neither the linux-image package, nor firmware-linux-free or firmware-linux-nonfree. Without the firmware the card is detected but attempting to bring it up fails: [ 354.472460] starfire 0000:0b:04.0: firmware: requesting adaptec/starfire_rx.bin [ 354.475973] starfire: Failed to load firmware "adaptec/starfire_rx.bin" Additionally I used apt-get source to on linux-source-2.6, firmware-linux-free and firmware-linux-nonfree, and none of the source packages contained the firmware source. Finally I downloaded vanilla source of linux-2.6.32.27.tar.bz2 from ftp.kernel.org, and the source for this firmware IS contained there.
reassign 651443 src:firmware-nonfree 0.28+squeeze1 quit Hi, Peter Nelson wrote: Hmm. From WHENCE in the linux-firmware repository[1]: | Driver: starfire - Adaptec Starfire/DuraLAN support | | File: adaptec/starfire_rx.bin | File: adaptec/starfire_tx.bin | | Licence: Allegedly GPLv2, but no source visible. Which means we do not have permission to distribute that version without source. However, at [2], I see: | FreeBSD appears to have copied the proper copyright notices into their | versions of the firmware: | http://fxr.watson.org/fxr/source/dev/sf/starfire_rx.h | http://fxr.watson.org/fxr/source/dev/sf/starfire_tx.h | | "(c)2001 Adaptec, Inc. By using this software you agree that it is | licensed to you "AS IS" and that Adaptec makes no warranties, | express or implied, regarding the Software. | Any redistribution of this Software must include this disclaimer and | copyright notice." That doesn't actually say that redistribution is allowed, either. :/ FreeBSD's changelog for these files says | Import AIC-6915 firmware for GFP from Adaptec. | Special thanks to bruffer to send the firmware image to me. | | Submitted by: gibbs via bruffer which sounds legit to me. What's the next step? Thanks and hope that helps, Jonathan [1] git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git [2] http://bugs.debian.org/501152#20
Note that these byte arrays aren't the same as the files in linux- firmware.git. I was able to shuffle the bytes into the order that Linux expects like this: def shuffle(b): r = [] for i in range(0, len(b), 6): r.extend(b[i+2:i+6]) r.extend([0, 0]) r.extend(b[i:i+2]) return r The code then turned out to be slightly different. The processor (GFP) appears to implement a custom architecture, but amazingly it's documented in chapter 5 of <http://download.adaptec.com/pdfs/user_guides/aic6915_pg.pdf>. In theory, someone could write an assembler and disassembler for the GFP and then create a new preferred form for modification. [...] I think it's very strongly implicit, though. Ben.