My situation: I had spotty wireless right after the upgrade to Karmic. So, I decided to "fix" it. After various attempts, I tried to go back to the previous driver, but this completely screwed things up. The OS recognized the wireless card, but I couldn't do anything with it. After reading a bit, I decided to try installing the windows driver for the card, using ndiswrapper.
Result: wireless is back to pre-update levels. The only problem is that I don't have wireless when I bring the laptop out of suspension/hibernation. I have to reboot to get the wireless working after I suspend (so I'm switching it off now instead of suspending).
Ok, you've been warned. If you still want to go ahead, here is what I did:
1. Figure out what chipset your wireless card has.
My Starling has a USB wireless card, so I used lsusb. If you don't find anything with lsusb, see if you have any luck finding it using .
Bus 001 Device 003: ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter
If your card is also a RTL8187B, continue.
2. Install ndiswrapper
3. Download the windows driver for the RTL8187B
jsimmond@ito:~$ sudo apt-get install ndisgtk ndiswrapper-common ndiswrapper-utils-1.9
Watch out: the drivers for 2 other wireless cards are on the same download page. Scroll down to the RTL8187B section. I got the Win2K/WinXP/Vista driver (version # 1158, filename: 8187B_WindowsDriver_5_6.1158.0113.2009.zip
4. Extract the driver zip file to some directory.
Driver location (the .inf file):
jsimmond@ito:~$ unzip 8187B_WindowsDriver_5_6.1158.0113.2009.zip
5. Fire-up the ndiswrapper GUI
jsimmond@ito:~/temp/(090310)RTL8187B_WindowsDriver_5_6.1158.0113.2009_ISS_1.01.0087/RTL8187B/WinXP2K$ ls -l
-rw-r--r-- 1 jsimmond jsimmond 8.4K 2009-01-16 12:23 net8187b.cat
-rw-r--r-- 1 jsimmond jsimmond 15K 2009-01-13 17:56 net8187b.inf
-rw-r--r-- 1 jsimmond jsimmond 333K 2009-01-13 17:56 rtl8187B.sys
6. Click on the "Install New Driver" button. You should get an open file dialog, pick the .inf file from step 4. I don't remember exactly what happened at this point, I think I clicked ok on a couple of screens. I don't have any new driver to install to check
jsimmond@ito:~$ sudo ndisgtk
I've attached a screenshot of what ndisgtk should look like if the install was successful.
7. After you exit ndisgtk (and reboot for good measure), check if the new driver is available under ndiswrapper:
For the curious, here are the contents of my /etc/modprobe.d/ndiswrapper file:
jsimmond@ito:~$ ndiswrapper -l
WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
net8187b : driver installed
device (0BDA:8189) present (alternate driver: rtl8187)
8. After rebooting, my network-manager had a "Wireless" subsection again. Now I could see my router and connect to it. Around this time, I also switched to WPA, since my old router died and the new one's WEP authentication doesn't work.
jsimmond@ito:~$ cat /etc/modprobe.d/ndiswrapper
alias usb:v0BDAp8187d*dc*dsc*dp*ic*isc*ip* ndiswrapper
alias usb:v0BDAp8189d*dc*dsc*dp*ic*isc*ip* ndiswrapper
I hope this guide is detailed enough to help.