ATTENTION: I'm not actively maintaining the patch or docs anymore for a various set of reasons (the cards are old, less common now, and trying to maintain a patch for every point-release and distro-modified kernel ceased to make sense. The docs are left here as pointers for the curious. http://www.projectiwear.org/~plasmahh/orinoco.html is an alternate set of patches which may be more up to date. Linux Orinoco RFMon 2.6 Kernel HOWTO Mike Kershaw dragorn@kismetwireless.net August 17 2004 1. Introduction The 2.6.x kernel series includes the Orinoco 0.13 driver chain. These drivers do not contain monitor mode internally, but fortunately they're the same code base as the 2.4.x 0.13e standlone driver package, which means the same diffs can be applied. 2. Who this is for This HOWTO is for users of the 2.6.x kernel tree who want to get Orinoco cards working with monitor mode. This is NOT for users of the 2.4.x kernel tree (use orinoco_cs 0.13e) or for users of other wireless cards. 3. Fetching what you need 3.1 Getting the Kernel Firstly, you need the kernel source. If you are running a distribution with strong packaging or custom kernels (such as Redhat, SuSE, etc) you will probably want to get the source package for your distribution. Users who wish to roll their own kernel or who use vanilla kernel sources can download the source from kernel.org: ftp://kernel.org/pub/linux/kernel/v2.6/ 3.2 Unpacking the source If you use a source package from your distribution, simply install it. The kernel source should be in /usr/src/linux-. If you are unpacking a vanilla kernel, simply untar it to /usr/src/. 3.3 Getting the Patches There are several patches which could be applied, however (currently) the most up-to-date patches are on the Kismet download page: http://www.kismetwireless.net/download.shtml There are variants of these patches on the shmoo site, but the most up to date ones are on the Kismet download page. The 0.13-dragorn-rfmon patch includes all of the rfmon code from Snax of the Shmoo group, as well as important bugfixes: Fixed "Error -5 writing to BAP" message floods Fixed long spinlocks on firmware reset leading to corrupted serial data, sound stuttering, and high CPU loads Various other minor cleanups 4. Testing and applying the patch The 0.13 orinoco driver patches apply to the kernel network driver path directly. First, test the patch with a dry run: cd /usr/src/linux-/drivers/net/wireless/ patch -p1 --dry-run < /path/to/downloaded/orinoco-0.13e-dragorn-rfmon.diff The patch should apply with only warnings about fuzz offsets. These are not errors, however, the 2.6 tree may change the code at some point, so be on the lookout for 'FAIL' errors. If the patch applies with --dry-run with no errors, apply it fully: patch -p1 < /path/to/downloaded/orinoco-0.13e-dragorn-rfmon.diff 5. Configuring your kernel To enable to drivers, configure your kernel with the configurator of your choice, and enable: Bus Options -> PCMCIA/Cardbus Support Device Drivers -> Networking Support -> Wireless LAN -> Hermes Chipset 802.11 support They can be either enabled as modules or integrated. 6. Compiling Compile your kernel and modules. If you have exactly the source for your running kernel (ie, using only distribution kernels and matching source packages) you can do simply: make modules make modules_install Otherwise you will need to compile your whole kernel and modules: make bzImage make modules make modules_install and then install your kernel into your bootloader via whatever methods your bootloader uses (Grub and LILO do this differently, see their man pages.)