User documentation for the ath5k driver is spotty. These are my working notes for them, which you hopefully will find useful. These are by no means authoritative, so your mileage may vary.


This was last updated 9 April 2009.


ath5k:

http://wireless.kernel.org/en/users/Drivers/ath5k

ath5k is contained in the mainline Linux kernel. To get a newer version of the driver, you have the option of either upgrading the entire kernel, or getting the wireless compatibility package. See

http://linuxwireless.org/en/users/Download


I'm not sure whether the wireless compatibility package is sufficient for all purposes, or if you need newer kernel versions for some features. See

http://lists.shmoo.com/pipermail/hostap/2009-February/019356.html

iw

The iw command line program is needed to configure VAPs. It depends on the libnl library, which is intended to replace wireless extensions.

http://wireless.kernel.org/en/users/Documentation/iw


Setting up a Monitor Interface

iw phy phy0 interface add moni0 type monitor

I'm not sure why the phy0 is used. moni0 may be replaced by any interface name you choose. After you create the interface, you need to enable it.

ifconfig moni0 up

At this point, you should be able to use the moni0 monitor interface as normal.


AP Mode

The source code may need to be patched to enable AP mode.

http://marc.info/?l=linux-wireless&m=122665779201442&w=2


The user space application hostapd is used. To compile, a .config file needs to be created.

http://wireless.kernel.org/en/users/Documentation/hostapd


Replacement for IOCTL

The user to kernel communication provided by ioctl calls is being replaced by nl80211 and cfg80211.


nl80211

cfg80211


Code notes

Kernel starts up mac80211 first, which starts ath5k.

Interface between mac80211 and ath5k is defined in the struct ieee80211_ops