Download latest Linux wireless drivers
You can now
download a package which lets you compile and install the latest
advances on the Linux 802.11 and Bluetooth subsystem and get some of our
latest drivers without having to recompile your entire kernel. This
package adds mac80211, mac80211 drivers, any new FullMAC
driver which has had fairly recent updates, and as of the 2.6.33-rc
series it also started backporting the Bluetooth subsystem and providing
updates to the entire Bluetooth subsystem as well as the drivers on it.
Old kernel support
compat-wireless aims to always support kernel compatibility down to the last supported 2.6 stable kernel release as noted on kernel.org. Today that is the 2.6.24 kernel. Additional kernel compatibility may
be done but it should not be something that is expected. Old kernels do
not get updates so it is highly recommended you upgrade to at least the
latest stable kernel.
compat-wireless
is shipped as a bundle for both 802.11 and bluetooth along with their
respective drivers. It is however possible for only one specific driver
to be compiled along with its requirements. In those cases kernel
compatibility may be supported down to older kernels. There used to be a
compat-wireless-old, but that is old and should only be used as a reference for curious developers.
Compat-wireless release types
We have two types of compat-wireless releases:
- linux-next compat-wireless releases - based on linux-next.git for kernels
- linux-2.6-allstable compat-wireless releases - based on linux-2.6-allstable.git
The
linux-next releases are based on bleeding edge code which will likely
end up being part of the next kernel release. linux-2.6-allstable
compat-wireless releases are made based on each new stable kernel
release made as well as each new stable RC kernel release.
This page is dedicated to always follow the bleeding edge releases based on linux-next. Refer to the linux-2.6-allstable compat-wireless releases page for more information about those.
Requirements for bleeding edge
You need two things:
- A Kernel >= 2.6.24
- Your kernel headers installed
Please be very sure you have your kernel headers installed before reporting any sort of build issues with this package. This usually will mean having this symlink point to a valid directory with kernel headers in it:
/lib/modules/`uname -r`/build
The
exception to this is if you are building the package targeting a kernel
you are not running. Users doing this should read the Building for external kernels section.
Additionally,
the kernel you're building for needs a valid ".config" file, if it
isn't present compat will assume you have PCI, USB and PCMCIA built into
your kernel and if not, fail building.
Recommended
We recommend these the following userspace applications to be installed:
Linux wireless version table
The
following is the latest release versions for code taken from
linux-next.git and on compat-wireless.git. This is updated automatically
every day. The version represents the git-describe output.
linux-next.git: <>
compat-wireless.git: <>
Where to download bleeding edge
You can get bleeding edge compat-wireless here:
This package is updated daily. It reflects the latest on linux-next.git tree.
Directly downloading the tarball
We have enabled anti-hotlinking to the compat-wireless-2.6.tar.bz2 tarball. This ensures users directed to this tarball from random tutorials online will hopefully read this page. Anti-hotlinking prevents users from accessing the tarball directly before seeing this page. In summary, you cannot directly download (for example using wget) this tarball before having viewed this introductory page. If you try to do so you will be redirected here. You can, however, directly download a dated version of the tarball, for example compat-wireless-2008-03-25.tar.bz2.
You can find the latest dated tarball in the compat-wireless-2.6 download directory.
Archive of compat-wireless-2.6 tarballs
linuxwireless.org only hosts the latest dated compat-wireless-2.6 tarball but if you would like an older release please check the compat-wireless-2.6 archive, which is hosted by Orbit.
Selecting your driver
Extract:
Extract the content of the package:
tar jxvf compat-wireless-$(date -I).tar.bz2
If you know what driver you want you can use driver-select:
./scripts/driver-select
Selecting
your driver can reduce the amount of time to compile compat-wireless.
It may also enable kernel compatibility down to older kernels. If you
want to restore compat-wireless to enable all drivers again you can use:
./scripts/driver-select restore
If
you do not see your driver in the supported list it means care has not
been taken to ensure it works with driver-select and you must just build
compat-wireless as a whole.
Building and installing
Build:
Build the latest Linux wireless subsystem:
cd compat-wireless-$(date -I)
make
Install:
We
use the updates/ directory so your distribution's drivers are left
intact. By default depmod will search this directory first, but if you
find that it does not then check that your depmod.conf file lists the
search order correctly with updates appearing first (before built-in).
sudo make install
Uninstall:
This nukes our changes to updates/ so you can go back to using your distribution's supported drivers.
sudo make uninstall
Unload:
Since
you might be replacing your old mac80211 and bluetooth drivers you
should first try to unload all existing mac80211 and related drivers.
Note also that broadcom, zydas, and atheros devices have old legacy
drivers which you need to be sure are removed first. We provide a
mechanism to unload all old and legacy drivers first so you should run
to be sure:
sudo make unload
Load:
Before
loading modules you must first unload your old wireless subsystem
modules. Read above how to do this. If you know what module you need you
can simply load the module using modprobe. If you simply are not sure
you can use, just reboot the box.
Drivers
We tend to
carry all new 802.11 drivers or any drivers worth getting updates for.
For a list of all current Linux 802.11 drivers see our 802.11 Drivers page.
Known issues
If MadWifi
is present the build system will detect this and disable it. It does
this by simply renaming ath_pci.ko to ath_pci.ko.ignore. This lets us
disable the MadWifi driver without blacklisting it which could cause issues with users later. If you would like to enable MadWifi at a later time and disable ath5k you can run:
sudo athload madwifi
To revert back to ath5k you can run:
sudo athload ath5k
Why was this work done?
It was done
for users or developers stuck on older kernels that want to help test
or patch wireless work. Additionally if you're on a recent kernel this
lets you get the latest and greatest wireless-2.6 git work without much
effort. This may mean new drivers for some users. Last but not least we
hope this will encourage vendors and developers to post patches upstream
first rather than forking or maintaining their own code with their own
patches for their own drivers.
Firmware
If your driver needs firmware please be sure to check the driver page for that driver.
What's the difference between compat-wireless-2.6 and John Linville's tree?
This
package is based on linux-next.git. John sends 802.11 updates to the
linux-next.git tree based on wireless-next-2.6.git . This package then
just provides the latest wireless driver updates with some compatibility
work on top.
Linux distributions packaging compat-wireless
There
are a few Linux distributions using or packaging compat-wireless. Here
we document a bit of that information. If you know of more please expand
this section.
Getting compat-wireless on Ubuntu
With Ubuntu
you have the option of either installing compat-wireless yourself or of
installing the package that provides it built by the Ubuntu kernel
team. The Ubuntu package that carries compat-wireless is called
linux-backport-modules and it has more backported modules than just your
wireless subsystem. Its updated whenever major updates are pushed out
into the wireless-testing git tree.
# For Ubuntu 8.10 Intrepid users: sudo apt-get install linux-backports-modules-intrepid # For Ubuntu 9.04 Jaunty users: sudo apt-get install linux-backports-modules-jaunty # For Ubuntu 9.10 Karmic users: sudo apt-get install linux-backports-modules-karmic # For Ubuntu 10.04 Lucid users (one of the following depending on the installed kernel.
Most user should choose generic):
sudo apt-get install linux-backports-modules-wireless-lucid-generic sudo apt-get install linux-backports-modules-wireless-lucid-generic-pae sudo apt-get install linux-backports-modules-wireless-lucid-preempt sudo apt-get install linux-backports-modules-wireless-lucid-server # For Ubuntu 10.10 Maverick users (one of the following depending on the installed kernel.
Most user should choose generic):
sudo apt-get install linux-backports-modules-compat-wireless-2.6.36-maverick-generic sudo apt-get install linux-backports-modules-compat-wireless-2.6.36-maverick-generic-pae sudo apt-get install linux-backports-modules-compat-wireless-2.6.36-maverick-server
Please note that if you are installing linux-backports-modules-karmic and you later decide to install compat-wireless by building it by yourself you are highly encouraged you first remove linux-backports-modules-karmic first otherwise you can run into module dependency conflicts.
Getting compat-wireless on Fedora
This is documented onsgruszka's compat-wireless page
Getting compat-wireless on ChromeOS
ChromeOS integrates releases of compat-wireless into its main releases.
Building for external kernels
If you have
a kernel you do not have installed but yet want to build the
compat-wireless-2.6 drivers for it you can use this syntax:
make KLIB=/home/mcgrof/kernels/linux-2.6.27.22 \ KLIB_BUILD=/home/mcgrof/kernels/linux-2.6.27.22
Bugs
If you've found a bug please report it to our linux-wireless mailing list:
linux-wireless@vger.kernel.org
Report
the bug because you are working with the latest and greatest. If your
bug is compatibility-related then we should still try to fix it within
the compatibility layer.
ChangeLog
linux-next ChangeLog
See the wireless-testing ChangeLog to see the list of latest changes to all 802.11 drivers, the 802.11 core and Blueooth. Since this package is based on the linux-next.git latest means patches which John has accepted a couple of days ago.
compat-wireless ChangeLog
See the compat-wireless-2.6 ChangeLog to view changes made necessary in order to keep advancing this package.
License
This work
is a subset of the Linux kernel as such we keep the kernel's Copyright
practice. Some files have their own copyright and in those cases the
license is mentioned in the file. All additional work made to building
this package is licensed under the GPLv2.
Hacking compat-wireless
If you'd like to hack on compat-wireless of make your own releases refer to the hacking compat-wireless page.