General driver information
Ubuntu pre-9.10 shiped the ACX plain driver out of the box, even though it was not included in the mainline kernel. The driver is made available under the linux-image-`uname -r` package, and the firmware under the linux-restricted-modules-`uname -r` package. Ubuntu 9.10 deprecated linux-restricted-modules in favor of DKMS. (Good luck with that)
The source code for the driver can be found in the appropriate tree for each release at the Ubuntu kernel git repository. This location has been changing throughout releases, so the link to the source code of each particular release has been added to each appropriate section.
From Feisty onwards, NetworkManager was included in the main distribution. Since the ACX driver cannot interface correctly with it, NetworkManager might have to be disabled. See the instructions on how to disable it in the Feisty section of this document.
Gutsy Gibbon (7.10)
The driver, based on the 2007-10-03 release of the plain driver (TODO: confirm) works out of the box as on previous releases.
NetworkManager must be disabled as described in the Feisty section under these lines. It can be disabled by simply unchecking its entry on the "Startup Programs" tab from System>Preferences>Sessions on GNOME.
The first Gutsy development releases featured this bug from upstream, which was fixed in the Ubuntu sources, although at the time of writing the fix involving this patch has not yeet been applied upstream.
The driver provided by Ubuntu should work in most cases, but if you have the need to install the driver manually (e.g. for debugging purposes) you can follow the build instructions at the end of the page and apply the mentioned patch.
- The source code can be found at the Ubuntu Gutsy - Linux Ubuntu Modules git tree.
Feisty Fawn (7.04)
The driver and firmware work out of the box on Feisty as well, after having disabled NetworkManager (see this bug report), with firmware revision 220.127.116.11 (for acx111 PCI) and an upgraded driver, v0.3.36.
To disable NetworkManager permanently:
sudo /etc/dbus-1/event.d/25NetworkManager stop sudo /etc/dbus-1/event.d/26NetworkManagerDispatcher stop
The following two commands need to be executed as root:
echo "exit" > /etc/default/NetworkManager echo "exit" > /etc/default/NetworkManagerDispatcher
Then configure your card as usual. Afterwards you might need to do:
sudo ifdown wlan0 sudo ifup wlan0
- The source code can be found at the Ubuntu Feisty - Linux Ubuntu Modules git tree.
Edgy Eft (6.10)
The acx driver version on Edgy is still the same as on Dapper (v0.3.21), and seems to work out of the box now.
If you want to use the latest drivers or this version does not work for you, follow the build instructions section of this article.
- The source code can be found at the Ubuntu Edgy - Linux Ubuntu Modules git tree.
Dapper Drake LTS (6.06 and 6.06.1)
Bug: incorrect firmware loaded for acx111-based devices
In Dapper there is a bug for acx111 devices. The v0.3.21 version of the acx driver uses by default firmware 18.104.22.168, which is not supported by that version of the driver.
- A possible solution is to change the link of tiacx111c16 in /lib/firmware/[kernel-version]/acx/default, it should link at 22.214.171.124, instead of 126.96.36.199.
- An easier solution is to add the following line to /etc/modprobe.d/options, which will instruct the card to load the correct firmware on startup:
options acx firmware_ver=188.8.131.52
Note: There has been one report of this firmware not working on a U.S. Robotics USR5410 on a Toshiba a15-s127 laptop. The solution seemed to be to use an older firmware version (184.108.40.206) instead, i.e. substitute 220.127.116.11 by 18.104.22.168 on the previous line. Actually 22.214.171.124 works also for some Xterasys PCI 54G wireless cards (like:http://www.xterasys.com/xn2524g.htm)
- The source code can be found at the Ubuntu Dapper - Linux Ubuntu Modules git tree.
Breezy Badger (5.10)
--Sung 21:10, 8 July 2006 (PDT) In Breezy (5.10), there are some issues to take care of.
(1) While acx_pci or acx_usb are loaded by kernel at booting time, pre-installed firmwares are incomplete.In Breezy, firmwares are found in /lib/hotplug/firmware
In my case, where acx111 chip needs to be supported, this directory shows following 'more or less' relevant firmware files.
RADIO0d.BIN-2.6.12-9-386 RADIO11.BIN-2.6.12-9-386 RADIO15.BIN-2.6.12-9-386 TIACX111.BIN-2.6.12-9-386
"dmesg", however, showed TIACX111R16 is missing.
You may need to get both types of firmware (TIACX111R16 and TIACX111) from http://acx100.sourceforge.net/wiki/Firmware. It is not certain why there is "xxx-2.6.12-9-386" suffix by default, but for the peace of mind, I copied tiacx111 and tiacx111r16 to /lib/hotplug/firmware without adding this extra suffix.
(2) Get the latest driver. I found ver.0.3.35 is fairly good.
(3) The instruction above basically works with a bit of extra care. In my case, after the modules installation, I found the following two directories under /lib/modules.
The compiled module "acx.ko" is under 2.6.12->extra. When the system is restarted, the kernel prefers the old driver under 2.6.12-9-386 and load it at boot time. Go to the following directory
sudo rmmod acx_pci sudo mv acx_pci.ko acx_pci.ko_old sudo ln -s /lib/modules/2.6.12/extra/acx.ko acx.ko sudo insmod acx
Check "lsmod |grep acx" shows
acx 128648 0 firmware_class 9472 1 acx usbcore 104188 6 acx,usb_storage,usbhid,ehci_hcd,ohci_hcd
Go to System->Admistration->Networking and configure your wlan setting. Reboot the computer, and check if the correct driver is loaded by "iwconfig" You should see something like below.
wlan0 IEEE 802.11b+/g+ ESSID:"8stableway" Nickname:"acx v0.3.35" Mode:Managed Frequency:2.437 GHz Access Point: 00:40:05:28:DC:A2 ......
Follow them only if you want to use the latest available driver. If the driver from the Ubuntu repositories is working for you, there is no special reason for using the latest upstream version unless explicitly wanted or needed (e.g. the repository version could have a bug or feature fixed/implemented in the latest upstream release).
There are also some generic (and more complete) installation instructions on the main ACX HowTo, which should also work for Ubuntu.
There are two methods of building the driver, outside the kernel tree and inside the kernel tree. These instructions describe the recommended outside the kernel tree method.
1. First of all, download the kernel headers and the build utilities, in case they are not installed:
sudo apt-get install build-essential linux-headers-`uname -r`
2. Download and unpack the upstream driver
cd /usr/src sudo mkdir acx-20070101 sudo wget http://lisas.de/~andi/acx100/acx-20070101.tar.bz2 sudo tar xjvf acx-20070101.tar.bz2 cd acx-20070101
3. Check that the firmware images are installed (use only one of the two following commands)
- For versions from Dapper onwards:
ls -R /lib/firmware/`uname -r`/acx
- For versions up until Breezy:
ls -R /lib/hotplug/firmware/`uname -r`/acx
This should give you a list of the installed ACX firmware images on your system. If the command outputs nothing or it returns an error along the lines of "the directory could not be found" or similar, the firmware images are probably not installed on your system. You will then have to follow the instructions under the Firmware section to obtain and install them
4. Now you can build the module with the command:
sudo make -C /lib/modules/`uname -r`/build M=`pwd`
If the driver is running, you have to type the following command in order to unload it from memory:
5. Install the modules:
- First of all unload any running ACX driver from memory:
sudo modprobe -r acx
- Now install the module:
sudo make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
6. Load the newly built driver with:
sudo modprobe acx
7. Optionally, this will give you some information on the acx driver:
- Running the following command is always good for testing whether the driver got loaded correctly and to see its version and the firmware version:
dmesg | grep acx