Intel Pro Wireless 2200 and Slackware

December 1st, 2005

If you have an Intel Centrino laptop, you’re probably going to have Intel Pro Wireless 2200 on it. While these instructions are for the 2200, the sites that I link to should point you in the direction for other Centrino related drivers if you have a different version number. However the instructions should basically be the same.

The Linux 2.6.14 series started off with an integrated ipw22000 driver, but it’s an ancient version. You’re welcome to wait until they’ve got it fixed, but this is how I’ve been doing it up to when they actually included the driver.

Checking your Kernel

If you haven’t recompiled your kernel before then you need to read up how to do it, I recommend the Slackbook section on kernels. Also make sure you’ve got a Live CD at the ready in case you need to mount your Linux partition to switch your new kernel back to the old one if your new one doesn’t work. You on dialup? That’s no excuse! Damn Small Linux can do the job fine.

I’m using the latest vanilla sources from kernel.org, but you can reconfigure the kernel you’ve got if you want. Here are the options you need to enable:

If you want WPA support, which you do–don’t you? Then also enable the following in addition to the above:

As this post gets old, you may find a new version of the kernel has updated the ipw support, so you can probably just grab the firmware, and be done with it, but the way I do it will mostly always work and will guarantee that you have the latest drivers. However you have to make sure you don’t have an old ipw driver compiled into the kernel, and you also don’t need the ieee 802.11 subsystem, so remove these two:

All the above information can be found in the ipw2200 folder’s INSTALL file by the way.

Now build your kernel as you would do.

Collecting and Installing the Tools

Fire up Firefox and Wget, we’re going byte huntin’! You’ll need latest versions from the following sites:

Slackware’s wireless tools need updating, so if you’re a Slacker, then grab them as well. A newer distro might be released that already have the update, so check the versions with:

pkgtool

Then go to → View (I swear viewing packages is quicker nowadays…) and key in “w” that should bring you to the wireless extensions info bit. If it’s an old version, uninstall it, and compile the new ones from source. If you want to have a nice package, have a look at checkinstall. It’s a lovely tool that creates packages, including Slackware .tgzs, from source files, just run:

checkinstall

instead of:

make install

Now, I recommend putting the Intel-related bits in a folder together. I put mine in /usr/src/ipw. Go into the directory and unzip the files:

gunzip *
tar -xf iee*
tar -xf ipw2200-1.*
tar -xf ipw2200-fw*

Or use your own commands if you don’t find that very efficient. The firmware archive will spill the files out, but don’t worry about those now, they’ll be moved later.

Right, now what we need to do is install the pieces in the following order:

  1. ieee802.11 subsystem
  2. ipw2200 kernel module
  3. ipw Firmware

So go into the iee* directory:

cd ieee*

Now you’ve got to make sure your kernel has nothing that’s going to interfere with using this. So what you do is execute a script in the directory that’s called “remove-old”. I had to make the script executable before it could be run, thus:

chmod 755 remove-all
./remove-old

If it detects anything, say yes to the things it wants to remove. Once you’ve done this go into the ipw directory, and do the same.

cd ..
cd ipw2200*
chmod 755 remove-old
./remove-old

Now that the preparation’s done, let’s start installing! So go back into the ieee* directory and do the usual as root:

cd ..
cd ieee*
make
make install
cd ..
cd ipw2200*
make
make install

Then what we’ve got to do is move the firmware into the hotplug directory so that it can be loaded. Where is your hotplug directory? Well I know where it is on Slackware, but here’s to find out whatever you’re running:

cat /etc/hotplug/firmware.agent | more

Look for the bit that says “directory of the firmware files”. I believe I left you in the ipw2200* directory; so I’ll get you back into your main folder and move all those lovely firmware drivers into their directory (/lib/firmware/ in my case):

cd ..
mv *.fw /lib/firmware/

Nearly done! So that your box loads up your wireless module at bootup, you’ll want to edit your “rc.modules” file. Your distro may vary, I’m sure it’s not that hard to find the equivalent, but this will work for Slackware:

pico /etc/rc.d/rc.modules

Of course, feel free to use whatever other crazy text editor you want, just add the following lines after the updating module dependancies bit (after the fi):

# wireless support with led
/sbin/modprobe ipw2200 led=1

Can’t do without the flashy LED can we?

Now you’re at the stage where you can reboot. If you reboot and everything goes fine and you only want to use WEP you’re done. If you want proper security on your network proceed to the next section.

WPA-PSK

This is the security that my WAP offers, it’s a lot better than WEP but needs a helper daemon to work: WPA Supplicant. Download it to your /usr/src/ directory if you want, or wherever you store your source files. Unzip the archive and peer inside:

tar -xzf wpa*
cd wpa*

The README file contains lots of interesting information about WPA, but really you just need to head to the bit that tells you how to create the .config file that it uses to build wpa_supplicant to your–well–configuration. If you just want to use WPA-PSK then you’ll might be able to make do with my .config file. I’m not sure what the hell most of it means, but it works:

