Release Date: 2008-12-05, ver 1037 
RTL8187L Linux driver version 1037 
 
   --This driver supports RealTek RTL8187L Wireless LAN NIC for 
     2.6 kernel: 
     Fedora Core 2/3/4/5/6/7, Debian 3.1, Mandrake 10.2/Mandriva 2006,  
     SUSE 9.3/10.1/10.2, Gentoo 3.1, etc, Ubuntu8.04/8.10. 
     2.4 kernel: 
     Redhat 9.2, etc 
   - Support Client mode for either infrastructure or adhoc mode 
   - Support WEP, WPAPSK and WPA2PSK connection 
 
======================================================================================
                                Component
======================================================================================
The driver is composed of several parts:
        1. Module source code
           ieee80211
           rtl8187

        2. Script ot build the modules
           Makefile

        3. Script to load/unload modules
           wlan0up
           wlan0down

        4. Script and configuration for DHCP
           wlan0dhcp
           ifcfg-wlan0
 
	5. Supplicant source code: 
	   wpa_supplicant-0.5.5.tar.gz 
 
	6. Example of supplicant configuration file: 
	   wpa1.conf 
 
======================================================================================
                                Installation
======================================================================================
<<Method 1>>
Runing the scripts can finish all operations of building up modules
from the source code, installing driver to the kernel and starting up the nic.
        1. Build up the drivers from the source code
           make

        2. Install the driver to the kernel
           make install
           reboot
	
        3. bring up wlan if nic is not brought up by GUI, such as NetworkManager
           ifconfig wlan0 up
           Note: use ifconfig to check whether wlan0 is brought up and use iwconfig to 
           check your wlan interface name,since it may change wlan0 to wlan1,etc.

<<Method 2>>
Or only load the driver module to kernel and start up nic.
        1. Build up the drivers from the source code
           make

        2. Load driver module to kernel and start up nic.
           ./wlan0up

           Note: when "insmod: error inserting 'xxxx.ko': -1 File exists" comes out
                 after run ./wlan0up, please run ./wlan0down first, then it should
                 be ok..
           Note: If you see the message of "unkown symbol" during ./wlan0up, it
                 is suggested to build driver by <<Method 1>>.
 
======================================================================================
                                Set wireless lan MIBs
======================================================================================
This driver uses Wireless Extension as an interface allowing you to set 
Wireless LAN specific parameters. 
 
Current driver supports "iwlist" to show the device status of nic 
        iwlist wlan0 [parameters] 
where 
        parameter explaination      	[parameters]     
        -----------------------     	-------------    
        Show available chan and freq	freq / channel   
        Show and Scan BSS and IBSS 	scan[ning]           
        Show supported bit-rate         rate / bit[rate]         
        Show Power Management mode      power              
 
For example: 
	iwlist wlan0 channel 
	iwlist wlan0 scan 
	iwlist wlan0 rate 
	iwlist wlan0 power 
 
Driver also supports "iwconfig", manipulate driver private ioctls, to set 
MIBs. 
 
	iwconfig wlan0 [parameters] [val] 
where 
	parameter explaination      [parameters]        [val] constraints 
        -----------------------     -------------        ------------------ 
        Connect to AP by address    ap              	[mac_addr] 
        Set the essid, join (I)BSS  essid             	[essid] 
        Set operation mode          mode                {Managed|Ad-hoc} 
        Set keys and security mode  key/enc[ryption]    {N|open|restricted|off} 
 
For example: 
	iwconfig wlan0 ap XX:XX:XX:XX:XX:XX 
	iwconfig wlan0 essid "ap_name" 
	iwconfig wlan0 mode Ad-hoc 
	iwconfig wlan0 mode essid "name" mode Ad-hoc 
	iwconfig wlan0 key 0123456789 [2] open 
	iwconfig wlan0 key off 
	iwconfig wlan0 key restricted [3] 0123456789 
 
======================================================================================
                                Getting IP address
======================================================================================
After start up the nic, the network needs to obtain an IP address before 
transmit/receive data. 
This can be done by setting the static IP via "ifconfig wlan0 IP_ADDRESS" 
command, or using DHCP. 
 
If using DHCP, setting steps is as below: 
	(1)connect to an AP via "iwconfig" settings 
		iwconfig wlan0 essid [name]	or 
		iwconfig wlan0 ap XX:XX:XX:XX:XX:XX 
 
	(2)run the script which run the dhclient 
		./wlan0dhcp 
           or  
		dhcpcd wlan0 
              	(Some network admins require that you use the 
              	hostname and domainname provided by the DHCP server. 
              	In that case, use  
		dhcpcd -HD wlan0) 
		 
======================================================================================
                        WPAPSK/WPA2PSK
======================================================================================
Wpa_supplicant helps to secure wireless connection with the protection of
WPAPSK/WPA2PSK mechanism.

If the version of Wireless Extension in your system is equal or larger than 18,
WEXT driver interface is recommended. Otherwise, IPW driver interface is advised.

	Note: Wireless Extension is defined us "#define WIRELESS_EXT" in Kernel
	Note: To check the version of wireless extension, please type "iwconfig -v"

If IPW driver interface is used, We suggested to follow the steps from 1 to 6.
If wpa_supplicant has been installed in your system, only steps 5 and 6 are required
to be executed for WEXT driver interface.

