]>
Commit | Line | Data |
---|---|---|
68c0bdff HG |
1 | ======================================================================= |
2 | WLAN driver for cards using the HERMES II and HERMES II.5 chipset | |
3 | ||
4 | HERMES II Card | |
5 | ||
6 | PCMCIA Info: "Agere Systems" "Wireless PC Card Model 0110" | |
7 | Manufacture ID: 0156,0003 | |
8 | ||
9 | HERMES II.5 Card | |
10 | ||
11 | PCMCIA Info: "Linksys" "WCF54G_Wireless-G_CompactFlash_Card" | |
12 | Manufacture ID: 0156,0004 | |
13 | ||
14 | Based on Agere Systems Linux LKM Wireless Driver Source Code, | |
15 | Version 7.22; complies with Open Source BSD License. | |
16 | ======================================================================= | |
17 | ||
18 | DESCRIPTION | |
19 | ||
20 | The software is a modified version of wl_lkm_722_abg.tar.gz from the | |
21 | Agere Systems website, addapted for Ubuntu 9.04. | |
22 | ||
23 | Modified for kernel 2.6 by Henk de Groot <pe1dnn@amsat.org> | |
24 | Based on 7.18 version by Andrey Borzenkov <arvidjaar@mail.ru> $Revision: 39 $ | |
25 | ||
26 | INSTALLATION | |
27 | ||
28 | Unpack in a new directory. | |
29 | ||
30 | Open a terminal screen. | |
31 | ||
32 | Change directory to the source directory | |
33 | ||
34 | Type command | |
35 | ||
36 | make | |
37 | ||
38 | and wait until it is finshed. Now you have build the module | |
39 | wlags49_h2_cs; this module is meant for a HERMES II card. | |
40 | ||
41 | The driver is tested with a Thomson SpeedTouch 110 Wireless PC Card. | |
42 | For the test Station mode was used with WEP. The driver is supposed | |
43 | to support WAP and as accesspoint that is NOT tested. | |
44 | ||
45 | If you have a card using the HERMES II.5 chip you have to make | |
46 | changes to the Makefile and uncomment -DHERMES25. This will build | |
47 | driver wlags49_h25_cs. | |
48 | ||
49 | Note: You can detemine 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 | ||
54 | After succesfull compile type command | |
55 | ||
56 | sudo make install | |
57 | ||
58 | to install the module. | |
59 | ||
60 | Now the card should be recognized. It should be able to configure | |
61 | and use the card with NetworkManager. Wpa_supplicant also works, as does | |
62 | manual configuration using the iwconfig/iwlist programs. | |
63 | ||
64 | Note: I only tested Station mode with WEP but if I didn't break anything | |
65 | WPA and AP mode should also work; note however that WPA was experimental | |
66 | in the original Agere driver! | |
67 | ||
68 | Note: 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 | ||
74 | CHANGES | |
75 | ||
76 | The HCF functions to control the card are virtually unchanged, the only | |
77 | changes are meant to fix compiler warnings. The only real change is in | |
78 | HCF_WAIT_WHILE which now has a udelay(2) added to give a small delay. | |
79 | ||
80 | The 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 aparently 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 | ||
89 | The major problem was the order in which calls can be made. The original | |
90 | looks like a traditonal UNIX driver. To call an "ioctl" function you | |
91 | have 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 | |
93 | changed; the former ioctl functions are now called before "open" and | |
94 | after "close", which was not expected. One of the problems was enable/ | |
95 | disable of interrupts in the HCF. Interrupt handling starts at "open" | |
96 | so if a former "ioctl" routinge is called before "open" or after "close" | |
97 | then nothing should be done with interrupt switching in the HCF. Once | |
98 | this was solved most HCF_ASSERTS went away. | |
99 | ||
100 | The last point, recovery actions added, needs some clarification. | |
101 | Starting the card works most of the time, but unfortunately not always. | |
102 | At a few times recovery code was added; when the card starts to | |
103 | misbehave or the communication between the HCF and the card is | |
104 | out of sync and the HCF enters DEFUNCT mode everything is reset and | |
105 | reinitialized. Note, hcf.c contains a lot of documentation. It takes | |
106 | some time but slowly some things become clear. Also some unresolved | |
107 | issues are mentioned in hcf.c, so there are still unknown bugs. | |
108 | ||
109 | The card problems are almost in all cases when starting up and before | |
110 | the first association with an AP, once the card is in operation it | |
111 | seems to stay that way; when debugging no HCF_ASSERTS appear anymore. | |
112 | Note: some HCF_ASSERTS still appear, in a number of cases it is a real | |
113 | error, for example at card removal the missing card is detected. | |
114 | ||
115 | LICENSE | |
116 | ||
117 | The Agere Systems license applies. This is why I include the original | |
118 | README.wlags49. The instructions in that file are bogus now. I also | |
25985edc | 119 | include the man page. Even though setting parameters on the module |
68c0bdff HG |
120 | does not work anymore but it provides some information about all the |
121 | settings. | |
122 | ||
123 | I have not have personal contact with Agere, but others have. Agere | |
124 | agreed to make their software available under the BSD licence. | |
125 | This driver is based on the 7.22 version. | |
126 | ||
127 | The 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 |