What are firmware images?
Firmware images are binary files which contain the main program to be run by the wireless card's chipset.
They must be picked up by the ACX driver on startup and downloaded onto the chipset before any proper wireless communication can take place. This procedure applies to all drivers, regardless of the operating system they were built for. And since the firmware images are binary and written for the particular chipset, they are only dependent on this chipset, not on the host computer.
In practical terms this means that the firmware images are exactly the same for e.g. Linux and Windows drivers.
The firmware images are then essential for the operation of the wireless card, and the driver cannot interact fully with it until these have been downloaded onto the chipset.
In rough terms, the ACX chipset's hardware is based on a chip controlling the main functions and a radio module taking care of the transmission. Each one of these modules requires a firmware image for operation, which can be in the form of a single combined image or separate images for each one of them.
There are, for the most part, only 4 device variants (read: chipsets) out there, and each works with a very limited number of firmware images.
- For ACX111 there are only two really supported firmware images, and people have had best results with the first one:
acx111 firmware 220.127.116.11](down):
- For ACX100 things get a little tricky. There is one master firmware image, but 2 separate radio firmware images (note: for some cards they must be omitted so the driver loads correctly). Your best bet is to go to this page(down, archived page) to find the firmware images you need.
- The new TNETW1450 (USB 2.0 capable chipset) isn't fully supported by our driver yet (useful support probably available soon).
- [This is as of Feb. 2006 - still not supported?]
The firmware images are all generic, that is, they will work in cards from different manufacturers as long as they are using the same chipset. E.g. the firmware image for an acx111 chipset will work on a Netgear card based on this chip as well as on an Xterasys card also based on this chip.
There have not been any recent reports on incompatibility, so I believe they were all due to user error and not the firmware.
Where to put it
The firmware must be in the firmware directory of hotplug (note: on newer distributions hotplug has been replaced by udev). This directory varies from distribution to distribution. They are listed here, when something isn't right, which is possible, please correct it.
/lib/firmware/ or /usr/lib/hotplug/firmware/
| Firmware is available in Portage: |
/lib/firmware or /usr/lib/hotplug/firmware/
/lib/firmware/<kernel-version>/<acx-version>/acx/ for Feisty, Edgy and Dapper /lib/firmware/ (alternative location) /lib/hotplug/firmware/<kernel-version>/acx/ for Breezy and previous /lib/hotplug/firmware/ (alternative location)
|On Feisty, Edgy and Dapper the firmware is loaded by firmware_helper through the following udev rule: |
/etc/udev/rules.d/80-programs.rulesSee  and  for more information
|Note that Ark Linux has packaged a version of the firmware -- |
apt-get install firmware-acx100may be sufficient, depending on what card you use.
Firmware naming conventions
The driver expects to find and then load the appropriate firmware images which for 2.6 kernels are named after the following convention:
- NNN = 100/111 (chipset name)
- c = combined firmware image (main chip and radio module) [PCI/PC-CARD devices]
- r = firmware image for the radio module only [PCI/PC-CARD devices]
- where none of r or c are specified, it indicates a firmware image for the main chip (or master) [PCI/PC-CARD devices]
- MM = radio module ID (in uppercase hex)) [PCI/PC-CARD devices]
- usb indicates an USB device [USB devices]
tiacx111c16 (1) tiacx100r11 (2) tiacx100 (3) tiacx100usb (4) tiacx100r0D (5)
(1) is a combined firmware for a TI ACX111 chip that uses a radio module with ID 0x16 (originally named FwRad16.bin)
(2) is a radio-only firmware for a TI ACX100 chip that uses a radio with ID 0x11 (originally named RADIO11.BIN)
(3) is a master firmware for a TI ACX100 chip (originally named WLANGEN.BIN)
(4) is the firmware image for all TI ACX100 USB devices
(5) is a radio complementary firmware required by the ACX100 PCMCIA devices (originally named RADIO0d.BIN)
In case the firmware images are not already provided by the distribution, they must be first downloaded from the locations specified on Firmware#Which_firmware and then renamed following the naming convention the driver is expecting.
After being named appropriately, they need to be placed into the firmware hotplug directory for the driver to find them and download them onto the card's chipset on startup.
The driver will first try, where appropriate, to load a combined (main chip + radio module) firmware. Failing that, it will try to first load the main chip's firmware image and then the one for the radio module.
This example shows how to download the appropriate firmware image for a D-Link DWL-G650+ CardBus device and copy it to the correct location so the the ACX driver can find it and download it onto the chipset.
We are doing this on an Ubuntu distribution, so the location of the firmware images should be /lib/firmware/<kernel-version>/acx/<firmware-version>. Note: this is only for the sake of example. There should be no need to do this on an Ubuntu distribution, since the firmware images are available from the repositories (in the linux-restricted-modules-<kernel-version> package).
We know that this card is based on an ACX111 chipset with a radio module with ID 0x16, and that it is known to work with firmware versions up to 18.104.22.168.
So we start by downloading the right firmware from the location specified previously on this article:
And then we copy it to the appropriate location:
sudo cp tiacx111c16 /lib/firmware/`uname -r`/acx/22.214.171.124