http://blog.chinaunix.net/uid-20738884-id-757723.html
= Building open80211s on Ubuntu =
This is a quick tutorial for building the {{{wireless-testing}}} kernel with open80211s enabled on [http://www.ubuntu.com/ Ubuntu]. More official Ubuntu-specific details are available on the [https://help.ubuntu.com/community/Kernel/Compile Ubuntu Wiki].
== Prerequisites ==
You need the following packages to build the kernel and make kernel packages:
{{{
$ sudo apt-get install -y fakeroot build-essential git-core kernel-package
}}}
To use menuconfig, you need ncurses:
{{{
$ sudo apt-get install libncurses5 ncurses-dev
}}}
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. [http://astore.amazon.com/gracoproducts-20?_encoding=UTF8&node=1 graco baby stroller] 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 [http://linuxwireless.org/en/users/Drivers/zd1211rw#Firmware Zydas firmware].
* If you are testing with Broadcom-based hardware, make sure that you have the correct [http://linuxwireless.org/en/users/Drivers/b43#firmwareinstallation b43 firmware] available.
== Testing ==
You may now reboot into the new kernel (select it from the grub bootloader menu). See the rest of the [wiki:HOWTO-0.2.1 HOWTO] for instructions on trying out the mesh. [http://astore.amazon.com/bissellstore-20/detail/B001EYFQ28 Bissell 33A1 Pet Hair Eraser Corded Handheld Vacuum Cleaner]