WPA in Debian and Poky

During last week I switched my home WiFi from insecure WEP to WPA2.

Why not used WPA before? My x86 test machine was ProGear which use Orinoco PCMCIA card (no WPA support) and I also used Tosa with that crap called wlan-ng (also no WPA support). Now I have USB Ethernet card and PCMCIA->CF adapter so both can be connected via wire or with CF WiFi card (Prism2 with 1.8.4 firmware so WPA out-of-box).

But since I use Dell D400 as x86 test machine ProGear is not powered — I will probably put it on shelf to get some desk space free (there is no such thing as big enough desk — just ones that are not cluttered yet).

But how to get WPA working in Debian, Poky, Ångström, OpenZaurus or other distros? You basically need few things:

  • WPA-Supplicant
  • card with good driver (so no Orinoco or wlan-ng crap)
  • proper configuration
  • network with WPA

First I configured “maluch” (D400). Installed wpasupplicant package and discovered that it is not supported out-of-box. README propose two methods:

  1. Use only one network and configure network in /etc/network/interfaces
  2. Roaming networks with extra scripts

I decided to follow 3rd way where you need to edit /etc/network/interfaces just to tell wpa-supplicant which config it has to use and which driver:

iface eth1 inet dhcp
        wpa-driver wext
        wpa-conf /etc/wpa_supplicant/config

This way wpa-supplicant is started automatically with /etc/wpa_supplicant/config file as configuration. This file also contain all networks which you want to connect. It can be edited by hand or using external tools — wpa_cli or wpa_gui (QT3/QT4). Have to check does it works ok with other networks then my home one but it should work.

Then same configuration on Zaurus C760 running Poky — Prism2 card in CompactFlash slot. Connecting to network works out-of-box now. On Nokia 770 all I need to to was entering WPA-PSK key.

The worst part was MS Windows laptop — I had to remove all networks from list of preferred ones, reboot and then enter WPA-PSK key to get it working.

Now it should be harder to connect to my network 😉