Professional Documents
Culture Documents
ACX
From ACX100/ACX111 wireless network driver project
Contents
■ 1 Introduction
■ 2 System requirements
■ 2.1 Appropriate OS
■ 2.2 Kernel headers
■ 2.3 Hotplug/Udev subsystem
■ 2.4 Build utilities
■ 3 Downloading
■ 3.1 Firmware images
■ 3.2 Driver sources
■ 4 Installing
■ 4.1 Outside the kernel tree
■ 4.2 Inside the kernel tree (If your kernel is inside /usr/src/linux)
■ 5 Testing and inserting into kernel
Introduction
This page describes how to do a manual install of the driver (works for any distro). You will probably
first want to take a look at Distribution list to see if there are instructions specific to your distro or
whether there is any need for a manual install (e.g. if the driver is shipped with your distro and it is
working, there is no need for a manual inatallation).
If there is ANYTHING in here that you're struggling with, then please mail me (andi AT A HOST
CALLED lisas.de): we simply need this guide to become as reliable as possible.
System requirements
Appropriate OS
■ A recent Linux kernel of the 2.6 series (at least 2.6.10, although you might find that only the
newest versions are currently supported).
Notes: an unsupported old version compatible with the kernel 2.4 series is also available at:
http://lisas.de/~andi/acx100/old/.
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 2 of 7
Kernel headers
Make sure you have the appropriate kernel header files (i.e. kernel development files package) installed
which fully match the version of your currently running kernel (i.e. the development files version
which has been used by your distribution to build the kernel version as shown when running "uname -
a").
Make sure to become familiar with the software packaging mechanisms of your particular Linux
distribution (search on the internet for info on how to install program packages - .deb, .rpm, ... package
files). Then do an internet search for the kernel development or kernel header package you need to
install in addition to the already existing kernel binary files.
If you are not sure (this is a difficult step anyway), you may need to seek assistance from someone
familiar with your distribution (friends, Internet, distribution-specific IRC channels, ...).
If compilation of the driver package fails when doing this below, then missing or incorrect kernel build
files is a likely reason. FIXME: for further clarification, could someone here please add a distribution-
specific real-world example of which kernel build package to install for which specific kernel binary
package? (i.e. "install kernel-foo-dev_2.6.12-4-baz.rpm if you're running the kernel from package kernel
-foo_2.6.12-4-baz.rpm on SuSE").
For RedHat / Fedora, the "kernel-devel" package does not suffice for either of the build methods below
and you will need a full kernel source tree. This can be obtained and installed as follows: - Download
the kernel .src.rpm file from the Fedora core website - Install it with "rpm -ivh" - Have it unpack the
source with "rpmbuild -bp --target i686 /usr/src/redhat/SPECS/kernelxxx.spec" - Rename the kernel
source directory from /usr/src/redhat/BUILD/kernelxx/linux-2.6.xxx to /usr/src/kernels/`uname -r`
EDIT : For Fedora Core 5, installing only kernel-devel works. (tested with kernels 2.6.15-1.2054_FC5
& 2.6.17-1.2174_FC5). Works also for Fedore Core 4. (tested with kernels 2.6.11-1.1369-FC4-smp &
2.6.17-1.2174_FC4-smp).
For Debian or Knoppix (---> Debian) and possibly also Ubuntu, you should probably do the following:
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 3 of 7
to hopefully fetch the development header files directly matching your currently running kernel (which
is a strong requirement for building a driver module for the current kernel). If you need to know exact
details about Debian kernel source/build setup, you may visit http://kernel-
handbook.alioth.debian.org/ch-common-tasks.html
Hotplug/Udev subsystem
Next, you need to make sure you have hotplug firmware loading configured in your kernel. Again,
check with someone familiar with your distro about how to do this. Most modern distros are shipping
with it enabled now, and on newer ones it has even been completely been replaced by udev. If this
support is compiled as kernel module instead of built-in, then you may need to run "modprobe
firmware_class" as root to avoid missing release_firmware symbol kernel log error on acx module
loading.
Build utilities
Your system needs to have GNU make and the gcc compiler installed. If you get "No such file or
directory" when the driver installation references those, then you need to install the make and/or gcc
Linux package of your Linux distribution.
Downloading
Firmware images
EDIT : If you are using a PCI card LevelOne WNC-0200 none of the firmware mentioned below should
work.
Instead, use the firmware from the installion CD-ROM; e.g., copy the files from /DRIVER/PCI
CARD/WINXP to /lib/firmware (in case of FC4 distribution) and rename as them as follows:
ACXGEN.BIN to tiacx100
TIACXRMX.BIN to tiacx100r0D
TIACXRFM.BIN to tiacx100r11
Driver sources
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 4 of 7
Installing
There are two ways to install the driver by hand. Doing the install outside the kernel tree is the easier
and preferred way to go. Only do one of the following.
Note: On Fedora Core 6, the config.h file is deprecated in the new Fedora Core 6 kernel 2.6.18-
1.2798.fc6 source tree, so if you don't want to go editing the ACX code, create a symbolic link to the
replacement autoconf.h
# cd /usr/src
# mkdir acx-20070101
Next up we get a hold of the source tree and extract it. Now is where you'll use your snapshot you
picked above.
# wget http://downloads.sourceforge.net/acx100/acx-20071003.tar.bz2
# tar xjvf acx-20071003.tar.bz2
# cd acx-20071003
The reason we had to make the directory rather than just uncompressing the tarball directly into /usr/src
is that the tarballs are designed for use in the kernel tree, not for building outside of it.
Next up, the building stage (must be made with root's rights)
What that command does is tells the make command to use the build tree from your current kernel's
headers. uname -r returns the kernel version (like 2.6.14-patched) and back ticks execute the command
inside of them and return them in the place of the back ticks. The M=`pwd` tells make that the source
tree your building is at where you are now. This command would be the equivalent of: make -
C /lib/modules/2.6.14-patched/build M=/usr/src/acx-20051202 on a 2.6.14 system with a patch set
named 'patched', using the 20051202 snapshot uncompressed into acx-20051202.
If this fails (e.g. with a Makefile not found problem), then this probably means that you don't have a
properly matching kernel build environment as outlined above: retry.
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 5 of 7
First off, I'm going to assume that your kernel is in /usr/src/linux. That means that you have an
unpacked kernel there, preferbaly of a recent vintage. So, lets go there:
cd /usr/src/linux
cd drivers/net/wireless
mkdir acx
cd acx
Perhaps you want to disable the USB build? If so, you want to comment out lines dealing with USB in
these 2 files (replace ${EDITOR} with your favorite text-editor, vim/nano/emacs/gedit/whatever).
cd ..
echo 'obj-m += acx/' >> Makefile
If you are going to make a distro kernel or a patchset that is potentially used by people who don't have
an ACX1xx card, you should probably use the Kconfig system. This part left as an exercise to the
reader ;)
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 6 of 7
cd /usr/src/linux
make menuconfig # You won't find an acx option - don't worry about it, it will get built anyway
make && make modules_install
And, done! ;)
That will list any modules with 'acx' in the name. Watch for acx or acx_pci or acx_usb
To test that our module works (you should first have chosen the correct Firmware file(s) and put it in a
proper place for this to fully succeed), do:
insmod ./acx.ko
If it doesn't output anything, the module loaded at the very least. If you get an error, switch to
cd /usr/share/acx-20070101
and try
insmod ./acx.ko
again (if it fails again, make sure to check dmesg output for further details!). Next we see if it created the
appropriate wireless interfaces.
iwconfig
That command should show you something about your card, if not, check dmesg for errors (such as
failure to find firmware file names) and verify whether all initial requirements above are met, or
continue to the next step! My card works fine and isn't shown in iwconfig...
Assuming everything has loaded successfully, you can move onto installing the driver into /lib .
EDIT : On Fedore Core 5, module won't load on startup. You can try this :
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010
ACX - ACX100/ACX111 wireless network driver project Page 7 of 7
1- vi /etc/modprobe.conf
rmmod acx
modprobe acx
EDIT2 : On Debian etch the module did not load on startup. I did not do the edits above. Reloading the
module manually and then running depmod manually fixed it.
Now you are ready to configure your wireless interface whichever way your distro handles them.
http://acx100.sourceforge.net/w/index.php?title=ACX&printable=yes 24/06/2010