Skip to content

CompatWirelessBuilding

guillermonunez edited this page May 3, 2012 · 8 revisions

Download compat-wireless

git clone https://github.com/mcgrof/compat-wireless.git
git clone https://github.com/mcgrof/compat.git

Fetch o11s kernel

git clone git://github.com/cozybit/open80211s.git

Required Tools

  • quilt (for refreshing)
  • realpath

Generate Archive

Use this script in the directory above:

#!/bin/bash -e

dir=$(realpath $(dirname $0))

export GIT_TREE=$dir/open80211s
export GIT_COMPAT_TREE=$dir/compat

cd compat-wireless
./scripts/admin-update.sh
cd ..

tar cfvj compat-wireless-o11s.tar.bz2 compat-wireless

It is possible that admin-update.sh fails to apply some patches. In this case, run './scripts/admin-update.sh refresh', and use the quilt tool to refresh the compat-wireless patches against open80211s.

  • If the hunk that fails applies to a driver that you are not interested in, just delete the hunk from the patch.
  • If the entire patch applies to drivers that you are not interested in, delete the entire patch.

Then remember to run ./scripts/driver-select <your_driver_of_interest_here> to avoid running into build errors for other drivers.

A recent build of compat-wireless based on our 0.5 release is available here. Note:This compat-wireless build probably only works with ath9k, ath9k_htc and ath5k drivers. See below on how to build just the ath9k drivers.

Limited Testing

compat-wireless is designed to compile on a wide range of kernel versions. We did not test all of them. In fact, we only tested Ubuntu 9.10, 10.04.3 and 10.10

$ cat /etc/issue
Ubuntu 10.04.3 LTS \n \l
$ uname -a
Linux phooey 2.6.31-23-generic #75-Ubuntu SMP Fri Mar 18 18:08:39 UTC 2011 i686 GNU/Linux
$ tar xf compat-wireless-2.6-o11s-0.4.2.tar.bz2
$ cd compat-wireless

$ ./scripts/driver-select ath9k 
Processing new driver-select request...
Backing up makefile: Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backing up makefile: drivers/net/wireless/Makefile.bk
Backing up makefile: drivers/net/wireless/ath/Makefile.bk
Backing up makefile: net/wireless/Makefile.bk
Backing up makefile: drivers/ssb/Makefile.bk
Backing up makefile: drivers/bcma/Makefile.bk
Backing up makefile: drivers/misc/eeprom/Makefile.bk
Backup exists: Makefile.bk
$ make
(...)
 MODPOST 9 modules
(...)
  LD [M]  /home/user/compat-wireless/net/wireless/cfg80211.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-23-generic'
$ sudo make install
$ sudo make wlunload
$ sudo modprobe ath9k

Notes

If you need to support multiple drivers from different vendors, the driver-select.sh script provided by compat-wireless won't let you do it. A work around:

 1. ./scripts/driver-select iwlagn
 2. make install
 3. edit Makefile:

 - install: uninstall install-modules install-scripts
 + install: install-modules install-scripts

 4. ./scripts/driver-select ath
 5. make install

Test:

 6. ls /lib/modules-${KERNEL_VERSION}/updates/drivers/net/wireless/*
 And confirm that both drivers show up.

If this works for you, please share your success with the mailing list.