Using an Intel PRO/wireless 2011B card under linux
Par Bertrand Rousseau le jeudi, janvier 12 2006, 20:51 - Trucs de geek - Lien permanent
People in my university sold some intel wireless cards a few years ago. These cards have always been really hard to use under Linux. As I could make mine works maybe it's worth writing something about it. I warn you: I don't have access to laptop at present, so I'm writing this only on basis of what I remember. Some information may be wrong. Beware also: the things I explain here are quite complicated stuff, you need a good knowledge of linux and compiling habits.
The problem is this: this card does not store its firmware in a permanent way, so each time it is powered up, a firmware needs to be downloaded into the hardware (at least, that is what I could understand after reading some docs and driver source code). Because of this it is necessary to use a different driver than for the Intel PRO/Wireless 2011 (noticed? no 'B' here!) which can download the firmware on power up. Well, good news, this driver exists! It is the orinoco driver. This driver is supposed to be included in the kernel since version 2.4.x but I could never make my card work without using the sources from this site.
So how did I make it work? Something like eight months ago I downloaded orinoco-0.15rc2.tar.gz from sourceforge. After parsing the source code I understood that in order to make the card work you have to perform several little steps before the driver is ready to compile.
First you have to download the firmware and create files from it. In order to do so you have to download the orinoco-fwutils package which contains several scripts. Run "get_symbol_fw", it should download the firmware from a website, don't know which one. It then creates three files: "spectrum_fw.h", "symbol_sp24t_prim_fw" and "symbol_sp24t_sec_fw". These files contains the firmware to be loaded.
In the 0.15-rc2 (the one I used), you had the choice between including the firmware directly in the source code or to use hotplug. I remember trying to use the "hotplug" way by moving "symbol_sp24t_prim_fw" and "symbol_sp24t_sec_fw" in /usr/lib/hotplug/firmware as the doc included in spectrum_cs.c says:
/* * If SPECTRUM_FW_INCLUDED is defined, the firmware is hardcoded into * the driver. Use get_symbol_fw script to generate spectrum_fw.h and * copy it to the same directory as spectrum_cs.c. * * If SPECTRUM_FW_INCLUDED is not defined, the firmware is loaded at the * runtime using hotplug. Use the same get_symbol_fw script to generate * files symbol_sp24t_prim_fw symbol_sp24t_sec_fw, copy them to the * hotplug firmware directory (typically /usr/lib/hotplug/firmware) and * make sure that you have hotplug installed and enabled in the kernel. */
As it did not work I finally resigned to use the other way. I think I copied the "spectrum_fw.h" in the driver source code directory and deleted every necessary line so that the driver would use the "spectrum_fw.h" file. (Yeah I know I'm pretty vague, but it is all I can say now).
Eventually, I compiled the driver (you need kernel sources and maybe other stuff in order to do so) by using the usual "make" and then "make install". Then you should just need to plug your card and surf the web like a king! (well, maybe).
After a quick look at the new code from 0.15-rc4 release it seems that now only the hotplug solution is possible. So, use the 0.15-rc2 or try harder than me to make it work with hotplug ;-)
Well, good luck with that. I will try to clean the process as soon as I have a laptop back. I'll then post a much better text.