Stable compat-wireless releases
This page is dedicated to the stable kernel compat-wireless releases. This started with the announcement of work for 2.6.30-rc series and will continue for all stable kernels releases. These stable releases are intended for users looking for more stability than what bleeding edge compat-wireless releases provide.
Case for support
Wireless vendors are encouraged to use these releases for support purposes as no extra tree needs to be created and supported. Stable fixes must always be sent upstream as well. This ensures wireless vendors are testing with stable kernels and helping stabilize the kernels further.
We recommend these the following userspace applications to be installed:
You need kernel headers to compile compat-wireless. Ensure /lib/modules/$(uname -r)/build/ exists and points to the location where the kernel headers are installed. If you do not have them, read your distribution's documentation on getting help.
After downloading, unpack the source by typing (as example: version 2.6.32-rc5):
tar -xf /path/to/compat-wireless-2.6.32-rc5.tar.bz2
Note: Modern tar selects decompressor automatically (otherwise add "–bzip2" or "-j").
Building and installing
cd /path/to/compat-wireless-2.6.32-rc5 ./scripts/driver-select <driver-name> make sudo make install
After build and installation unload modules and drivers:
sudo make unload
To load the new shiny drivers either reboot or just modprobe the module you want. To test whether or not the new drivers are being picked up you can use modprobe -l on the modules, you should see the wireless modules being picked up using the updates/ directory instead of the kernel/ directory. For example (ath9k driver):
$ modules="cfg80211 mac80211 ath9k" $ for i in $modules; do sudo modprobe -l $i; done /lib/modules/2.6.27-11-generic/updates/net/wireless/cfg80211.ko /lib/modules/2.6.27-11-generic/updates/net/mac80211/mac80211.ko /lib/modules/2.6.27-11-generic/updates/drivers/net/wireless/ath9k/ath9k.ko
Note that the make install command will output this for you so you can just look at that.
Note #2: If you got no network connection automatically, try to restart your network. For Debian systems do:
sudo /etc/init.d/networking restart
If you find a bug, please ensure you are on the latest kernel for that series. Bugs should be reported upstream on the http://bugzilla.kernel.org/. You may also want to address this on the linux-wireless mailing list first. For more details please see our reporting bugs guidelines.
If you have a patch for an bug please also ensure you are using the latest release for the respective kernel. If unsure you can ask on the linux-wireless mailing list. If you are sure its a fix you can send the patches to:
To: firstname.lastname@example.org Cc: email@example.com
Maintaining stable compat-wireles releases
Refer to the maintenance section for details on how the stable releases are made and how to checkout the compat-wireless code for those releases.
This section covers the details of how stable compat-wireless releases are made and maintained. Wireless driver development occurs on a development tree called wireless-testing. The stable kernel releases are not made from this tree though because wireless-testing consists of patches queued up for the next kernel release. If what was just described does not make any sense to you you can read the bug fix propagation documentation which covers this into much greater detail.
We had been providing tarballs of drivers to users based on wireless-testing but since its a development tree chances are high users would run into issues on occasion. Using the stable kernel should then help with that, and to help tests and get drivers to users quicker we provide tarballs based on the latest stable RC kernel. So as soon as 2.6.33-rc1 will be released we'll provide a package with those drivers to users and distributions.
compat-wireless works off the the wireless-testing git tree, as such its master git branch is for usage with the wireless-testing git tree. Different branches are created upon a release of a new stable RC kernel and these new branches are then used only for updates for hunk changes and bug fixes while the master branch continues on with the wireless-testing tree.
We have a branch then for each stable kernel we have supported:
mcgrof@tux ~/devel/compat-wireless-2.6 $ git branch -r origin/HEAD -> origin/master origin/linux-2.6.30.y origin/linux-2.6.31.y origin/linux-2.6.32.y origin/master
To generate a tarball for the 2.6.32 kernel we then refer compat-wireless to a stable kernel git tree with that code. Since Linus's tree does not have the extra version releases of each kernel another tree must be used for stable release purposes then. The Unified stable tree is then used for this purpose. You can check out the code here:
So as with the bleeding edge tree we can do:
Since the goal is to make clean tarball without the git tree index stuff a script has been added to allow you to make a release easily:
This should tell you it put a tarball under /tmp/staging/ somewhere.
If you have a driver or feature you are testing you can feel free to just stuff it into the compat/patches/ directory and upon a refresh (or ./scripts/admin-update.sh) the patch will be applied.