This is libicd-network-wpa, an experimental icd plugin that uses wpa_supplicant to connect to (not only WPA) Wi-Fi access points.

This is still an alpha, and probably it will ever remain as such since I can't think of a better, cleaner way to do what it tries to achieve, unless you add new hardware or drivers to the mix. So, I'm of course happy to accept patches or ideas.

The following assumes you have OS2008 and the Diablo SDK.

Installation instructions

My suggestion is that you clone the git repo (preferrably a stable tag), and read each of the following steps carefully:

Modified cx3110

This patch was not done by me (search maemo-developers list to find the author); I just adapted some of wireless extensions functions to match what the original libicd-network-wlan (which is closed source) expects. This allows both a patched wpa_supplicant and the standard Maemo utilities to cooperate on the same system, with nearly full functionality.

  1. Download source package cx3110-module-src and apply patch patches/cx3110-module-src.
  2. Build the module and test (rmmod cx3110; insmod /path/to/cx3110.ko; chroot /mnt/initfs wlan-cal). The device should still be able to connect to Wi-Fi networks.
  3. If it works, you can move it to rootfs for it to be automatically loaded at boot time.

Modified wpasupplicant

  1. Download source package wpasupplicant and apply patch patches/wpasupplicant.
  2. Build the package and install it on the device. It should not (well, it can't) affect connectivity to Wi-Fi networks.

Modified wlancond

This implements a special dumbed down mode in wlancond used by libicd-network-wpa. I don't know why I did this. Probably because I though I would get free powersaving and other nice features, but I didn't. So I guess a future version may remove this, or may not. Either way, for now, you'll need to patch.

  1. Download source package osso-wlan, and apply patch patches/osso-wlan.
  2. Build the package and install.
  3. Test it does not break Wi-Fi connectivity.

libicd-network-wpa itself

The library should hopefully build with a simple make.

GConf settings