Building open80211s on Ubuntu

This is a quick tutorial for building the wireless-testing kernel with open80211s enabled on Ubuntu. More official Ubuntu-specific details are available on the Ubuntu Wiki.

Prerequisites

You need the following packages to build the kernel and make kernel packages:

$ sudo apt-get install -y linux-kernel-devel fakeroot build-essential git-core

To use menuconfig, you need ncurses:

$ sudo apt-get install libncurses5

If you have not done it yet, clone the wireless-testing kernel tree:

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

Configuring the kernel

Go to the wireless-testing directory and copy your current kernel's configuration:

$ cd wireless-testing
$ cp /boot/config-`uname -r` .config

and then update the configuration for the new kernel:

$ make oldconfig

If you need to apply any patches to the kernel, do so now.

Now run menuconfig (or your preferred configuration utility) and select at least the following options:

  • Networking -> Wireless -> Generic IEEE 802.11 Networking Stack (mac80211)
    • Enable mac80211 mesh networking (pre-802.11s) support

Enable any device driver(s) that you need, for instance:

  • Device Drivers -> Network Device Support -> Wireless LAN -> ZyDAS ZD1211/ZD1211B USB-wireless support

Building the kernel

To build the kernel and make packages:

$ fakeroot make-kpkg --initrd kernel_image kernel_headers

When this finishes, you should see two .deb packages (the kernel itself and its headers) one directory up from the wireless-testing directory. To install them:

$ cd ..
$ sudo dpkg -i linux-*.deb

This copies files into /boot, creates an entry in /boot/grub/menu.lst and installs the modules in /lib/modules.

Additionally, you may want to create a symlink in /lib/firmware to link up your current kernel's firmware directory to the new kernel. The name of the new kernel is part of the file name for the .deb packages. For example,

$ sudo ln -s /lib/firmware/`uname -r` /lib/firmware/2.6.26-wl
  • If you are testing with the Arlink USB module or another Zydas-based interface, use up-to-date Zydas firmware.
  • If you are testing with Broadcom-based hardware, make sure that you have the correct b43 firmware available.

Testing

You may now reboot into the new kernel (select it from the grub bootloader menu). See the rest of the HOWTO for instructions on trying out the mesh.