====== compat-wireless - DEPRECATED ====== **UPDATE: DO NOT USE ANYMORE. If successful, it is a downgrade from the curent version of your existing drivers** **UPDATE: compat-wireless is now known as [[https://backports.wiki.kernel.org/index.php/Main_Page|backports]]** **Compat-wireless** is a package which contains the development and stable versions (pulled from the kernel's git repository) of the in-kernel wireless drivers and the mac80211 wireless stack. New packages are released pretty much every day. This package is mentioned quite often on the forums and the IRC channel because using it is very convenient. You can think of it (in fact, you should) as a sized-down version of the kernel tree, a one that contains only the sources of the wireless drivers and the wireless stack. Therefore, you can apply any wireless-related patches to it and recompile them without having to recompile the whole kernel. Additionally, the development versions of the drivers have one particular advantage : they're being constantly improved. It is not uncommon to see that they support more hardware, have better performance, or simply contain fixes to various bugs - in contrast to their stable versions. However, you should always remember that development versions may be incomplete or contain even more bugs than the stable ones. We distinguish [[http://linuxwireless.org/en/users/Download#Compat-wireless_release_types|two]] versions of compat-wireless, development (//bleeding edge//) and stable. The development version may include more drivers, supported hardware and bug-fixes but may not be as stable as the 'stable' version which implies its nature. With minor exceptions, both versions will suffice in your bid to enable //aircrack-ng// support for your card/driver. For the majority of the users the stable version is the preferred one to use The home page of the package is [[http://wireless.kernel.org/en/users/Download|here]]. Visit the compat-wireless [[http://forum.aircrack-ng.org/index.php?topic=6951.0|forum thread]] to share your experience if you need assistance. ===== Package requirements ===== In order to install this package, you need to have a few things : * Kernel **2.6.24** or higher * The kernel headers for the kernel you're currently running * Basic development tools ===== Installing the package ===== If you meet the requirements of the package, you can try installing it. ==== Kernels 2.6.24 or higher ==== The installation process is as follows: // Download the latest available package from http://wireless.kernel.org/en/users/Download/stable/ // $ tar xvjf compat-wireless-3.6-rc6-1.tar.bz2 //**note:** the exact filename of the tarball depends on which version you have downloaded, substitute the example filename with the one corresponding to the file you downloaded// $ cd compat-wireless-3.6-rc6-1 $ wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch $ patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch //**note:** the next two steps are only required for compat-wireless versions before v3.3-rc1-2 // $ wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch $ patch -p1 < channel-negative-one-maxim.patch ( apply any additional patches that you may need) //Before compiling, take a look at "driver-select" down the page// $ make $ sudo make install $ sudo make wlunload $ sudo modprobe driver-name Reboot, if you're unsure. ==== Kernels 2.6.22 - 2.6.24 ==== If you're using an ancient kernel, currently lower than 2.6.24, you won't have much success enabling aircrack-ng. There used to be a package called //compat-wireless-old// which is no longer supported. You could try and dig in to [[http://www.orbit-lab.org/kernel/compat-wireless-2.6/|Orbit's]] archives for older releases, be warned, the likelihood of you succeeding is very slim. Your best bet to enable compat-wireless, thus aircrack-ng, is to install a supported kernel version. An other convenient option is to utilize linux Live CD with preconfigured settings for easy aircrack-ng operation. ===== Uninstalling the package ===== Should you be in any way dissatisfied with the new drivers, you can uninstall them very easily and return to your default wireless kernel drivers: $ cd compat-wireless-$(date -I) $ sudo make uninstall $ sudo make wlunload Then reboot or sudo modprobe your-desired-driver to complete the process. ===== Driver Select ===== compat-wireless offers one very useful script, called //driver-select//, which allows you to save time when compiling your preferred driver. Currently not all drivers are available via driver-select but the most common ones are. Its useful if you install compat-wireless frequently or if you have one card on your computer. Enter the compat-wireless directory and issue: ./scripts/driver-select to see all of the available drivers and options. An example of installing singular module would be ./scripts/driver-select ath9k followed by "sudo make && sudo make install" Refer to the linux-wireless [[http://linuxwireless.org/en/users/Download#Selecting_your_driver|driver-select]] page for more details. ===== Troubleshooting ===== ==== Compilation problems ==== If you encounter compilation problems, please make sure you've got kernel headers installed and that the system knows where to look for them. Generally, there should be a symlink under /lib/modules/`uname -r`/build which points to the directory containing the kernel headers. **Compilation errors** Every now and then, you may stumble upon errors during compilation and the process may end because of them. Its not necessarily **//your//** fault. Sometimes, the compat-wireless tar balls do come out with compile errors built in, which are usually resolved in the next few releases. Should this happens to you, simply download an older version from the previous days and try again. If your problem persists and you're stuck, share your difficulties with the community in this [[http://forum.aircrack-ng.org/index.php?topic=6951.0|forum]] thread ==== Module loading problems ==== Firstly, make sure that the compat-wireless package was compiled with GCC whose minor version is the same as the minor version of the GCC with which the kernel was compiled. For example, if you compiled your kernel with GCC 4.3.2, but you compiled compat-wireless with GCC 4.4.1, you might run into "Invalid module format" problems. These will also occur if you've built the package for a different kernel than the one you're currently running. Secondly, as shown above, it is imperative to unload ALL wireless modules before you attempt to load your newly compiled ones. While in the compat-wireless directory sudo make wlunload will make sure all of the wireless modules are unloaded, which will pave the way for your new driver take its place. Reboot if you're unsure.