Installation instructions for the Legacy rt73 module
[http://rt2x00.serialmonkey.com]


==================
Build Instructions
==================

    1. Unpack the driver sources and go to the Module directory:
          $ tar -xvzf rt73-cvs-daily.tar.gz
          $ cd ./rt73-cvs-YYYYMMDDHH/Module

    2. Compile the driver sources:
          $ make

    3. Install the driver (as root):
          # make install


====================
INVOCATION
====================
Load the driver:

    $ modprobe rt73 [ifname=<name>] [debug=<mask>] [firmName=<file>]

    <name> is the name of the device and defaults to "wlan%d". If more
    than one adapter is installed, successive devices will be named
    wlan0, wlan1, etc. If you wish to use a different scheme - say
    eth*, and there are already wired ethernet devices named eth0 and
    eth1, then specifying <name> as "eth%d" gives the adapter the name
    "eth2".

    <mask> is a decimal or hex number. See TESTING file. Ignored if
    driver compiled without debug support.

    <file> is the name of a firmware file and defaults to "rt73.bin"
    if omitted. Only the basename - not the full path - may be
    specified.

Start it up:

    $ ifup wlan0        # If using Debian - or
    $ ifconfig wlan0 up
    $ iwlist wlan0 scan

If everything is ok, you should see a list of surrounding Access
Points. It means you can jump to the configuration section. Otherwise,
check out the following install notes...

_________
NOTES:

* Firmware file (rt73.bin)

    The rt73 chipset uses a firmware file which is loaded in device
    memory using the kernel firmware_class facility. 'make install'
    copy the firmware file to the standard firmwares location:
    /lib/firmware.

    However some linux distributions divert from the standard and e.g.
    use /lib/firmware/<KERNEL_VERSION>. If this is your case, you will
    have to manually move the firmware file to the right location.
    If you have problems with firmware loading, please ask on your
    distro's support media (forum, etc).

* Driver alias

    rt73 uses wlan* as its modprobe alias. This means you can have
    several devices and they will be named wlan0, wlan1, etc.

    If for some reason you want this interface number 'static' (e.g.
    if you have several wlan devices and their numbers change on
    reboot) you can change the rt73 alias in /etc/modprobe.d/ralink
    (2.6 kernels) or /etc/modules.conf (2.4 kernels) back to wlan0 (or
    wlan1, etc).

    However the proper way to achieve this purpose is to use a udev
    rule based on the wlan MAC address, for example:
    KERNEL=="wlan*", SYSFS{address}=="00:de:ad:be:ef:00", NAME="wlan0"
    (See:
     http://www.reactivated.net/writing_udev_rules.html#example-netif)

* Module parameters

    You can load the rt73 module with two optional parameters:
       firmName=<FILE_NAME>  Use another firmware file.
       debug=<DEBUG_MASK>    Set debug verbosity (see below).


==============================
Wireless Station Configuration
==============================

The wlan interface should be configured using standard wireless
extension tools.

GUI CONFIG:

    If you're looking for a GUI config tool we provide RutilT on our
    download page
    [http://rt2x00.serialmonkey.com/wiki/index.php/Downloads].

MANUAL CONFIG:

    1. Set the interface mode and bring it up
          # iwconfig wlan0 mode managed
          # ifconfig wlan0 up

    2. Set your target network / Access Point
       If you just want to join a wireless network, set its ESSID:
          # iwconfig wlan0 essid <ESSID>
       If you want to associate with a specific AP, set its MAC
       address:
          # iwconfig wlan0 ap <BSSID>

    3. Set encryption if needed

       a) WEP (802.11b)
          Choose the authentication mode (open/restricted):
             # iwconfig wlan0 key open
          Or:
             # iwconfig wlan0 key restricted
          Set the encryption key:
             # iwconfig wlan0 key <KEY>

       b) WPA (802.11g)
          Set the authentication mode:
             # iwpriv wlan0 set AuthMode=WPAPSK
          Set the encryption key:
             # iwpriv wlan0 set WPAPSK=<KEY>
          Set the encryption type:
             # iwpriv wlan0 set EncrypType=TKIP

       c) WPA2 (802.11i)
          Set the authentication mode:
             # iwpriv wlan0 set AuthMode=WPA2PSK
          Set the encryption key:
             # iwpriv wlan0 set WPAPSK=<KEY>
          Set the encryption type:
             # iwpriv wlan0 set EncrypType=AES

    4. Check that you're associated with an AP
          # iwconfig wlan0

If everything's ok, you can now configure the wlan0 interface
statically or dynamically (DHCP). If you need more wireless config
details and examples (Adhoc mode e.g.), see iwpriv_usage.txt (included
in driver sources). Otherwise, read the following config notes...

_________
NOTES:

* Auto-load on boot

    If you want your device to come up on boot the best is to use your
    specific linux distribution's tools (boot scripts, etc).
    If you need support doing so, ask on your distro's support media.

* wpa_supplicant

    wpa_supplicant is a userland WPA/WPA2/802.1X layer. This driver is
    not compatible with it. As most wpa_supplicant features are
    embedded into our driver, you should not need it though.
    If you need to use a feature that only wpa_supplicant provides:
       - either use our next-generation rt2x00 driver which
         is compatible with wpa_supplicant
       - or patch wpa_supplicant to make it work with rt73 (more info:
         http://mjh.name/Ralink_rt73_wpa_supplicant_rt2x00_wpa2)


==================
Misc. information
==================

* hostapd

    hostapd allows your wlan device to act like an Access Point. Legacy
    drivers are _not_ compatible with it, but our next-generation
    rt2x00 drivers are.

* Network auditing

    Our drivers allow you to peform in-depth wireless network auditing.
    Most of the following settings require that you bring the
    interface down beforehand.

    You can set a custom MAC address as you would do for any other
    ethernet interface:
       # ifconfig wlan0 hw ether <MAC_ADDRESS>

    You can put your wlan interface in promiscuous mode as you would
    do for any other interface:
       # ifconfig wlan0 promisc

    You can put your interface in monitor mode and have it listen to all
    802.11 frames around:
       # iwconfig wlan0 mode monitor

    You can also inject 802.11 frames on the fly. To enable injection,
    run:
       # iwpriv wlan0 rfmontx 1

* Testing / debugging

    If you experience any driver related problem you can ask for
    support on our mailing list or our legacy driver forum.
    Before asking for help, read the TESTING file and follow its
    advice. Do *not* post messages like: "wlan does not work. please
    help!".