CONFIG_DRIVER_WEXT=y
# CONFIG_DRIVER_BSD=y
# CONFIG_DRIVER_NDIS=y
CONFIG_WIRELESS_EXTENSION=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
# CONFIG_EAP_SIM=y
# CONFIG_EAP_AKA=y
CONFIG_EAP_PSK=y
CONFIG_EAP_PAX=y
CONFIG_EAP_LEAP=y
# CONFIG_PCSC=y

Though what I do know is that you have to remove or comment out anything that’s like this: CONFIG_DRIVER_IPW. Just make sure you have CONFIG_DRIVER_WEXT=y as above. So copy and paste all of that, or make your own configuration file, and install it:

touch .config
pico .config (i.e. put some stuff in it)
make
make install

This will install the daemon and some other things to /usr/local/sbin. Now to generate the string that your wireless adaptor will beam out to your WAP for authentication. When you administered your WAP you’ll remember that you set a Network Key for WPK-PSK to use. For instance when I log into my WAP I go to the field that says “Network Key (8 ~ 63 characters)” and there’s my key. You’ll need this number in a minute.

You’re nearly there! Load up a terminal and type the following as root:

/usr/local/sbin/wpa_passphrase (your SSID here) (copy + paste your network key here)

The SSID is the what you called your network (Wireless_Broadband in my case). The other bit is that number I told you’d need in a minute (the minute being now). This will generate a configuration file in this format:

network={
ssid="Your_Network"
#psk="Your_Network_Key"
psk="your very long string"
}

Now make the actual configuration file in /etc/:

touch /etc/wpa_supplicant.conf
pico /etc/wpa_supplicant.conf (insert the output from wpa_passphrase)

You should be able to connect to your WAP now! Ergh, what’s that? You want to know how to do that? Ok… this is what does it for me:

ifconfig eth1 up
wpa_supplicant -ieth1 -Dwext -c/etc/wpa_supplicant.conf &
dhcpcd -h 192.168.0.1 -G 255.255.255.0 eth1
route add default gw 192.168.0.1
iptables-restore < /etc/firewall.conf

You’ll possibly have to edit the following: the eth1 interface name, the dhcpcd bit (I use DHCP–and I know Debian doesn’t use dhcpcd) and the firewall bit, though you should have one configured. ;)

There, that’s it. I hope you find the above somewhat useful. Remember that Google is your friend and that’s where I found all the information above. Oh, and when I did it I had to use a patch to get it to broadcast DHCP packets! So count yourselves lucky that you’re doing all this now and not a few months back when I didn’t know why the fudge I couldn’t get an IP address!

7 Responses to “Intel Pro Wireless 2200 and Slackware”

  1. Pascal Klein Says:
    December 2nd, 2005 at 8:20 am

    Sounds a like a bitch to get working. Suse 9.3 didn’t like my wireless card either, though I was eager enough to crawl through the roofing the following day and lay over 70 meters of CAT5. When I get a laptop, I’m going to make sure it’s linux friendly, but then again, things only get better in the open source community when it comes to apps and driver support. For example Suse 10.0 had out of the box support for this Medion wireless mouse we bought. Same with Ubuntu. :)

    Currently got my eye on several nice laptops from http://www.emperorlinux.com. Only problem is the costs. =\

    Nice howto/tutorial though. Bookmarked for those at LUG with Centrinos in their laptops. Thanks.

    Pascal

  2. Alex Says:
    December 2nd, 2005 at 8:58 am

    Wasn’t too bad to install, it’s certainly cool now that it’s all up and running.

    …though I was eager enough to crawl through the roofing the following day and lay over 70 meters of CAT5

    lol, wtf Pascal?

    Had a look at Emperor Linux, and they seem to sell Thinkpads and things, so you could just check the version number, and buy straight from IBM and do the Linux bit yourself.

    What I recommend is find the documentation for a laptop, and base your purchases around that. That’s what I did. ;)

  3. Pascal Klein Says:
    December 2nd, 2005 at 11:03 am

    Yea, 70 meters of CAT5. Our router is downstairs in the office, and our house it pretty large, built on a slope, so it is fair distance from my room, right at the back of the house to the router, located in the office at the front, and at ground level.

    And CAT5 is faster than wireless, at least for the card I have. :)

  4. lameuser Says:
    January 11th, 2006 at 5:58 am

    great guide!
    it all works very nicely :)

    thanks a lot!

  5. Alex Says:
    January 11th, 2006 at 11:11 am

    Glad to hear it helped someone :D

  6. dt Says:
    February 7th, 2006 at 8:37 am

    Good advice. It worked. Thank you very much.

  7. andre Says:
    December 12th, 2006 at 8:14 pm

    hello. i’ve just followed step by step this HOW-TO till this part:
    “Now you’re at the stage where you can reboot. If you reboot and everything goes fine and you only want to use WEP you’re done. If you want proper security on your network proceed to the next section.”

    Then i reboot, but i still can’t access my wireless network. Do i have to do anything else? Just don’t understand.. Thanks!