PLEASE, PAY ATTENTION: This HowTo was intended for Hoary. If you are running a higher version of Ubuntu, please take a look here: http://www.ubuntuforums.org/showthread.php?t=263136
Hi!
I've seen there are many requests about how to get ipw2200 and wpa to work. So, as I've managed to get them to work, I've decided to write a howto. It's also good if you just want to get ipw2200 without wpa; just follow the first part in this case.
We have to compile and install the latest ipw2200 1.0.6 driver from http://ipw2200.sourceforge.net and we also have to install the firmware, as the ipw2200 0.19 included in the standard installation of Hoary doesn't support wpa.
Since ipw2200 1.0.5, ipw2200 project does not include ieee80211 subsystem anymore, so we also have to compile and install them from http://ieee80211.sourceforge.net.
Since we have to compile the driver from sources, we need the packages: build-essential, gcc, linux-headers-myOwnKernelVersion.
So:
Note: if you have the kernel sources installed, you won't need the linux-headers. And if you're running a custom kernel compiled by you, you won't need to install the packages mentioned above.Code:sudo apt-get update sudo apt-get install build-essential sudo apt-get install gcc sudo apt-get install linux-headers-$(uname -r)
First of all, follow these instructions to add extra repositories, which are always handy to have.
Here are the steps (for newbies: the following commands are supposed to be typed in the same console session):
First of all, download the firmware from here.
Then install it:
Now download the latest ieee80211 subsystem from here.Code:sudo tar xvzf ipw2200-fw-2.3.tgz sudo cp ipw-2.3-*.fw /usr/lib/hotplug/firmware/
Then untar it and change your current directory into the driver's one:
Now run the remove-old.sh script that comes with the driver package in order to make sure that any old module is deleted:Code:sudo tar xvzf ieee80211-1.0.3.tgz cd ieee80211-1.0.3
Now download the latest ipw22000 driver from here.Code:sudo sh remove-old
Then untar it and change your current directory into the driver's one:
Now run the remove-old.sh script that comes with the driver package in order to make sure that any old module is deleted:Code:cd .. sudo tar xvzf ipw2200-1.0.6.tgz cd ipw2200-1.0.6
Now your system is clean and it's time to make and install ieee80211, so:Code:sudo sh remove-old
Then make and install ipw2200 as well:Code:cd .. cd ieee80211-1.0.3 make sudo make install
Note: it seems there's currently a bug of remove-old script on some systems; if you get errors when compiling ieee80211 about the presence of old modules, you'll have to delete them manually, after having unloded all ieee80211* modules through "modprobe -r module_name" (type "lsmod" to see the current loaded modules).Code:cd .. cd ipw2200-1.0.6 make sudo make install
Now we have to download and install the wpa_supplicant package:
Then you have to create a wpa_supplicant.conf in /etc, so:Code:sudo apt-get install wpasupplicant
And paste the following lines in the text editor:Code:sudo gedit /etc/wpa_supplicant.conf
Anyway there are further configuration examples in /usr/share/doc/wpasupplicant/examples/wpa_supplicant.conf.gz.Code:ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_network_name" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK psk="your_secret_key" }
Then reboot to make sure that the new modules are loaded successfully and type:
to see if there are errors.Code:dmesg | grep ipw
Then type the following command to configurate wpa_supplicant:
Note: "eth1" is your wireless device.Code:sudo wpa_supplicant -B -i eth1 -c /etc/wpa_supplicant.conf -D ipw -w -dd
If you get troubles establishing the connection with the AP, try to take the "-w" flag out.
Some systems may have problems in finding the AP; so, if you get troubles finding your AP, add the "ap_scan=2" option to let wpa_supplicant performing the scan instead of the wireless card driver. So your /etc/wpa_supplicant.conf will look like the following:
Some systems may have problems in connecting to the AP; if you get this issue, try to add the directive "pairwise=TKIP" in the relative network section of /etc/wpa_supplicant.conf, so that it looks like this:Code:ctrl_interface=/var/run/wpa_supplicant ap_scan=2 network={ ssid="your_network_name" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK psk="your_secret_key" }
Of course, if you have problems both findind the AP and connecting to it, you have to add both "ap_scan=2" and "pairwise=TKIP", like the following:Code:ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_network_name" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP psk="your_secret_key" }
Now we have to create a small script (first provided by fulco and edited by me) in order to get wpa starting automatically at boot:Code:ctrl_interface=/var/run/wpa_supplicant ap_scan=2 network={ ssid="your_network_name" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP psk="your_secret_key" }
Here's the script:Code:sudo gedit /etc/init.d/wifi_wpa.sh
Change the script's permissions to allow it to be executed:Code:#! /bin/sh # wifi: wpa_supplicant init echo " * [Wifi]: Enabling WPA supplicant..." if [ -x /usr/sbin/wpa_supplicant ]; then /usr/sbin/wpa_supplicant -B -i eth1 -c /etc/wpa_supplicant.conf -D ipw -w fi exit 0
And create a symlink to define the relative service:Code:sudo chmod +x /etc/init.d/wifi_wpa.sh
Ok, that's all!Code:sudo ln -s /etc/init.d/wifi_wpa.sh /etc/rcS.d/S40netwifiwpa
I hope this howto will be helpful.
Bookmarks