ZD1211 - linux driver for ZyDAS ZD1211 based usb 2.0 wlan adapters
------------------------------------------------------------------

Reqirements:
------------

- Kernel 2.4.x. I am developing the driver on 2.4.24, but it
  reportedly also works on 2.4.x. If your kernels version is less than
  2.4.22 (for example Red Hat 9.0 is 2.4.20-8), suggest to upgrade kernel 
  for better support on USB 2.0. 
  
- Kernel 2.6.x. This driver has been verify on 2.6.6 and 2.6.7.

- To build zd1211 you will need: Configured kernel source code for the 
  kernel you are running. Ideally, Configured means that you have at 
  least run 'make config', 'make menuconfig', or 'make xconfig'. If your
  platform is not SMP system, please don't config SMP supported, because
  when module loaded, this will make unresolved symbol..
     
- Make sure your kernel usb 2.0 support is running
  - Use lsmod to check "ehci-hcd" module is loaded.
  - If host is not support usb 2.0, zd1211 will run under pure-b mode.


Building zd1211:
------------

1)  untar the package using the command:
    tar zxvf zd1211-XXXX.tar.gz

2)  edit the Makefile to make sure the path of KERNEL_SOURCE is your
    are running, and the kernel version is correctly configure.
	
3)  Under zd1211_XXXX/zdsta directory, use "make clean", "make", "make install"
    to make and install driver.	


Running:
--------

- If you have hotplug installed, the drivers should now be loaded. If not,
  load them by hand: modprobe -v zd1211 (or insmod zd1211.o)

- Check if the modules are loaded with lsmod. It should look like this:
  ...
  zd1211          183576   0  (unused)
  ...

- Run 'ifconfig <iface> <your IP address>'

- Run 'iwconfig <iface> ' to configure the wireless setting, here are 
  some examples, more detail information please check with 'man iwconfig'.
  Example:
  iwconfig <iface> essid "My Network"   //Set essid
  iwconfig <iface> channel 1            //Set channel
  iwconfig <iface> mode Managed (Station mode)	//Set operation mode
  iwconfig <iface> mode Ad-Hoc (Ah-Hoc mode)
  iwconfig <iface> rts 512             //Set rts threshold
  iwconfig <iface> frag 512            //Set fragment threshold
  iwconfig <iface> key s:password [2]  //Set encryption key
  iwconfig <iface> power on/off        //Set power-save mode
  ......


Private Parameters:
------------------

In addition to the parameters of iwconfig, some can be set by iwpriv:
- open system authentication: iwpriv <iface> set_auth 0
- shared key authentication:  iwpriv <iface> set_auth 1
Be aware that shared key authentication requires a WEP key.

- long preamble: iwpriv <iface> set_preamble 0
- short preamble: iwpriv <iface> set_preamble 1
- iwpriv <iface> get_preamble	//will display the current preamble type

- List current BSS information:iwpriv <iface> list_bss
  You can use "dmesg" to check the result.



Note:
----

- You can modify the script file "sta" to enable Station function.
  "sta en" Enable STA function
  "sta dis" Disable STA function
- I have tested the driver under Red-Hat 9.0, It's unstable than kernel 2.4.24.
  So please update the kernel.
- If you want to get more infornmation about the driver current status, you can 
  modify the /etc/syslog.conf, uncomment the following line,
  KERN.*    					/dev/xconsole
  then you can get real-time information from xconsole. 


Version:
--------
-V1.2.0.0
  -Buf fixed:
    Improve the stability of power saving mode.
-V1.0.0.0
  -Bug fixed:  
    1. Ad-Hoc can't join with an existing IBSS network.
    2. Re-association timer is too short issue.
    3. The command: "iwlist ethx scan" will hang system(Not panic) during power 
       saving mode is enabled.
    4. Re-coonect with <any> ssid failed.
    5. When the WEP key is changed, the system sometimes will be crashed.
    6. When DUT connect AP for one night without sending any traffic, the system will
       be crashed.
    7. When AP change its ssid, the zd1211 can't re-connect with <any> ssid.( tested
       in closed chamber, Only one AP in chamber)
    8. When AP change channel to channel+1, the zd1211 can't update working channel.
    9. The zd1211 unable to creat an IBSS when NO other BSSs can be found in the 
       environment.(eg. In the chamber)
   10. Send buffer leakage problem in Ad-hoc mode.
-5114
 -Fixed bug: Change the ioctl ID used in the driver to avoid problems
             occur in the Fedora Core 3

-4916
 -Fixed bug: TCP connection may not be setup in the Fedora Core 2

-4813
 -Sync firmware to newer version
 -Support iwpriv command
    iwpriv <iface> save_conf    //save wlan configuration to file
    iwpriv <iface> load_conf    //load wlan configuration from file
 -Fixed tx skb buffer handling when queue to upper layer   

-4728
 -Remove x86 assembly inline function.

-4715
 -Support kernel 2.6.x
 -Fixed bug: DHCP will hard to get IP problem.
 -Support iwpriv command
 	iwpriv <iface> set_mac_mode	 mac_mode	//1: Mixed Mode 
 											//2: Pure G Mode
 											//3: Pure B Mode 
		 
 	iwpriv <iface> get_mac_mode				//display current Mac Mode
 
-4630
 -Fixed Ad-Hoc mode can't work problem.
 -Support Roamming.
 -Support iwlist <iface> scan(ning) command.
 -Support iwpriv command
 	iwpriv <iface> connect cell_number	//the cell_number can be get 
 										//from the result of 
 										//iwlist <iface> scan(ning) command
 										 
 	iwpriv <iface> dbg_flag				//set debug level, default is 0

 -Fiexd Chairot multicast can't work problem.	
 -Fixed Ack timeout problem. 
 
 
-4621
 -First release version.
 -WPA, 802.1X with dynamic key exchange are not supported.
 -Watchdog function was not fully implementated.
 -Apdbg.c provides basic debug command for driver development.
 -Airoha RF chip is not verified.
 -Support basic wireless extension setting.
 -Fixed	iwconfig will show wrong essid information.
 -Roaming is not fully verified.
 	


Known Bugs:
-----------
