Fedora Core 2 Linux and Centrino (Intel PRO/Wireless 2100) wireless

by Uche Ogbuji

For a while I was unable to use my Dell 8600's built-in Centrino WiFi chipset. Ndiswrapper, the popular choice, proved quirky to me and it was just so much easier to drop my D-Link DWL-650 into the PCMCIA slot (see my Linux notes on this card). Only problem is that PCMCIA cards drink battery juice like marathoners drink water. Luckily, earlier this year Intel started supporting a native drivers project for the Centrino WiFi chipsets. I dug in and got them working on my laptop fairly smoothly.



You need the driver source (I used version 0.54) and firmware image files for hotplugging (neat way wrestle hardware into Linux friendliness when needed). I followed the link labeled "Versions between v0.50 and 0.54: v0.50-0.54 firmware". Downloading the firmware meant accepting an Intel license. IANAL, but it seemed mostly about restricting use to Intel hardware, prohibiting reverse engineering, and limitation of liability. Fairly innocuous, and restrictions which anyway apply to the firmware images alone, not the actual kernel drivers (which do not "taint" the kernel).



I set up the formware, first making sure the kernel supports firmware load (true by default in FC2).



grep CONFIG_FW_LOADER /lib/modules/`uname -r`/build/include/linux/autoconf.h
#define CONFIG_FW_LOADER 1


So I set up the hotplug directories and placed the downloaded/unpacked firmware images there:



mkdir -p /usr/lib/hotplug/firmware                                                                                
cd /usr/lib/hotplug/firmware
tar zxvf $DL/ipw2100-fw-1.2.tgz


Then I unpacked and built the actual kernel drivers. Make sure you have Kernel source (see my Broadcomm B44 article for more on that).



tar zxvf $DL/ipw2100-0.54.tgz
cd ipw2100-0.54/
make
make install #copy to /lib/modules for kernel and set up deps


At this point I could load the driver just fine:



modprobe ipw2100


By running "dmesg", I saw the initialization log messages:



# dmesg
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.54
ipw2100: Copyright(c) 2003-2004 Intel Corporation
ipw2100: 0000:02:03.0: Detected at mem: 0xFAFFC000-0xFAFFCFFF -> 82aac000,
irq: 7
divert: allocating divert_blk for eth1
eth1: Using hotplug firmware load.
eth1: Bound to 0000:02:03.0


I could then use the Network settings tool (Red Hat menu -> System Settings -> Network) to set up the connection details (New -> Wireless connection -> "PRO/Wireless LAN 2100 3B PCI Adapter (eth1)"). I thought I was home free, but after the next boot, kudzu helpfully set things up for boot and it promptly went bust. The driver would fail to load properly with the following messages in dmesg:



ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.54
ipw2100: Copyright(c) 2003-2004 Intel Corporation
ipw2100: 0000:02:03.0: Detected at mem: 0xFAFFC000-0xFAFFCFFF -> 8299c000,
irq: 7
divert: allocating divert_blk for eth1
eth1: Using hotplug firmware load.
eth1: Firmware 'ipw2100-1.2.fw' not available or load failed.
eth1: ipw2100_get_firmware failed: -2
eth1: Failed to power on the adapter.
eth1: Failed to start the firmware.


Since I could modprobe it by hand, I figured there was a problem with boot order and just undid kudzu's work (uncimmenting ipw2100-related lines in /etc/modprobe.conf) and added the module load command to /etc/rc.local:



# cp /etc/rc.local /etc/rc.local.dist
# echo "modprobe ipw2100" >> /etc/rc.local


That did the trick. I'm a happy Linux Centrino WiFi user now.



6 Comments

TeeLM
2004-10-07 22:24:39
Newbie needs HELP!
I need step-by-step instructions "For Dummies" on how to set this WLAN up: from what exactly to download, where to save the files to, to how to do it all. I just had a friend help me (well, I watched) to install Fedora C2 - Dual Boot with XP Pro. It all works fine with no probs except that I can't get online without being plugged in using Fedora. I have WLAN working fine with XP, just not sure what Driver and Tools to DL or exactly how to do it. I'm not a programmer, but I desparately want to get away from MS.
Any help or directions to help will be greatly appreciated.
Thanks,
Theresa M


RustyF
2004-10-08 17:15:39
Newbie needs HELP!
What WLAN card do you have? Is it a Centrino-based one? If so, you need to install the ipw2100 stuff. The guidelines above should be OK but I personally just installed the binary rpms (however I still had to do the last fixes above).


