The following instructions were written for models using the madwifi driver, and therefore refer to ath0 as the wireless device name. If you have a model using the Ralink driver, use ra0 instead. Also, you probably want to consult rt2860sta.
Atheros drivers
If you have a model with an Atheros AR242x wireless adapter, you have a choice between two kernel drivers for this adapter.
Historically the madwifi driver has been used. In addition to being not entirely free software, the madwifi driver apparently has some limitations. For information on why the madwifi driver is not free, see ../../FreeYourEee
New kernel versions, for example 2.6.26 currently in Debian Lenny, come with an entirely free ath5k driver, developed by the same team as the madwifi driver, but newer and apparently more featureful. Unfortunately, issues with the ath5k driver which have since been fixed still exist in the 2.6.26 version currently in Debian. In my experience, this amounted to the ath5k driver loading out of the box after a fresh Lenny install, presenting me with a wlan0 interface, but not listing any access points. Until more recent kernel versions are in Debian, you can follow these steps to use the more recent ath5k driver with the current 2.6.26 kernel.
NetworkManager: recommended for beginners
New users are recommended to use NetworkManager. Delete eth0 and ath0 configuration from /etc/network/interfaces, install network-manager and network-manager-gnome (or network-manager-kde) packages, and add your user to netdev group. The GNOME applet works with any window manager, so long as it has a notification area (e.g. LXDE's lxpanel has one).
su
apt-get install network-manager network-manager-gnome
addusernetdev
(You'll need to log out and in again for adduser to take effect.)
Wicd: lightweight alternative GUI network manager
For a more lightweight GUI network manager, although it is still rather new to Debian, wicd is a good alternative. While it is still only in sid and not in lenny, the sid version works on lenny for now. We expect in future it will be supported at backports.org, as it is gaining in popularity.
Wicd is a network manager without specific dependencies, usable also with XFCE, Fluxbox, etc.
Once installed, for stable version launch "/opt/wicd/tray.py" and for testing version launch "wicd-client" to show the tray icon in your desktop.
Simple open network
If you're impatient and want to configure for wifi without encryption to a single access point, you can simply set it up as follows:
Install the wireless-tools package.
(File: /etc/network/interfaces)
auto ath0
iface ath0 inet dhcp
wireless-essid router ID
If spaces are used in the ESSID, do not surround them with quotes.
However, beware that particularly with the rt2860 driver, configuring wifi with this method is prone to failure. It doesn't ... (FixMe: explain here what problems may arise.)
Wpa supplicant with PSK
A more elegant solution to connect to one or more access points either with or without encryption is to use wpasupplicant. This is our recommended way to configure wifi for the Eee. If any of the following is unclear or does not work for you, please check the documentation in /usr/share/doc/wpasupplicant/ for details.
First, you have to "aptitude install wpasupplicant".
To configure for wifi to single access point with WPA(2)-PSK encryption, open a text file and paste this and save it as /etc/wpa_supplicant/wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=netdev
ap_scan=1
fast_reauth=1
eapol_version=1
network={
ssid="ROUTER ID"
psk="your password" # or psk=0123456789abcdef
priority=5
}
Note: some parameters take double-quotes and some don't as shown above, e.g. if psk is a hex key don't use double-quotes, but if it is a passphrase, do.
Then edit /etc/network/interfaces with this:
auto ath0
iface ath0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Reboot and you have wifi
Wpa supplicant in roaming mode
For multiple access points, you'll want "roaming" mode. Starting with the previous example, in /etc/network/interfaces, change 'auto ath0' to 'allow-hotplug ath0', change 'wpa-conf' to 'wpa-roam'. Also change 'iface ath0 inet dhcp' to 'iface ath0 inet manual' and add a default connection method 'iface default inet dhcp'. When you're all done, your /etc/network/interfaces should look something like this:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug ath0
iface ath0 inet manual
wpa-driver wext
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Now we are ready to define additional networks in /etc/wpa_supplicant/wpa_supplicant.conf. For example:
network={
key_mgmt=NONE
}
This is a catch-all that will associate with any open access point within range using dhcp to connect.
You can add additional specific networks, each with their own ssid and specify either the type of encryption to use or specify key_mgmt=NONE for either no encryption or WEP. We can also assign id strings to these networks, so that if, for example, your home network is static, and the local cafe is dhcp, we can alter our files like so.
For WEP, you specify the key as follows:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=netdev
ap_scan=1
fast_reauth=1
eapol_version=1
network={
ssid="cafe"
key_mgmt=NONE
wep_key0=FFEEDD001122
id_str="cafe"
}
network={
ssid="home-router"
psk="your password" # or psk=0123456789abcdef
id_str="home"
}
Note: some parameters take double-quotes and some don't as shown above, e.g. if psk is a hex key don't use double-quotes, but if it is a passphrase, do.
And edit our /etc/network/interfaces as follows
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug ath0
iface ath0 inet manual
wpa-driver wext
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
iface cafe inet dhcp
iface home inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Tip: If you have trouble connecting to a network because it does not broadcast its ssid, add 'scan_ssid=1' to its network stanza.
Tip: Look in the ../Troubleshooting section if you have an error. Also see /usr/share/doc/wpasupplicant/ docs for more details.
Tip: Once you have a working configuration, you can use wpa_gui to easily add, delete, select and scan for networks. wpa_gui is a small, neat program that could do for all your needs, without forcing you to manually edit your configuration every time you connect to a new network.
901 hacks
On an EEE 901, with 2.6.26-1-686, the wireless module is the rt2860sta module. Using the function keys to disable the wireless works correctly. Re-enabling the wireless using the function however may not work. In this case, a rather unsightly workaround exists. This can be achieved by modifying /etc/acpi/actions/wireless.sh.
--- /home/eeeuser/tmpe 2009-01-06 22:24:37.000000000 +1100
+++ /etc/acpi/actions/wireless.sh 2009-01-06 21:46:12.000000000 +1100
@@ -10,6 +10,10 @@
if [ $(cat $wlan_control) = 0 ]; then
echo 1 > $wlan_control
detect_wlan
+ rmmod rt2860sta
+ rmmod pciehp
+ modprobe pciehp
+ modprobe rt2860sta
if [ "$WLAN_MOD" = 'ath_pci' ]; then
# madwifi needs some handholding
modprobe $WLAN_MOD
Re-enabling wireless should now function correctly.
No comments:
Post a Comment