|
Unsupported Version |
|
Candidate for Deletion |
#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 () 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.
Links
Home Page: http://acx100.sourceforge.net/
Secondary Help: http://acx100.sourceforge.net/wiki/Main_Page
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.