NOTE: this page is for archival only, see the note at the end of the page.

Download latest Linux wireless drivers

You can now download a package which lets you compile and install the latest advances on the Linux wireless subsystem and get some of our latest drivers without having to recompile your entire kernel. We provide compatibility support since 2.6.22 as that is when mac80211 was introduced onto the stock kernel. For now, this adds only mac80211 and mac80211 drivers as we go on testing them.

If you'd like to keep the wireless-2.6 git repository local as well, please read out git-guide] which explains how to achieve this. With a local git repository you can update the compatibility package yourself. For more information on how to do this please refer the [[[en/users/download#Developers section below.

Where to download

You can download this package here:

http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2

This package is updated daily. It reflects the latest on wireless-2.6.git 'everything' branch.

Building and installing

Build:

Build the latest linux wireless subsystem

make

Install:

We use the updates/ directory so your distribution's drivers are left intact.

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

Load:

This unloads your old mac80211 and wireless drivers and loads the new shiny ones. For example if ipw3945 and its proprietary daemon are found it'll be stopped and the module unloaded and then iwl3945 will be loaded.

sudo make load

Drivers

We'll add more as we go on testing them throughout the old supported kernels. Only tested drivers will be added.

Drivers

2.6.22

2.6.23

ath5k

OK

?

b43 + ssb

?

?

iwl3945

OK

?

iwl4965

?

?

zd1211rw-mac80211

OK

?

Known issues

  • Strange wireless device names:

On Ubuntu and Fedora you may end up with strange network device names, for example, wlan0_rename. This is a known issue and will be worked on.

More compatibility work is needed to add nl80211

  • b43:

We still need to iron out some compatibility issues in order to enable b43.

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 ./scripts/athenable madwifi

To revert back to [[en/users/Drivers/ath5k|ath5k] you can run:

sudo ./scripts/athenable 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 mac80211 releases with their own patches for their own drivers.

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 compat.[ch] work.

How about compatibility work for kernels older than 2.6.22 ?

Sure, feel free to send patches. The main work was designed to support kernels >= 2.6.22 as that was when mac80211 was introduced.

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.

Developers

Please try adding new drivers, test them and if they work enable them. You can then send patches. Compatibility work goes into compat/compat.[ch]. If using those files do not suffice additional actual code changes can go into compat/compat.diff.

scripts/admin-clean.sh          - Cleans the compat-wireless-2.6 tree
scripts/admin-update.sh         - Updates compat-wireless-2.6 with your git tree
scripts/admin-refresh.sh        - Does the above two

To add new drivers:

  • Add directory to scripts/admin-update.sh $DRIVERS variable
  • Add new compat-wireless-2.6/ dir to obj-y on the local Makefile
  • Update compat patch:

cp drivers/foo/Makefile drivers/Makefile.old
# edit drivers/foo/Makefile and make necessary changes to enable module
diff -u drivers/foo/Makefile.old drivers/foo/Makefile >> \
    compat/compat.diff
# Append to compat/compat.[ch] any new changes needed
# to support the driver, please be specific about the reasons
# for your additions
  • Refresh and test:
    • /scripts/admin-refresh.sh
  • Send patches of the work

Patches for compatibility work

Please send patches against:

git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git

To: Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
CC: linux-wireless@vger.kernel.org
Subject: [PATCH] compat-2.6: add driver foo

Patches for drivers

If you'd like to send patches for a driver though you can send it using our Submitting Patches guidelines.


This is a static dump of the wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v123, v122, v121, v120, v119, v118, v117, v116, v115, v114, v113, v112, v111, v110, v109, v108, v107, v106, v105, v104, v103, v102, v101, v100, v99, v98, v97, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1