Tag/tag.png

Unsupported Version
This article applies to an unsupported version of Ubuntu. More info...

Tag/tag.png

Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info...

#pragma section-numbers on #pragma keywords broadcom

Using Texas Instruments' ACX 111 Wireless Devices in Ubuntu Dapper 6.06

Introduction

This page is a description of my experiences in getting an acx111-based wireless card to work under Dapper Drake. It centralises information scattered across several websites, and includes links to code and firmware which is known to work. These notes aim to be the shortest and most concise description of how to get the device to work under the stated platform.

Does this guide apply to you?

Note: If you are using Ubuntu 6.10 Edgy Eft these devices work out of the box if you installed from the regular CD and will work with the Alternate CD if you install the linux-restricted-modules for your kernel. You do not need to continue with this fine instruction.

In other words, do you have a Texas Instruments acx111 based device? To check, make sure you device is plugged in or otherwise connected to your computer, and run

lspci -n

Amongst the lines output, you should see the following:

0000:02:00.0 0280: 104c:9066

If you see the 104c:9066, that means you have an acx111 Cardbus/PCI device, and can continue. If you really want to be sure, run lspci on its own to get a description of the device. In my case, I have a line which reads:

0000:02:00.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface

Are there older version of the driver already present?

It appears that a version of the acx driver is already included with Dapper Drake, but it appears to be buggy. In any case, we are going to build the latest version of the driver, and if we want to do so, we have to move all other versions out of the way. To check for older versions, run

find /lib/modules/`uname -r` -name "*acx*"

On my system, this produces the name of the module and its containing directory, like so:

/lib/modules/2.6.15-23-386/kernel/drivers/net/wireless/acx
/lib/modules/2.6.15-23-386/kernel/drivers/net/wireless/acx/acx.ko

Move these out of the way, and into your root directory, with the following command:

find /lib/modules/`uname -r` -name "*acx*" -exec sudo mv -v {} /root \;

Finally, you need to update the module dependencies, with this command:

sudo depmod -a

Can you build the driver?

By this question, I mean, do you have the tools with which to build the driver sources? To check this point, see if you can print the version information from two of the tools, make and gcc, with the following commands:

make --version
gcc --version

If you get output similar to

bash: make: command not found
bash: gcc: command not found

you need to install the packages. For 'gcc', you can run

sudo apt-get install gcc-4.0

which may also install the dependencies 'binutils' and 'cpp-4.0'. Just installing this package is not enough; you have to create a link to the version of gcc that you wish to run. To do this, go to the /usr/bin directory and create the link like so:

sudo ln -s ./gcc-4.0 gcc

To get the 'make' tool, run:

sudo apt-get install make

Next, you need to check if you have the kernel headers installed on your system. To check this, enter

ls /lib/modules/`uname -r`/build/include/linux/version.h

If you get an error message saying there is no such file or directory, like this one from my system

ls: /lib/modules/2.6.15-23-386/build/include/linux/version.h: No such file or directory

You need to download the headers. Your kernel number may be different to mine (2.6.15), but the important thing is to note whether you have the 'version.h' file. If not, you can install the files with this command:

sudo apt-get install linux-headers-`uname -r`

Download the sources and firmware

You can find the latest sources for the driver module at this link http://acx100.erley.org

The sources are named according to the convention 'acx-20{YYMMDD}.tar.bz2'. Download, or somehow transfer, the most recent package (which, at the time of writing, happens to be acx-20060521.tar.bz2) onto your system.

Once you've got this source file, create a new directory to contain the files and unpack the archive with commands similar to these:

cd ~
mkdir ACX
tar xvf path/to/acx-20{YYMMDD}.tar.bz2 --bzip2 -C ~/ACX

Now you need to obtain the firmware for the acx111 device. The firmware found on this page http://acx100.erley.org/acx_fw/acx111_netgear_wg311v2/fw1 is known to work. When I went there, there was one file named 'FwRad16.bin_1.2.1.34'. Download, or somehow otherwise transfer, this file onto your computer. Once done, we need to rename the firmware to a name which can be recognized by the driver, so go into the directory containing the file and enter the command:

mv FwRad16.bin_1.2.1.34 tiacx111c16

Secondly, the firmware needs to be placed somewhere in the /lib/firmware directory so it can be found by the driver, and this location depends on the version of the firmware.

With Dapper, there should already be some firmware distributed with your system, but as alluded to above, it appears to be buggy (See bug report #30766).

In any case, the firmware we've downloaded needs to go into a directory corresponding to its version, namely '1.2.1.34', so create the correct directory:

sudo mkdir /lib/firmware/`uname -r`/acx/1.2.1.34

If you get the error 'Cannot create directory: File exists', that's fine. Now move the firmware into this directory, possibly overwriting the existing, buggy firmware:

sudo mv -v tiacx111c16 /lib/firmware/`uname -r`/acx/1.2.1.34

To ensure that this version of the firmware is the one that is used, you need to edit the modprode.d options file, which can be done with this command:

gksudo gedit /etc/modprobe.d/options

Once the file is opened, add these two lines to the file and save:

# Ensure a working version of the acx111 firmware is used.
options acx firmware_ver=1.2.1.34

Compile the Module

Most of the work is done now; all that's left is to compile the kernel module and move it to its correct location, and most of this heavy lifting is done by make scripts. Go to the directory where you unpacked the sources earlier (cd ~/ACX) and build the module with this command:

make -C /lib/modules/`uname -r`/build M=`pwd`

Once done, install the modules with this command:

sudo make -C /lib/modules/`uname -r`/build M=`pwd` modules_install

and activate them by entering:

sudo insmod acx.ko

Final notes

That was basically all I had to do to get my card working. There are various other things you can do, such as modify init scripts and such, but all that you need to do now is restart your machine, and use System -> Administration -> Networking to bring up your wireless device.

Comments

I had this problem with Texas Instruments ACX 111 54Mbps Wireless Interface. I found I only had to follow one step from this wiki page, this one:

gksudo gedit /etc/modprobe.d/options

Once the file is opened, add these two lines to the file and save:

# Ensure a working version of the acx111 firmware is used.
options acx firmware_ver=1.2.1.34

and it worked. All the other steps appear to be unnecessary, and they are quite difficult to achieve with a fresh install of dapper, since Internet access is likely not available due to this very problem, and a lot of stuff needs to be downloaded, and packages fetched. Not a task for a newbie.

As for me, I have a PCMCIA wifi card with the acx111 chipset. It worked out of the box with ubuntu dapper; however, it performed poorly. I found that it works somewhat better with firmware 1.2.0.30 (which comes with ubuntu, it seems). It still doesn't perform perfectly, but is noticably better than before. It is a Safecom SWLCT-54125. Note that I did not compile the driver myself like the guide tells you; I simply changed what firmware is loaded.

Please note that the acx driver does not support WPA authentication.


CategoryHardware CategoryNetworking CategoryWireless

WifiDocs/Driver/acx111 (last edited 2013-05-02 00:19:41 by 89-160-198-125)