Table of Contents

1 Introduction

The WIFI-G-USB-2 USB wireless adapter (aka WIFI dongle) provides an "out of the box" solution that enables customers to securely connect their Technologic Systems SBC to a wireless Access Point (AP) or Adhoc network.

In Feburary 2010, the WIFI-G-USB dongle (IO Gear GWU523) was replaced with the new WIFI-G-USB-2 dongle (Asus WL-167g) for two reasons: 1.) the WIFI-G-USB dongle had a severe driver bug which caused any product running the 2.4 kernel to hang in the mere presence of a wireless N network and 2.) IO Gear announced EOL for that product. Major differences in these two dongles that customers need to be aware of include different dimensions and wireless chipsets as outlined below:

   Dimensions:
      IOGear: 6.0 cm L* 2.5 cm W* 1.0 cm H 
      Asus:   7.5 cm L* 2.5 cm W* 0.9 cm H

   Chipset:
      IOGear: Zydas1211
      Asus:   rt2501usb

Other areas of interest of differences between the two devices include (specs taken from manufactures product page):

   Temp Range:
      IOGear:   0 - 55C
      Asus:   -10 - 55C

   RF Output Power:
      IOGear: 17 dBm
      Asus:   14 ~ 17 dBm (at nominal temp. range)

   Antennae Option:
      IOGear: None
      Asus:   One onboard Inverted-F antenna to support diversity (Gain: 1.77dBi)

   Range:
      IOGear: 100 - 400m, depending on surrounding environment
      Asus:   Indoor 130 ft (40 m), outdoor (LOS, Line-Of-Sight) 1000 ft (330 m)
   
   Accessories:
      IOGear: None
      Asus:   USB 2.0 Universal Joint
              USB 2.0 extension cable (type A to type A)
              Neck lace

In our field tests, the range of the WIFI-G-USB-2 outperformed WIFI-G-USB by about 80ft. Additionally, the WIFI-G-USB-2 dongle supports an external antennae for further range.

2 Downloading Necessary Drivers and Tools

The WIFI-G-USB-2 dongle uses the Ralink RT2501USB(RT73:RT2571W/RT2573/RT2671) chipset and requires the rt73 driver. For WPA and WPA2 connections, it requires the wpa_supplicant utility which has been compiled with Ralink sources. These files have already been compiled for all TS products and can be obtained here:

3 Setting up the WIFI Interface Connection

This section gives step by step instructions for how to connect to wireless Access Points (AP) using the rt73 driver and RT2501USB chipset. It was tested using a Linksys WRT54GC Wireless Router as an AP. Master mode is not supported by this driver, but Adhoc is. As a note, WPA is generally disabled by default on startup, but can be enabled (see /etc/init.d/wpasupplicant).

The first step should be to locate the appropriate driver for the TS product in use, download it to the board, and then use the insmod command (ie. insmod rt73_tsXXXX.ko). When inserted properly, you will see the device in /proc/net/wireless. Use cat /proc/net/wireless to verify:

   root@ts7000:root# cat /proc/net/wireless 
   Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
    face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 16
   rausb0: 0000  100.  220   177        0      0      0      0      0        0

Wireless connections tested:

Useful Commands:

3.1 Unencrypted
   1) Bring the rausb0 interface up
      * ifconfig rausb0 up
   2) Associate with the AP
      * iwconfig rausb0 essid the_essid
   3) Assign a static IP
      * ifconfig rausb0 192.168.1.101
3.2 WEP Encryption
   1) Bring the rausb0 interface up
      * ifconfig rausb0 up
   2) Associate with AP
      * iwconfig rausb0 essid the_essid key the_key
   3) Assign a static IP
      * ifconfig rausb0 192.168.1.101
3.3 WPA Personal - TKIP
   1) Bring the rausb0 interface up
      * ifconfig rausb0 up
   2) Generate a configuration file for wpa_supplicant to use
      * ./wpa_passphrase the_essid the_password > /etc/wpa_supplicant_custom.conf
   3) Use wpa_supplicant to associate with AP and run it in the background (-B)
      * ./wpa_supplicant -irausb0 -Dralink -c/etc/wpa_supplicant_custom.conf -B
   4) Assign a static IP 
      * ifconfig rausb0 192.168.1.101
3.4 WPA2 Personal - TKIP or AES
   1) Bring the rausb0 interface up
      * ifconfig rausb0 up
   2) Generate a configuration file for wpa_supplicant to use
      * ./wpa_passphrase the_essid the_password > /etc/wpa_supplicant_custom.conf
   3) Insert "proto=RSN" into "network" block in /etc/wpa_supplicant_custom.conf
   4) Use wpa_supplicant to associate with AP and run it in the background (-B)
      * ./wpa_supplicant -irausb0 -Dralink -c/etc/wpa_supplicant_custom.conf -B
   5) Assign a static IP 
      * ifconfig rausb0 192.168.1.101
3.5 Adhoc Mode
   1) Bring the rausb0 interface up
      * ifconfig rausb0 up
   2) Setup rausb0 for Adhoc mode
      * iwconfig rausb0 mode ad-hoc channel 3 enc off essid the_essid
   3) Assign a static IP
      * ifconfig 169.254.114.101 netmask 255.255.0.0
   4) Add default gateway to route (optional)
      * route add default gw 169.254.114.100

Appendix A: Document History

Date of Issue/Revision Revision Number Comments
02/23/2010 1.0 Created as "WIFI-G-USB-2 Manual"
02/26/2010 1.1 Added section "Adhoc Mode"
03/04/2010 1.2 Made some minor clarification changes
Fixed header section numbers
03/15/2010 1.3 Removed date from filenames and links on FTP site

Appendix B: Troubleshooting

If you are having difficulties in pinging your AP, try to disconnect eth0 by using the command ifconfig eth0 down.

If you have a TS-75XX or newer series of boards with the rt2x00 open source driver compiled in the kernel, it is suggested that the rt73usb module be blacklisted by including the line blacklist rt73usb in the /etc/modprobe.d/blacklist file, otherwise you may experience stability issues.

The message ioctl[SIOCGIWAP]: Transport endpoint is not connected can be safely ignored.

The message rt73: Unknown symbol x means that the module dependencies have not been satisfied. Use the following as a guide as a basic checklist to insure the correct modules are loaded:

   ts7000:~# depmod        
   ts7000:~# modprobe hid     
   ts7000:~# modprobe usbcore     
   ts7000:~# modprobe usb_storage
   ts7000:~# modprobe scsi_mod
   ts7000:~# modprobe ohci_hcd

The message insmod: error inserting 'rt73_tsXXXX.ko': -1 Invalid module format will occur if you are trying to insert a module into a kernel that it was not compiled for. Verify that you have the correct module for your board. If you're sure the module should work, try using the insmod command with the -f option (ie. insmod -f rt73_tsXXXX.ko).