Daniel Lenski wrote:
> On Thu, Sep 3, 2009 at 5:25 PM, Daniel Lenski <dlen...@gmail.com> wrote:
>> I have not found any other source of these, unfortunately.  I am happy
>> to send the extracted firmware to developers off-list if desired.
>> Linksys's less-than-helpful GPL source code page gives no indication of
>> the age or date of the various files, so it's hard for me to tell which
>> might be newer without downloading many Gb and extracting many
>> firmwares.  I have half a mind to write a Python script...
> 
> Hi all,
> 
> Since starting this thread, I've search around more to find b43
> firmware.  I wrote a script to automatically download, unpack, and
> scour each and every one of the Linksys GPL packages
> (http://www.linksysbycisco.com/US/en/supportgplcode) for firmware.
> 
> I found some interesting things in the process, including several new
> firmware versions.  Perhaps most interestingly, I found  Broadcom WL
> drivers built for a 2.6.x kernel.  If you grab the file
> WAG54GX2_A_v1009_UK_GPL.tgz from Linksys, there's a file
> src.GPL/driver/2.6.8.1/extra/wl.ko containing firmware.  Very
> intriguing.
> 
> Also, I wrote a pure-Python version of b43-fwcutter (attached) to
> facilitate this automated firmware extraction, based on mklist.py.
> Just point it at a binary containing firmware, and it will (a) find
> the firmware in the manner of mklist.py, and (b) extract it in the
> manner of b43-fwcutter.c.  It produces identical firmware files as the
> C version of b43-fwcutter, and may be useful if experimenting with
> different firmware versions.
> 
> In the process of writing the Python code, I think I found an
> endian-related bug in b43-fwcutter.c.  It mangles the byte order of
> firmware instructions and as a result the analyse_ucode() routine
> doesn't find the firmware version information on little-endian hosts.
> I can submit a patch for that as well, if interested.  But the bug is
> fixed in my Python implementation, which you can try out.

I tried it on the file above and got the following:

fin...@larrylap:~/WAG54GX2> ~/sprom/b43_fwcutter.py
src.GPL/driver/2.6.8.1/extra/wl.ko
Firmware md5sum is 4f1218df93c23b4e27c83cb208031a1d...
Extracting a0g0bsinitvals2 of length 0x10 from offset 0x52A4C...
Traceback (most recent call last):
  File "/home/finger/sprom/b43_fwcutter.py", line 267, in <module>
    extract_firmware(fd, extract, options.endian, outfn)
  File "/home/finger/sprom/b43_fwcutter.py", line 197, in extract_firmware
    buf, n = build_ivs(buf, endian)
  File "/home/finger/sprom/b43_fwcutter.py", line 169, in build_ivs
    assert biv.size in (2,4)
AssertionError


_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to