HOW TO patch, compile and install AirSnort patched (monitor mode patched) orinoco drivers for Fedora Core 1
By
Abstract
Provides basic instructions on patching, compiling and installing patched orinoco drivers for operation
with AirSnort Wireless Sniffer. The patch allows orinoco based wireless cards to be set into "Monitor Mode", required
for the correct operation of AirSnort. Without this patch, it is not possible to use AirSnort with
orinoco based wireless cards.
This how-to assumes a basic understanding of the linux command line.
Introduction
The standard orinoco drivers that are part of most standard distribution kernels don't
contain the extra functionality required to operate with the AirSnort Wireless Sniffer
Program. So a patch needs to be applied to the orinoco drivers. On a vanilla system, this
is quite straight forward, but when using a distro specific kernel, like Fedora Core 1, I
discovered a little bit of hacking is required to get the patched drivers to compile and
insert.
I decided to write this document to record the steps I took to
compile and install the patched orinoco drivers with a standard Fedora Core 1 distribution
kernel. If you follow these steps, you should not have to recompile the kernel at all, but
rather the drivers will be built against the kernel source and can then be inserted into
the standard kernel.
If you have any suggestions as to how I can improve this documentation, please feel free
to e-mail me by clicking on the above link.
Please note, I am not a programmer and cannot answer difficult compiler related questions.
I managed to get this going by a bit of my own hacking and by a lot of googling. The information
following is presented "as is" and on that basis, no warranty is offered and no responsiblity
will be taken for system problems as a result of these instructions.
Please proceed at your own peril. :)
My environment
Before getting into the nitty gritty's of the steps involved, these instructions
where written based on the following envronment:
Distribution: Fedora Core 1
Kernel Version Installed: kernel-2.4.22-1.2174.nptl (installed from rpm)
Wireless Card: Avaya/Orinoco/Hermes 802.11b Wireless PCMCIA Card
Installation Steps:
Most of the following installation steps will require root access, so I recommend changing to
the root user prior to commencing installation.
Step 1
Obtain and install the Fedora source kernel package (rpm) that matches your kernel version.
In my case, this meant downloading and installing the package named
"kernel-source-2.4.22-1.2174.nptl". The kernel source packages are available from the Fedora
project homepage or your local Fedora mirror.
Once downloaded, the kernel source rpm can be installed using the following command:
# rpm -ivh kernel-source-2.4.22-1.2174.nptl.i686.rpm
Note that the kernel source must be clean and unmodified. The first time I attempted
to compile the patched drivers, I had trouble because I had previously compiled some lucent
modem drivers against the source, which had modified the installed source code, causing the issue.
If you're not sure, it's best to remove and re-install the source rpm to ensure it's fresh and clean.
Step 2
From a command prompt, change directories to the newly installed source directory:
# cd /usr/src/linux-2.4/
Step 3
Copy the pre-made config file (found in the "configs" directory under the current directory) that
matches your installed kernel. Because I'm running the i686 kernel, this meant copying the
config file called "kernel-2.4.22-i686.config". This file needs to be
copied to the file called ".config" in the current directory.
Eg:
# cp configs/kernel-2.4.22-i686.config .config
Step 4
Run the following command:
# make oldconfig
This will setup the source configuration using the pre-made config file that was copied over
in Step 3. When it's completed, you will be returned to the command prompt.
Step 5
Run the following command:
# make dep
This will setup dependencies in the kernel source tree.
Step 6
Edit the following file with your favorite text editor (e.g. vim):
/usr/src/linux-2.4/include/linux/version.h
Find the line that reads:
#define UTS_RELEASE "2.4.22-1.2174.nptlcustom"
and remove the word "custom", so the modified line should read:
#define UTS_RELEASE "2.4.22-1.2174.nptl"
This is necessary as otherwise the compiled modules would fail to load
with a version mismatch error.
Step 7
Download and unpack the orinoco driver source code into a suitable location (we'll use
your home directory "~/" for our example) using the tar command as follows:
# cd ~/
# tar -zxvf orinoco-0.13d.tar.gz
assuming the tarball is present in the current directory (otherwise specify the full path
to the filename in the above command).
For the kernel version specified above, you'll need to download the
tarball called "orinoco-0.13d.tar.gz". If you are running a different kernel version, you
can find out what driver source version you need to download by looking at the file named:
/usr/src/linux-2.4/drivers/net/wireless/orinoco.c
The very first line of this file will tell you what version of orinoco driver your kernel
source is using. For example, the kernel source used in this example contains the following line:
/* orinoco.c 0.13d - (formerly known as dldwd_cs.c and orinoco_cs.c)
so it's clear the kernel is using version 0.13d of the orinoco driver and therefore this is the
version of driver source you need to obtain.
You can download the above mentioned version of orinoco source from:
http://ozlabs.org/people/dgibson/dldwd/orinoco-0.13d.tar.gz
Other versions of the driver can be obtained from:
http://ozlabs.org/people/dgibson/dldwd/
Step 8
Download the matching AirSnort orinoco patch for your version of orinoco driver. In our case, you'll
need the patch available at:
http://airsnort.shmoo.com/orinoco-0.13d-patch.diff
Patches for other versions of the orinoco driver can be found at:
http://airsnort.shmoo.com/orinocoinfo.html
Copy the patch file to the same location as the unpacked orinoco-0.13d directory. (For example,
if you unpacked the orinoco driver to the path "~/orinoco-0.13d", you'll need to
copy the patch to "~/".
In our example, the patch file is called "orinoco-0.13d-patch.diff".
Step 9
From the same directory, (in our example that is "~/"), run the following
command to apply the AirSnort patch to the orinoco driver source:
# patch -p0 < orinoco-0.13d-patch.diff
If the patch applied successfully, you should be returned to the command
prompt with no errors.
Step 10
Make a backup copy of your current orinoco/wireless modules, so that if the new,
patched version doesn't insert for some reason, you can always back out the patched
modules and replace them with the originals. To do this, run the following command
from your default directory ("~/"):
# cp -r /lib/modules/2.4.22-1.2174.nptl/kernel/drivers/net/wireless/ wireless_backup
(Note: the exact directory name will change depending on the version of kernel you are running.)
Step 11
Change your current directory to the orinoco-0.13d directory with the following command:
# cd orinoco-0.13d
Step 12
Run the following command to compile the patched driver source:
# make
Step 13
You may notice a few compiling warnings, but don't worry too much about these. As
long as the compile process doesn't abort with any serious errors, the modules should now
have been compiled successfully (might take a few minutes depending on the speed of
your system). Once the compile process has finished, you should be returned to the command
prompt where you can run the following command to install the newly compiled modules:
# make install
Step 14
Run the following command and watch for errors. The command should complete without error:
# depmod -a
Step 15
You should now be able to insert or orinoco/compatible card into the system and have the
modules load successfully. Keep an eye on /var/log/messages for any error messages
about the insertion of the modules.
Problems
If you run into trouble, remember you can always copy back your original orinoco
drivers from the wireless_backup directory, that we backed up in Step 10. Don't
forget to re-run the "depmod -a" command after you have copied the original modules
back.
Finally
If all has gone well, you should now be able to run AirSnort and activate monitor
mode on your orinoco/compatible card. The quickest way I found to install AirSnort (particularly
if you want to avoid having to compile the program from source) is to download the rpm from:
http://dag.wieers.com/packages/airsnort/
Cross References
AirSnort Wireless Sniffer
home page
AirSnort Orinoco Monitor Mode Patch home page
|
Author:
|
$Date: 2004/04/09 14:20:50 $
|