orinoco: Agere/Lucent firmware download
cover orinoco: Agere/Lucent firmware download
Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.
The patchset is against v2.6.23-rc5 from Linus' git tree. The complete patch is available at <http://www.virtualsoup.org/files/orinoco_fw_dl.patch>
Programs to generate the necessary firmware are available at
<http://www.virtualsoup.org/files/orinoco_dump_fw.tar.bz2>. They require either the wl_lkm_714/8 sources or a windows driver. See README.dump_fw for more information.
The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58
The following firmwares download, but are not compatible with the current orinoco_cs driver:
9.40, 9.42, 9.48
All my testing done on a pentium3 Dell C600. FW 9.48 download also confirmed on a powerbook using a modified airport driver compiled with a static copy of the firmware
An earlier version of this patch was posted to the orinoco-devel list. This version has been cleaned up and updated for big endian architectures.
Regards,
Dave Kilroy.
Hello, Dave!
Quoted 2 lines · Dave
Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.
I really appreciate your efforts.
Please avoid copying to David Gibson in the future, as he stepped down as the maintainer.
Also, it may work better if you post your patches to orinoco-devel first, and then to linux-wireless. Many people hesitate to reply to messages cross-posted to several lists. orinoco-users doesn't need to be involved at all.
I understand that it's a major change, and in needs to be tested thoroughly. I don't have time to review the patches right now, but it is on my TODO list.
Quoted 2 lines
The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58
What some users may want to run is 6.06 or 6.16, as the 7.xx and 8.xx firmwares have stability issues with the monitor mode.
Quoted 3 lines
The following firmwares download, but are not compatible with the current
orinoco_csdriver:
9.40, 9.42, 9.48
That's great news anyway. We may see Hermes II supported eventually.
Quoted 3 lines
All my testing done on a pentium3 Dell C600. FW 9.48 download also confirmed on a powerbook using a modified airport driver compiled with a static copy of the firmware
Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:
make C=2 CF="-Wall -D__CHECK_ENDIAN__"
Signature · 2 lines
Regards, Pavel Roskin
Quoted 3 lines · Pavel Roskin
Quoted 2 lines · Dave
Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.
Hi Pavel,
Thanks for the tips - not sure I was e-mailing the right lists/people.
Quoted 5 lines
Quoted 2 lines
The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58What some users may want to run is 6.06 or 6.16, as the 7.xx and 8.xx firmwares have stability issues with the monitor mode.
RAM only firmware (ie. Variant 2) is not available prior to firmware 7.52, so unfortunately this patch won't help those users. See driver readme for Summer 2001 release (driver ~v7.06) for the first announcements of variant 2.
Quoted 5 lines
Quoted 3 lines
The following firmwares download, but are not compatible with the current
orinoco_csdriver:
9.40, 9.42, 9.48That's great news anyway. We may see Hermes II supported eventually.
Those are Hermes I firmwares. Hermes II versions of the same era are ~2.26, and I haven't tried to download these to my Hermes I card :). Also Hermes II download is slightly different.
Quoted 4 lines
Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:
make C=2 CF="-Wall -D__CHECK_ENDIAN__"
I'll have a go at that shortly.
Thanks,
Dave.
Quoted 9 lines · Dave
Quoted 8 lines · Pavel Roskin
Quoted 2 lines · Dave
Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.
Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:
make C=2 CF="-Wall -D__CHECK_ENDIAN__"
Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in orinoco.c, related to the use of ARRAY_SIZE. Errors are false positives.
$ make O=../build C=2 CF="-Wall -D__CHECK_ENDIAN__" > ../sparse.log 2>&1
<snip>
CHECK /usr/src/linux-current/linux-2.6/drivers/net/irda/sir_dongle.c
CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c/usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:1391:27: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2542:35: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2771:24: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2773:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3118:19: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3123:29: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3357:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3393:2: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3421:20: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3426:13: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4007:38: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4278:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4279:17: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4280:22: error: cannot size expression
CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes_dld.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_cs.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_plx.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_pci.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_tmd.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_nortel.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/spectrum_cs.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/zd1201.c
<snip>
Regards,
Dave.
Quoted 3 lines · Dave
Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in
orinoco.c, related to the use ofARRAY_SIZE. Errors are false positives.
They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse ARRAY_SIZE though, I can only recommend getting that.
johannes
Quoted 8 lines · Johannes Berg
Quoted 3 lines · Dave
Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in
orinoco.c, related to the use ofARRAY_SIZE. Errors are false positives.They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse
ARRAY_SIZEthough, I can only recommend getting that.
Repeated with latest sparse from git. No warnings.
<snip>
CHECK /usr/src/linux-current/linux-2.6/drivers/net/irda/sir_dongle.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes_dld.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_cs.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_plx.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_pci.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_tmd.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_nortel.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/spectrum_cs.c CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/zd1201.c
<snip>
Regards,
Dave.
Quoted 11 lines · Dave
Quoted 8 lines · Johannes Berg
Quoted 3 lines · Dave
Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in
orinoco.c, related to the use ofARRAY_SIZE. Errors are false positives.They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse
ARRAY_SIZEthough, I can only recommend getting that.Repeated with latest sparse from git. No warnings.
:)
johannes