I can be more specific if you want me to be :)


Russ

uche
2004-10-11 08:16:15
Newbie needs HELP!
No one can practically address your request as is. There are way too many variables. If you tell us what distribution you're running, what nature of hardware you have, what steps you've tried so far, what problems you encountered, etc.
MadZyzome
2004-10-19 22:49:36
Driver Problems
I have a Dell Inspiron 8600 with the Intel Pro Wireless LAN 2100 3B mini PCI Adapter and of coarse the Broadcom 100 base-T and Red Hat Fedora core 2 with kernel 2.6.8-1.521 that I rebiult with the patch from Pekka Pietikainen so that my Broadcom ethernet card would work, even though I don't have 2 gigs of memory but 512 megs. I believe its has to do with my using both card slots but nevermind that. The point is it works however the intel pro wireless 2100 card does not work. I followed the instructions with the ip2100 drivers, I unpacked the firmware than unpacked and built the driver and loaded it. It didn't work because it didn't show up in Network Configuration under hardware tab but did show up in Device tab and in the Hardware browser in system tools this is after much deleting and re-installing this the best I could get it. I also deleting the entry in /etc/rc.local so that the firmware would load up however this action is what removed the entry in the hardware tab under Network Configuration. When I ran dmesg the first entry would be on eth0 and would fail then a later entry it would work on eth1, whats happening here? does this make sence to anyone? I knew linux wasn't user friendly but this is ridiculous. Can anyone help me?
mickey-g
2004-10-25 08:53:48
problems with installing and neat
Hi all,


I've been struggling to get wireless to work on my centrino based Thinkpad T41 for weeks, but alas to no avail.


I've followed the instructions on this article and here's what happens.


First, I'm not sure why it's best to extract the ipw2100-1.3-fw.tgz file into
/usr/lib/hotplug/firmware


but I
tar file into

mickey-g
2004-10-25 09:06:13
problems with installing and neat
Hi all,


I've been struggling to get wireless to work on my centrino based Thinkpad T41 for weeks, but alas to no avail.


I've followed the instructions on this article and here's what happens.


First, I'm not sure why it's best to extract the ipw2100-1.3-fw.tgz file into
/usr/lib/hotplug/firmware
but I do. I'm unfamiliar with hotplug and what it does.


Anyway, when I followed the rest of the instructions and then look at the
dmesg | tail
I got,
>Unable to load '/etc/firmware/ipw2100-1.3.fw'.
>eth1: Firmware '/etc/firmware/ipw2100-1.3.fw' not >available. See >Documentation/networking/README.ipw2100
>eth1: ipw2100_get_firmware failed: -5
>eth1: Failed to power on the adapter.
>eth1: Failed to start the firmware.
>divert: freeing divert_blk for eth1


so I put the ipw2100-1.3.fw file where modprobe appeared to be looking for it (/etc/modprobe/ipw2100-1.3.fw).


Doing so allowed me to load the fw with modprobe. However I do apparently still have some problems when I look at dmesg:
>ieee80211_crypt: unregistered algorithm 'NULL' >(deinit)
>ieee80211_crypt: registered algorithm 'NULL'
>ipw2100: Intel(R) PRO/Wireless 2100 Network >Driver, 0.56
>ipw2100: Copyright(c) 2003-2004 Intel Corporation
>ipw2100: Compiled with LEGACY FW load.
>ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 11 >(level, low) -> IRQ 11
>ipw2100: 0000:02:02.0: Detected at mem: >0xC0210000-0xC0210FFF -> 22e8d000, irq: 11
>divert: allocating divert_blk for eth1
>eth1: Using legacy firmware load.
>eth1: Bound to 0000:02:02.0


I suspect that these crypt NULL messages have to do with the warnings I got when making the ipw2100 -0.56 package due to the fact that CRC is built into Fedora's kernel rather than as a module.


Any thoughts on that?


Moreover, if I try to activate the wireless as eth1 with the redhat network configuration tool (aka neat) i get the following error:


>/sbin/ifup: configuration for eth1 not found.
>Usage: ifup


If I use neat to set the MAC address I then get:


>Error for wireless request "Set Frequency" (8B04) >:
> SET failed on device eth1 ; Operation not >supported.
>
>Determining IP information for eth1... failed; no >link present. Check cable?


Any help on this would be greatly appreciated.


Thanks,


Mike