Building compat-wireless drivers for 2.6.30

| |

ath5k driver in 2.6.30 does not support AP mode. After a bit of research, it was found that the latest compat-wireless code supports it and it will be probably included in 2.6.31. For 2.6.30 kernel, I will need to build from either compat-wireless or to patch it. It is a bit troublesome to build the driver modules out-of-kernel-tree and cannot use debian's make-kpkg to bundle the drivers in the kernel image. Since I am testing it rather than releasing it, I should investigate later to build compat-wireless module package.

First, download bleeding-edge source code and extract it. As describe here, you cannot use wget to automate the download of compat-wireless-2.6.tar.bz2, which contain all the latest codes of wireless drivers. However, the tarball with a date in the file name (e.g. compat-wireless-2009-07-10.tar.bz2) can. So browse this directory and download the tarball with the current date accordingly:

# cd /usr/src/
# wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2009-07-10.tar.bz2
# tar -jxf compat-wireless-2009-07-10.tar.bz2 
Since I build the drivers for Voyage Linux kernel, I need to specify KLIB and KLIB_BUILD to different directory. Otherwise, "uname -r" will be used to determine your kernel version.
# cd /usr/src/compat-wireless-2009-07-10
# make KLIB=/usr/src/linux-source-2.6.30-voyage/ \
    KLIB_BUILD=/usr/src/linux-source-2.6.30-voyage/
This will built all modules /usr/src/compat-wireless-2009-07-10. To get all the .ko driver modules, it is more tricky and you need to specify the correct variables accordingly.
# mkdir -p /root/compat-wireless 
# make -C /usr/src/linux-source-2.6.30-voyage/ \
   M=/usr/src/compat-wireless-2009-07-10 \
   INSTALL_MOD_PATH=/root/compat-wireless modules_install
Now all the latest drivers are now installed to /root/compat-wireless so that I can transfer the driver modules from there to my ALIX board using scp easily.