To see detailed description for driver interface and wpa_supplicant, please type
"man wpa_supplicant".
	
	(1)Download latetest source code for wpa supplicant or use wpa_supplicant-0.5.5
           attached in this package. (It is suggested to use default package contained
           in the distribution because there should less compilation issue.)

           Unpack source code of WPA supplicant:

           tar -zxvf wpa_supplicant-0.5.5.tar.gz (e.g.)
           cd wpa_supplicant-0.5.5

	(2)Create .config file:

           cp defconfig .config

        (3)Edit .config file, uncomment the following line if ipw driver interface
           will be applied:

           #CONFIG_DRIVER_IPW=y.

        (4)Build and install WPA supplicant:
           
           make
           cp wpa_cli wpa_supplicant /usr/local/bin

           If make error for lack of <include/md5.h>, install the openssl lib(two ways):
           1. Install the openssl lib from corresponding installation disc:
              Fedora Core 2/3/4/5(openssl-0.9.71x-xx),
              Mandrake10.2/Mandriva10.2(openssl-0.9.7x-xmdk),
              Debian 3.1(libssl-dev), Suse 9.3/10.0/10.1(openssl_devl),
              Gentoo(dev-libs/openssl), etc.
           2. Download the openssl open source package from www.openssl.org, build and
              install it.

        (5)Edit wpa_supplicant.conf to set up SSID and its passphrase.
           For example, the following setting in "wpa1.conf" means SSID
           to join is "BufAG54_Ch6" and its passphrase is "87654321".

           Example 1: Configuration for WPA-PWK
           network={
                        ssid="BufAG54_Ch6"
                        proto=WPA
                        key_mgmt=WPA-PSK
                        pairwise=CCMP TKIP
                        group=CCMP TKIP WEP104 WEP40
                        psk="87654321"
                        priority=2
                  }

           Example 2: Configuration for LEAP
           network={
                        ssid="BufAG54_Ch6"
                        key_mgmt=IEEE8021X
                        group=WEP40 WEP104
                        eap=LEAP
                        identity="user1"
                        password="1111"
                  }

        Note: 1. proto=WPA for WPA, proto=RSN for WPA2.
              2. If user needs to connect an AP with WPA or WPA2 mixed mode, it is suggested
                 to set the cipher of pairwise and group to both CCMP and TKIP unless you
                 know exactly which cipher type AP is configured.
              3. Low kernel version which is lower than 2.6.18.rc2 may have trouble with
                 TKIP heavy traffic while SMP is configured. Please change your security
                 cipher or update your kernel.
              4. According to documentaion "wpa_supplicant.conf" provided by the package of
                 wpa_supplicant, ap_scan is set to 2 for IBSS connection. If user is trying to
                 associate to AP in Infrastructure mode, please unmark this line us as belowing
                 "#ap_scan=2"

        (6)Execute WPA supplicant (Assume related modules had been loaded):
           wpa_supplicant -D wext -c wpa1.conf -i wlan0 & (recommended)
           wpa_supplicant -D ipw -c wpa1.conf -i wlan0

           Note: At first, user sholud check Wireless Extension by typing "iwconfig -v"
                 on the comment line. If the version of Wireless Extension is equal or
                 larger than 18, the option of "-D wext" is suggested. If the version
                 of Wireless extension is less than 18, the option of "-D ipw" is
                 suggested.
           	 
		 But before you use "wext" or "ipw" command, you sholud check which drivers 
                 wpa_supplicant can support by typing command "wpa_supplicant". after typing the 
                 comment line, you can see some infomations about wpa_supplicant are listed, 
                 example:
		 ---------------------------------------------------------------------------
		 usage:
                      	XXXXXXXXX
                 drivers:
                        wext = Linux wireless extensions (generic)
  			atmel = ATMEL AT76C5XXx (USB, PCMCIA)
  			wired = wpa_supplicant wired Ethernet driver
                 options:
                      	XXXXXXXXX
                 example:
                      	XXXXXXXXX 
		 ---------------------------------------------------------------------------
		 The driver interface wpa_supplicant can support are listed in "drivers", 
                 if "ipw" or "wext" is not listed in it, you can only use the the other interface. 
                 If the interface you want to use is not supported by wpa_supplicant. you can 
                 follow steps (1)-(6), And in step (3) you must let:

                 CONFIG_DRIVER_IPW=y.
                 or
                 CONFIG_DRIVER_WEXT=y.
		 or both 
                 CONFIG_DRIVER_IPW=y.
                 CONFIG_DRIVER_WEXT=y.

======================================================================================
                        GPIO methord for Radio On/Off
======================================================================================
	1. The Change For Deliverring Power State:

           Now we add the RadioPower.sh script in the driver root path.
           When you run ./wlan0up or make install, this script will be copied 
	   to /etc/acpi/events. And the driver can deliver the power 
	   state "RFON" or "RFOFF" into /etc/acpi/events/RadioPower.sh from driver.
           So you can change this script based on the power state RFON or RFOFF.

	2. For Example:

           Now the RadioPower.sh's content is:
           if[ "$1" = ""RFON ]; then
                echo "===================>Now Polling Method Turn RF ON!" > /etc/acpi/events/RadioPowerTest
           else
                echo "===================>Now Polling Method Turn RF OFF!" > /etc/acpi/events/RadioPowerTest
           fi

           So when you turn on RF using Polling Method, you can see "===================>>Now Polling Method Turn RF ON!"
           using command: cat /etc/acpi/events/RadioPowerTest.

           And when you turn off RF using Polling Method, you can see "===================>>Now Polling Method Turn RF OFF!"
           using command: cat /etc/acpi/events/RadioPowerTest.

