Driver per adapter wireless usb acx100 ( testato con modello DWL 120+ )

ultimo aggiornamento: 09.12.2005

I dispositivi wireless absati su chipset TI acx100 non sono supportati con linux.
E' comunque possibile utilizzare un driver , funzionante, anche se ancora di fase sviluppo.
I sorgenti del driver sono reperibili all' indirizzo: http://195.66.192.167/linux/acx_patches/
Qui e' comunue disponibile la patch acx-20051113.tar.bz2, verificata e funzionante.


procedura di installazione:
E' richiesto un kernel 2.6 con sorgente.
------------------------------------------------------
1) create directory di lavoro ed estrarre il contenuto del tar.bz2:
------------------------------------------------------
[root@enzo5 ACX100]# mkdir /home/enzo/ACX100/work_acx
[root@enzo5 ACX100]# cd /home/enzo/ACX100/work_acx
[root@enzo5 work_acx]# tar jxf ../acx-20051113.tar.bz2


------------------------------------------------------
2) compilare il modulo
------------------------------------------------------
[root@enzo5 work_acx]# make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-2.6.13.1'
  CC [M]  /home/enzo/ACX100/work_acx/pci.o
  LD [M]  /home/enzo/ACX100/work_acx/acx.o
  Building modules, stage 2.
  MODPOST
  CC      /home/enzo/ACX100/work_acx/acx.mod.o
  LD [M]  /home/enzo/ACX100/work_acx/acx.ko
make: Leaving directory `/usr/src/linux-2.6.13.1'

------------------------------------------------------
3) installare il modulo compilato all' interno del kernel
------------------------------------------------------
[root@enzo5 work_acx]# make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
make: Entering directory `/usr/src/linux-2.6.13.1'
  INSTALL /home/enzo/ACX100/work_acx/acx.ko
