MADWIFI has been the wireless driver of choice for wireless hacking for quite a while, but recently a lot of development time has been moved to the official kernel wireless subsystem drivers. They are slowly gaining and surpassing MADWIFI’s functionality, and are generally more supported and stable. One downside to these drivers is that recompiling the kernel is time and labor intensive and waiting for a distro’s kernel update can put you behind the curve in recent driver functionality.
The COMPAT-WIRELESS project pre-packages the latest wireless code as loadable kernel drivers on a (near) daily basis. This is a convenient way to download pre-patched and archived source… but in order to get the most recent changes (as they are committed) you have to pull the source directly from the kernel.org GIT tree. GIT is a code versioning system similar to CVS, SVN, Bazaar, etc. Below is a simple example of how to do this and compile / install the code. I’m writing this from an Ubuntu installation, but the same concepts should work on other distros. This isn’t an especially difficult process, but it isn’t necessarily obvious either.
There are a few prerequisites for the below instructions to work correctly:
-
Kernel greater than 2.6.21
-
Kernel headers (“apt-get install linux-headers-generic” in Ubuntu)
-
Build tools (“apt-get install build-essential” in Ubuntu)
1. Make a new directory and clone the source trees:
mkdir wireless-testing cd wireless-testing git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git
2. Make the packages
cd compat-wireless-2.6 export GIT_TREE=../wireless-testing scripts/admin-update.sh make
3. Install
cd compat-wireless-2.6 sudo make install
4. Update and repeat steps 2-3 when you want the latest and greatest
cd wireless-testing git-pull cd ../compat-wireless-2.6 git-pull
After step 3 you can try reloading the modules dynamically by running “make unload” and “make load” but this probably won’t work if you’re currently using your wireless drivers. Your best bet is to reboot your machine. You can confirm that you’re running the new(er) drivers by listing your kernel modules and look for the mac80211 module.
lsmod | grep mac80211 modinfo mac80211
If there are problems you can uninstall the drivers by running “make uninstall” from the compat-wireless-2.6 directory. Hope this is helpful!