Ath-driver.org, OpenHAL HOWTO

In the last few days I was solving problem with accessing EEPROM in Atheros cards in case there is checksum error when loading MadWifi + original Atheros HAL.

After few hours of experiments I found working solution provided by madwifi-old driver in combination with OpenHAL (from ath-driver.org), which is open-source implementation of Atheros HAL (not yet finished). Here are few notes how to get these things to work.

First you need to checkout madwifi-old driver from SVN.

svn checkout http://svn.madwifi.org/branches/madwifi-old -r 1142 madwifi

And fix bug in net80211/ieee80211_radiotap.h - remove ending “)” on line 175.

Original line:

#if !defined(__KERNEL__) && !defined(_KERNEL))

After patching

#if !defined(__KERNEL__) && !defined(_KERNEL)

Then you need to download OpenHAL.

git clone rsync://rsync.ath-driver.org/gnumonks_users/mb/openhal.git ./openhal

When you’ve got patched madwifi-old and OpenHAL, you need to move openhal directory to madwifi-old directory structure and do some changes in Makefile.inc.

Change these lines in Makefile.inc:

HAL=${obj}/${DEPTH}/hal

ATH_HAL=${DEPTH}/ath_hal

Into these:

HAL=${obj}/${DEPTH}/openhal

ATH_HAL=${DEPTH}/openhal

If you want unlimited channel availability, you need to do this change to openhal/opt_ah.h (be carefull when using this - you can break laws in your country very easy).

Before change:

#define SUPERCHANNEL 0

After change:

#define SUPERCHANNEL 1

And then usual make, make install and modprobe ath_pci. I recommend to read opehal/README since there are some limitations when using OpenHAL.

UPDATE: There are new webpages for OpenHAL on MadWifi website Wiki.

Written on January 13, 2007