make: Leaving directory `/usr/src/linux-2.6.13.1'

[root@enzo5 work_acx]# find /lib/modules/ | grep acx
........
/lib/modules/2.6.13.1_enzo_20050915/extra/acx.ko

[root@enzo5 work_acx]# ls -la /lib/modules/2.6.13.1_enzo_20050915/extra/acx.ko
-rw-r--r--  1 root root 881635 Sep 20 21:42 /lib/modules/2.6.13.1_enzo_20050915/extra/acx.ko

------------------------------------------------------
4) aggiornare le dipendenze dei moduli
------------------------------------------------------
[root@enzo5 work_acx]# depmod -ae



------------------------------------------------------
5) configurazione della connessione wireless
------------------------------------------------------

________ START ACX _______
[root@enzo5 work_acx]# modprobe acx
.........................
Sep 20 21:49:36 enzo5 kernel: acx: this driver is still EXPERIMENTAL
Sep 20 21:49:36 enzo5 kernel: acx: reading README file and/or Craig's HOWTO is recommended, visit http://acx100.sf.net in case of further questions/discussion
Sep 20 21:49:36 enzo5 kernel: acx: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them
Sep 20 21:49:36 enzo5 kernel: running on a little-endian CPU
Sep 20 21:49:36 enzo5 kernel: PCI module v0.3.10 initialized, waiting for cards to probe...
Sep 20 21:49:36 enzo5 kernel: USB module v0.3.10 initialized, probing for devices...
Sep 20 21:49:36 enzo5 kernel: registering network device
Sep 20 21:49:36 enzo5 kernel: wlan0: issue_cmd(): cmd_status is not SUCCESS: 11 (Already awake)
Sep 20 21:49:36 enzo5 kernel: acx100_s_init_wep: writing WEP options
Sep 20 21:49:36 enzo5 kernel: get_mask 0x00004D82, set_mask 0x00000000
Sep 20 21:49:36 enzo5 kernel: got sensitivity value 50
Sep 20 21:49:36 enzo5 kernel: got antenna value 0x8D
Sep 20 21:49:36 enzo5 kernel: got Energy Detect (ED) threshold 141
Sep 20 21:49:36 enzo5 kernel: got Channel Clear Assessment (CCA) value 13
Sep 20 21:49:36 enzo5 kernel: got regulatory domain 0x30
Sep 20 21:49:36 enzo5 kernel: get_mask 0x00000000, set_mask 0x00000000 - after update
Sep 20 21:49:36 enzo5 kernel: new ratevector: 82 84 0B 16 2C
Sep 20 21:49:36 enzo5 kernel: setting RXconfig to 2010:0FDD
Sep 20 21:49:36 enzo5 kernel: creating /proc entry driver/acx_wlan0
Sep 20 21:49:36 enzo5 kernel: creating /proc entry driver/acx_wlan0_diag
Sep 20 21:49:36 enzo5 kernel: creating /proc entry driver/acx_wlan0_eeprom
Sep 20 21:49:36 enzo5 kernel: creating /proc entry driver/acx_wlan0_phy
Sep 20 21:49:36 enzo5 kernel: acx: USB module v0.3.10 loaded successfully
Sep 20 21:49:36 enzo5 kernel: usbcore: registered new driver acx_usb

[root@enzo5 work_acx]# lsmod | grep acx
acx                   165548  0

[root@enzo5 work_acx]# iwconfig wlan0
Warning: Driver for device wlan0 has been compiled with version 18
of Wireless Extension, while this program supports up to version 17.
Some things may be broken...

wlan0     IEEE 802.11b+  ESSID:"STA62E4F2"  Nickname:"acx v0.3.10"
          Mode:Managed  Channel:1  Access Point: 00:00:00:00:00:00
          Bit Rate:22 Mb/s   Tx-Power=18 dBm   Sensitivity=50/0
          Retry min limit:7   RTS thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

_______ configure wlan0 _______
iwconfig wlan0 ESSID enzo
iwconfig wlan0 mode Ad-hoc
iwconfig wlan0 bitrate 11M


[root@enzo5 work_acx]# ifconfig wlan0 192.168.100.1


[root@enzo5 work_acx]# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:0F:3D:62:E4:F2
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::20f:3dff:fe62:e4f2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:5 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:70 (70.0 b)


[root@enzo5 work_acx]# ping wireless3
PING wireless3 (192.168.100.3) 56(84) bytes of data.
64 bytes from wireless3 (192.168.100.3): icmp_seq=0 ttl=128 time=2.76 ms
64 bytes from wireless3 (192.168.100.3): icmp_seq=1 ttl=128 time=2.64 ms
64 bytes from wireless3 (192.168.100.3): icmp_seq=2 ttl=128 time=3.40 ms

--- wireless3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 2.646/2.940/3.408/0.340 ms, pipe 2

[root@enzo5 work_acx]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   *               255.255.255.0   U     0      0        0 wlan0
default         *               0.0.0.0         U     0      0        0 eth0





_______ STOP ACX _______
[root@enzo5 work_acx]# ifconfig wlan0 down
[root@enzo5 work_acx]# rmmod acx
.................
Sep 20 21:48:04 enzo5 kernel: usbcore: deregistering driver acx_usb
Sep 20 21:48:04 enzo5 kernel: removing /proc entry driver/acx_wlan0
Sep 20 21:48:04 enzo5 kernel: removing /proc entry driver/acx_wlan0_diag
Sep 20 21:48:04 enzo5 kernel: removing /proc entry driver/acx_wlan0_eeprom
Sep 20 21:48:04 enzo5 kernel: removing /proc entry driver/acx_wlan0_phy


------------------------------------------------------
6)  attivazione della connessione all' avvio del PC
------------------------------------------------------

[root@enzo5 acx]# cat /etc/rc.d/init.d/wireless
#!/bin/bash
#
# file: /etc/rc.d/init.d/wireless
# --------------------------------
# ultimo aggiornamento 18.09.2005
# --------------------------------
case "$1" in
   start)
        /sbin/modprobe acx
        /bin/sleep 9
        /sbin/iwconfig wlan0 ESSID enzo
        /sbin/iwconfig wlan0 mode Ad-hoc
        /sbin/iwconfig wlan0 bitrate 11M
        /bin/sleep 5
        /sbin/ifconfig wlan0 192.168.100.1
        /bin/sleep 1
        $0 status
     ;;
   stop)
     /sbin/ifconfig wlan0 down
     /sbin/rmmod acx
     ;;
   status)
       /sbin/iwconfig wlan0
       /sbin/ifconfig wlan0
       /sbin/route add default dev  eth0
       /sbin/route -n
     ;;
  restart)
        $0 stop
        /bin/sleep 5
        $0 start
        $0 status
        ;;
    *)
      echo "Usage $0 {start|stop|status|restart}"
      exit 1
esac
------------------------------------------------------
[root@enzo5 ~]# cat /etc/xinetd.d/wireless
# default: on
# -----------------------------------------
service wireless
{
        disable         = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        only_from       = 192.168.100.0 127.0.0.1
        server          = /etc/rc.d/init.d/wireless
        server_args     = start
        log_on_success  += USERID PID HOST EXIT DURATION
        log_on_failure  += USERID HOST ATTEMPT
}







        disable         = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        only_from       = 192.168.100.0 127.0.0.1
        server          = /etc/rc.d/init.d/wireless
        server_args     = start
        log_on_success  += USERID PID HOST EXIT DURATION
        log_on_failure  += USERID HOST ATTEMPT
}