1======================================================================= 2WLAN driver for cards using the HERMES II and HERMES II.5 chipset 3 4HERMES II Card 5 6PCMCIA Info: "Agere Systems" "Wireless PC Card Model 0110" 7 Manufacture ID: 0156,0003 8 9HERMES II.5 Card 10 11PCMCIA Info: "Linksys" "WCF54G_Wireless-G_CompactFlash_Card" 12 Manufacture ID: 0156,0004 13 14Based on Agere Systems Linux LKM Wireless Driver Source Code, 15Version 7.22; complies with Open Source BSD License. 16======================================================================= 17 18DESCRIPTION 19 20The software is a modified version of wl_lkm_722_abg.tar.gz from the 21Agere Systems website, addapted for Ubuntu 9.04. 22 23Modified for kernel 2.6 by Henk de Groot <pe1dnn@amsat.org> 24Based on 7.18 version by Andrey Borzenkov <arvidjaar@mail.ru> $Revision: 39 $ 25 26INSTALLATION 27 28Unpack in a new directory. 29 30Open a terminal screen. 31 32Change directory to the source directory 33 34Type command 35 36make 37 38and wait until it is finshed. Now you have build the module 39wlags49_h2_cs; this module is meant for a HERMES II card. 40 41The driver is tested with a Thomson SpeedTouch 110 Wireless PC Card. 42For the test Station mode was used with WEP. The driver is supposed 43to support WAP and as accesspoint that is NOT tested. 44 45If you have a card using the HERMES II.5 chip you have to make 46changes to the Makefile and uncomment -DHERMES25. This will build 47driver wlags49_h25_cs. 48 49Note: You can determine the type with command "pccardctrl info" 50 MANIFID: 0156,0002 = HERMES - not supported by this driver 51 MANIFID: 0156,0003 = HERMES II (Wireless B) 52 MANIFID: 0156,0004 = HERMES II.5 (Wireless B/G) 53 54After successful compile type command 55 56sudo make install 57 58to install the module. 59 60Now the card should be recognized. It should be able to configure 61and use the card with NetworkManager. Wpa_supplicant also works, as does 62manual configuration using the iwconfig/iwlist programs. 63 64Note: I only tested Station mode with WEP but if I didn't break anything 65WPA and AP mode should also work; note however that WPA was experimental 66in the original Agere driver! 67 68Note: to compile as AP change the makefile and remove the line 69-DSTA_ONLY \ 70 71(or comment it, but in that case make sure to move it after all the 72 flags you want to use) 73 74CHANGES 75 76The HCF functions to control the card are virtually unchanged, the only 77changes are meant to fix compiler warnings. The only real change is in 78HCF_WAIT_WHILE which now has a udelay(2) added to give a small delay. 79 80The linux driver files (wl_xxxx.c) are changed in the following ways: 81- Addaptations of Andrey Borzenkov applied to 7.22 source 82- Alterations to avoid most HCF_ASSERTs 83-- Switching interrupts off and on in the HCF 84-- Bugfixes, things that were apparently wrong like reporting link status 85 change which checked a variable that was not changed in HCF anymore. 86-- Used on WEP but setting keys via SIOCSIWENCODEEXT was not supported 87-- Recovery actions added 88 89The major problem was the order in which calls can be made. The original 90looks like a traditional UNIX driver. To call an "ioctl" function you 91have to "open" the device first to get a handle and after "close" no 92"ioctl" function can be called anymore. With the 2.6 driver this all 93changed; the former ioctl functions are now called before "open" and 94after "close", which was not expected. One of the problems was enable/ 95disable of interrupts in the HCF. Interrupt handling starts at "open" 96so if a former "ioctl" routine is called before "open" or after "close" 97then nothing should be done with interrupt switching in the HCF. Once 98this was solved most HCF_ASSERTS went away. 99 100The last point, recovery actions added, needs some clarification. 101Starting the card works most of the time, but unfortunately not always. 102At a few times recovery code was added; when the card starts to 103misbehave or the communication between the HCF and the card is 104out of sync and the HCF enters DEFUNCT mode everything is reset and 105reinitialized. Note, hcf.c contains a lot of documentation. It takes 106some time but slowly some things become clear. Also some unresolved 107issues are mentioned in hcf.c, so there are still unknown bugs. 108 109The card problems are almost in all cases when starting up and before 110the first association with an AP, once the card is in operation it 111seems to stay that way; when debugging no HCF_ASSERTS appear anymore. 112Note: some HCF_ASSERTS still appear, in a number of cases it is a real 113error, for example at card removal the missing card is detected. 114 115LICENSE 116 117The Agere Systems license applies. This is why I include the original 118README.wlags49. The instructions in that file are bogus now. I also 119include the man page. Even though setting parameters on the module 120does not work anymore but it provides some information about all the 121settings. 122 123I have no personal contact with Agere, but others have. Agere 124agreed to make their software available under the BSD license. 125This driver is based on the 7.22 version. 126 127The following was mailed by Agere to Andrey Borzenkov about this: 128 129 --- Begin Message --- 130 131 * From: TJ <tj@xxxxxxxxxxx> 132 * Date: Mon, 05 Feb 2007 19:28:59 +0000 133 134 Hi Andrey, 135 136 I've got some good news for you/us/the world of Hermes :) 137 138 I got a reply from the legal representative at Agere confirming that 139 their source-code is BSD licensed, and I've included the contents of the 140 email here. 141 142 I hope this re-assures you so that your excellent work on the drivers 143 can be made widely available for other hackers to work with. 144 145 Regards, 146 147 TJ. 148 149 --------- 150 On Mon, 2007-02-05 at 13:54 -0500, Pathare, Viren M (Viren) wrote: 151 152 153 "I would like to confirm that the two drivers; Linux LKM Wireless Driver 154 Source Code, Version 7.18 and Linux LKM Wireless Driver Source Code, 155 Version 7.22 comply with Open Source BSD License. Therefore the source 156 code can be distributed in unmodified or modified form consistent with 157 the terms of the license. 158 159 The Linux driver architecture was based on two modules, the MSF (Module 160 specific functions) and the HCF (Hardware Control Functions). Included 161 in the HCF is run-time firmware (binary format) which is downloaded into 162 the RAM of the Hermes 1/2/2.5 WMAC. 163 164 This hex coded firmware is not based on any open source software and 165 hence it is not subject to any Open Source License. The firmware was 166 developed by Agere and runs on the DISC processor embedded within the 167 Hermes 1/2/2.5 Wireless MAC devices. 168 169 Hope this helps. 170 171 Sincerely, 172 173 Viren Pathare 174 Intellectual Property Licensing Manager 175 Agere" 176 177 178 179 --- End Message --- 180 181