RTL8185 Linux Driver v1028.1117.2008 for linux kernel 2.6

   -- This driver supports RealTek RTL8185 Wireless LAN driver for
      Ubuntu 7.01/8.04, 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.
   -- This driver Support Client mode for either infrastructure or adhoc mode
   -- This driver Support WEP and WPAPSK/WPA2PSK connection

===============================================================================
                                Component
===============================================================================

The driver is composed of several parts:
    1. Module source code
        ieee80211
        rtl8185

    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. Example of supplicant configuration file:
	wpa1.conf

    6. wpa_supplicant:
	wpa_supplicant-0.5.5.zip
===============================================================================
                                Installation
===============================================================================
<<Method 1>>
Running the scripts can finish all operations of building up modules from source code and start 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              		[essid]
        Set the essid, join (I)BSS  essid             		[mac_addr]
        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   
===============================================================================
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:

           unzip wpa_supplicant-0.5.5.zip (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 rtl8185 and 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.
