Distribution list/Slackware
From ACX100/ACX111 wireless network driver project
1. Latest driver only seems to work with kernel 2.6.x. So Slackers are encouraged to upgrade their kernel first.
2. Tested with kernel 2.6.12 ok with WEP
3. Kernel was built fresh with PCI hotplug options. Perhaps unnecessary.
edit: This option is unnecessary -- a fresh compile of kernel 2.6.15
without PCI Hotplug has been tested and does work.
4. (Important) In kernel configuration,you should turn on "Module unloading" and "Forced module unloading" at Loadable module support" section. Possibly ok without them, depending on how reliable this driver is. Old versions occasionally lost connection to the access point and a user manually had to restart the network. I so far have no such a problem yet.
5. Firmware needs to be installed in /lib/firmware
6. Original start_net, stop_net scripts were modified.
[edit] Installation:
1. Extract acx-20060215.tar.bz2 in any directory of your choice.
eg)/usr/local/src/acx
2. Copy start_net and stop_net to /usr/local/src/acx/script/ and remove start_net.sh and stop_net.sh. They are outdated. Get the modified script from http://sung.orcon.net.nz/acx100/
3. Building out of kernel tree (by Per Bjornsson <perbj at stanford.edu>)is easier.
If you're building for the currently running kernel, build the modules with
the command
make -C /lib/modules/`uname -r`/build M=`pwd`
Install the modules (must be root for this step, so use 'su' if that's your preferred method of doing root stuff) with
make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
4. Change directory to /usr/local/src/acx/script/ and open "start_net". Change details of your network, including ESSID, WEP etc. DHCP and WEP work well.
5. Run
./start_net
OR, if you prefer the joy of tedious work, come back to /usr/local/src/acx and
insmod acx.ko
Check with
lsmod |grep acx
This is not intended to be the end of the story. In fact, I didn't tell you about the firmware up to this point.
6. Firmware installation.
Type
dmesg | grep acx
Then you will see something like this.
... requesting firmware image 'tiacx111c16' acx: firmware image 'tiacx111c16' was not provided. Check your hotplug scripts ... requesting firmware image 'tiacx111' acx: firmware image 'tiacx111' was not provided. Check your hotplug scripts ... requesting firmware image 'tiacx111r16' acx: firmware image 'tiacx111r16' was not provided. Check your hotplug scripts acx: can't load radio module 'tiacx111r16' .....
It means 'tiacx111c16' or 'tiacx111' 'tiacx111r16' need to be in your /lib/firmware.
According to http://acx100.sourceforge.net/wiki/Firmware,
tiacx111c16 (1) tiacx100r11 (2) tiacx100 (3) tiacx100usb (4)
(1) is a combined firmware for a ti acx111 card that uses radio 16 (originally named FwRad16.bin)
(2) is a radio only firmware for a ti acx100 that uses radio 11 (originally named RADIO11.BIN)
(3) is a master firmware for a ti acx100 (originally named WLANGEN.BIN)
(4) is the firmware image for all ACX100 USB devices
So in the case above, tiacx111c16=tiacx111 tiacx111r16.
You may only need either "left hand side" or "right hand side" installed. Get them from
http://acx100.erley.org/acx_fw/acx1xx.htm or pages refered by http://acx100.sourceforge.net/wiki/Firmware
Copy them to /lib/firmware and run ./start_net again.
./start_net
wlan0 deconfigured, module unloaded. using wlan0. Module successfully inserted. Setting rate to 22M auto. Setting channel 1. Going to try to join or setup ESSID default. Setting mode to Managed. Setting key to 123456789A, algorithm open. Waiting for association...10 9 8 7 OK. Attempting to use /sbin/dhcpcd for DHCP, this may take a moment...OK. Interface has been set up successfully.
7. Run
iwconfig
and if everything was well, you will see something like:
wlan0 IEEE 802.11b /g ESSID:"default" Nickname:"acx v0.3.35"
Mode:Managed Channel:6 Access Point: 00:40:05:28:DC:A2
Bit Rate:22Mb/s Tx-Power=15 dBm Sensitivity=1/3
Retry min limit:7 RTS thr:off
Encryption key:1234-5678-9A Security mode:open
Power Management:off
Link Quality:44/100 Signal level:21/100 Noise level:0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Having Access Point: 00:00:00:00:00:00 means something is wrong. Many factors might be involved. It can be your kernel, driver, firmware or start_net script configuration.
8. Starting network at boot time.
For Slackware 10.X (or older/newer) users, following entry to /etc/rc.d/rc.local will start the network at boot time. Handy, it will be.
#Bring acx100 device up /usr/local/src/acx/script/start_net
edit: The right way to do this is to go into /etc/rc.d/rc.inet1.conf and uncomment/edit the lines that make sense. like this
## Example config information for wlan0. Uncomment the lines you need and fill
## in your info. (You may not need all of these for your wireless network)
IFNAME[4]="wlan0"
#IPADDR[4]=""
#NETMASK[4]=""
USE_DHCP[4]="yes"
#DHCP_HOSTNAME[4]="icculus-wireless"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
#WLAN_ESSID[4]=BARRIER05
#WLAN_MODE[4]=Managed
##WLAN_RATE[4]="54M auto"
##WLAN_CHANNEL[4]="auto"
##WLAN_KEY[4]="D5AD1F04ACF048EC2D0B1C80C7"
##WLAN_IWPRIV[4]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=7B1ABEEB5D197741923ED26727569C365E31212096A0EAFAD563B268BAD01CAF TxRate=0"
#WLAN_WPA[4]="wpa_supplicant"
WLAN_WPADRIVER[4]="acx" <-- Note that this originally says ndiswrapper you need to change this to acx
