Install wireless zd1211

Introduction
This will describe how to set-up your wireless network connexion using a zd1211 network adapter. It's describing the method for a debian distribution, but the steps should remain the same for other distributions (only the way to install some applications will change). The ZD1211 network adapter is natively supported since kernel 2.6.18. (Wireless driver support which do not require wrappers to proprietary firmwares are currently quite rare. Other wireless chipsets with Free Software drivers are discussed on the talk page.) To find what to buy to get a zd1211 chip, check the list here. I've done my test with a MSI US54SE adapter (Easy to find in France).

Install a kernel supporting wireless stuff and zd1211 module
You can just install this kernel for the kurobox HG : http://www.kurobox.com/sylver/debian/kernel-2.6.18.1-mh7_kurobox_hg-20061103.tar.gz (compatible with loader.o and u-boot methods). The .config files used to compile the kernel is included (/boot/.config) if you want to check used options.

Install the zd1211 firmwares
Download the driver file from one of the mirrors on http://sourceforge.net/project/showfiles.php?group_id=129083 Untar the file so you'll have the firmware files in /lib/firmware/zd1211. Now, you're ready to plug your USB adapted on your kurobox ! When done, you should see this in the output of dmesg : KURO-BOX:~# dmesg [...] ieee80211_crypt: registered algorithm 'NULL' ieee80211: 802.11 data/management/control stack, git-1.1.13 ieee80211: Copyright (C) 2004-2005 Intel Corporation  zd1211rw 1-1:1.0: firmware version 4725 zd1211rw 1-1:1.0: zd1211b chip 0ace:1215 v4810 high 00-02-72 AL2230_RF pa0 g-- zd1211rw 1-1:1.0: eth1 [...] Warning : Due to a bug in the zd1211rw module, it sometimes happen that the USB adapter is not correctly detected after a reboot. You can apply this patch (for kernel 2.6.18.3) to correct the problem ...

Configuring your network connection
First of all, you should install standard wireless tools : apt-get install wireless-tools

Now, you can configure your network according to the encryption method of your wireless network.

Network with no security
TBC

Network with WEP encryption
TBC

Network with WPA/WPA2 encryption
To support WPA/WPA2 encryption, you need the "wpa supplicant" tool, just install it this way : apt-get install wpasupplicant Now configure it, use : nano /etc/wpa_supplicant.conf to create the configuration file and fill it with ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 network={ ssid="your network SSID" psk="your wpa key (up to 63 characters)" proto=WPA priority=5 } If you are running a WPA2 network, replace "proto=WPA" with "proto=WPA2"

Now edit your /etc/network/interfaces file to add the new network interface. You have to put this before the eth0 configuration or the kurobox will keep trying to use eth0 (wired ethernet link) for all your network communications. Your file may looks like this (if using DHCP configuration) : nano /etc/network/interfaces

auto lo iface lo inet loopback auto eth1 iface eth1 inet dhcp pre-up wpa_supplicant -Bw -ieth1 -c/etc/wpa_supplicant.conf -Dwext post-down killall -q wpa_supplicant auto eth0 iface eth0 inet dhcp hostname `hostname`

Now you can test your network parameters by running : ifup eth1 In your dmesg output, you should have this : SoftMAC: Open Authentication completed with xx:xx:xx:xx:xx:xx ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready ieee80211_crypt: registered algorithm 'CCMP' eth1: no IPv6 routers present

You can check your wireless connexion details : KURO-BOX:~# iwconfig eth1 802.11g zd1211 ESSID:"xxxxxxxxxxxx" Mode:Managed Frequency:2.462 GHz Access Point: xx:xx:xx:xx:xx:xx Bit Rate:11 Mb/s Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX Security mode:open Link Quality=100/100 Signal level=100/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Note that the driver currently doesn't (yet) support automatic rate adjustment, so it'll connect at 11mbps speed. You can change this by running this command : iwconfig eth1 rate 54M fixed You should add this line in /etc/init.d/networking if you want your adapter to always use 54mbps speed.

Now just shutdown and restart your kurobox (reboot often fails to detect the wireless adapter because of a bug in the driver, so a complete shutdown and restart is better ...) and your kurobox will be on the network even with the ethernet cable unplugged. With this configuration, the wireless adapter (eth1) will be used if plugged and detected, elseway eth0 (wired ethernet) will be used.

Known bugs/restrictions
The zd1211rw module has limitations/bugs. Limitations are described here For kernel 2.6.22, these limitations are :
 * No ad-hoc mode
 * No access point mode
 * No 802.11a support
 * No Hardware encryption (using software encryption instead)
 * Largepacket + TX-burst not supported
 * No Automatic rate selection/management
 * No Automatic TX power calibration (using a fixed power for now)

TO DO

 * Add description for "no encryption" and "WEP encryption" networks
 * Add description to configure the zd1211 chip as an access point (when available in the zd1211rw module)