Thursday, February 7, 2008

I Have The Power!

A few days absent due to
  1. having a life at weekends
  2. f%*$ing fluxbuntu, ndiswrapper, modprobe et al
In the process I (re)discovered a few things so I'll break them up into a couple of posts. First getting a USB wireless adapter up and running on fluxbuntu, a lightweight ubuntu variant, on an old Toshiba Statellite 1800 (circa 1999). These steps assume you have a working version of ndiswrapper (more later...) Ndiswrapper is a Linux implementation of certain windows APIS. Suffice to say it allows you to load windows drivers in Linux. It's particularly handy for loading wireless adapter drivers which rarely have native linux drivers available.

First of all, find the Windows drivers for your adapter. In my case this is a Netgear wg121 USB adapter with V2 of its firmware installed. I already had the latest files from Netgear; WG121V200.zip. Plug in the USB stick and mount it under a directory under /media. Unzipping the file created a directory under my home area.

gordon> cd ~/WG121V200/ndis5

In this directory is the inf file describing the driver, netwg121.inf. fluxbuntu is set up to do everything using sudo rather than logging in as root. We are going to use ndiswrapper to load the Netgear Windows driver.

First unload the ndiswrapper module just in case it's already doing something else.

gordon> sudo modprobe -r ndiswrapper

Check there are no other drivers loaded by ndiswrapper.

gordon> sudo ndiswrapper -l

If anything is returned use

gordon> sudo ndiswrapper -r <driver name>

to unload anything loaded. (Technically ndiswrapper might have other Windows drivers loaded. You'll just have to use good judgement to decide whether one of those is for wireless adapter that you're not actually using and might cause a conflict with what we're trying to do)

Now load the netgear driver (or your own .inf file)

gordon> sudo ndiswrapper -i netwg121.inf
installing netwg121 ...

Excellent, check we've loaded the driver

gordon> sudo ndiswrapper -l
netwg121 : driver installed
device (0846:4210) present (alternate driver: p54usb)

Get ndiswrapper to write a modprobe conf file. this will ensure that the driver is loaded as wlan0 every time modprobe loads the ndiswrapper module.

gordon> sudo ndiswrapper -m

Now use modprobe to load the ndiswrapper module into memory. Module are like dynamic libraries which can be loaded on demand to give your Linux installation extra capabilities.

gordon> sudo modprobe -i ndiswrapper

And DING! Power and signal LEDs on the adapter are both on!

I'm not all the way there yet but this is a significant jump forward over the sweat and tears of Tuesday and complete stalemate of Wednesday. I still have to set up wpa_supplicant to handle my WPA encryption and make sure everything is reloaded automatically on rebooting. I'll cover the problems I had getting to here in the next post.

(There's weren't really tears. If Linux ever really makes me cry then it's time to get a new hobby)





No comments: