09 September 2008

MadWifi and SkinnyDebbie

My main SkinnyDebbie test machine is an Acer TravelMate 508T laptop. It has no built-in Ethernet. I don't think I need to say that it has no built-in WiFi. It has one PCMCIA slot.

I use a 3Com OfficeConnect 10/100 LAN adapter card (PCMCIA) for Ethernet connectivity. I've never had to do anything special to make the lappy's networking go with any Linux distribution I have tried. It just works "out of the box." I also have a D-Link DWL-G630 WiFi card (also PCMCIA). It works "out of the box" in Xubuntu, but not in SkinnyDebbie. This is a summary of how I got it to work.

I bought the D-Link card because it was listed as Linux compatible at http://linux-wless.passys.nl/ (and because of favorable comments at Newegg). The site says that my card is compatible with MadWifi drivers--drivers that have been developed to support Atheros chipsets. The process below is adapted from MadWifi's own newbie installation guide; however, I had to do some extra stuff and not do some other stuff to make it go in SkinnyDebbie. I expect that the instructions below will work for any MadWifi-compatible card. There are lots of little steps here, none of which are large or complicated, but all of which add up to some tedium. Sorry about that.

Preparation
  1. I started with my wired Ethernet card in the laptop. The WiFi card was not physically in the machine.
  2. Verify that your WiFi card is compatible with the MadWifi drivers at http://linux-wless.passys.nl/. Be sure to check the vendor/product code of your card as well as the product ID because manufacturer's routinely change chipsets in their cards without changing model numbers! If it's not listed as working with MadWifi, then don't install the MadWifi drivers.
  3. Open a terminal and type:
    sudo aptitude install network-manager network-manager-gnome
    This will install a network management system and notification tray applet that takes a lot of the headache out of setting up and signing on to WiFi networks.
  4. When that's done, type
    sudo aptitude install module-assistant build-essential
  5. When that's done, type
    sudo m-a update
    sudo m-a prepare

    The above will install the header files needed to build the MadWifi drivers.
  6. When that's done, type
    geany ~/.icewm/startup
    In the text editor window that opens, right after the line
    xscreensaver -no-splash &
    add the line
    nm-applet --sm-disable &
    Save the file and exit Geany.
Build and install drivers
  1. Download the drivers from the Madwifi home page. I used v0.9.4. If something doesn't work in what follows, it may be because of a version change.
  2. In ROX-Filer, navigate to the *.tar.gz file you downloaded and double click on it to extract it.
  3. Open a terminal and navigate to the directory where you extracted the package. (This may be a good time to get to know ROX-Filer's Window -> Terminal here command or it's keyboard shortcut, `.)
  4. Type the following in the terminal:
    sudo ifconfig ath0 down
    sudo ifconfig wifi0 down

    You will probably get warnings or errors. Don't worry about them.
  5. Now type the following:
    cd scripts
    ./madwifi-unload
    ./find-madwifi-modules.sh $(uname -r)
    cd ..

    This removes any old modules, which you almost certainly don't have anyway. We are now ready to build the drivers.
  6. Still in the terminal, make sure you are at the top level of the downloaded and extracted MadWifi directory and type:
    sudo make
    sudo make install

    Both of the above may take some time. You should not see errors. If you do, curse the Linux gods and give up.
  7. Type:
    sudo geany /etc/modules
    In the text editor window that opens, add the following line to the bottom:
    ath_pci
    Save the file and exit Geany.
  8. Logoff and power down the computer. Replace the wired Ethernet adapter card with the WiFi adapter card.
  9. When you start the computer and login again, you should see a new icon in the notification tray. When you click on it, you will be able to select and sign into available WiFi networks
There remains one minor problem with this setup: every time you reboot your computer and login, you will be prompted to re-enter the passphrase for the network you want to join. Improving on this situation is probably possible, but it's not something I am going to tackle right now. If I do, you'll read about it here.

No comments: