Wireless Management (draft)
Assuming that your drivers are installed and working properly, you will need to choose a method for managing your wireless connections. The following subsections will help you decide the best way to do just that.
Procedure and tools you’ll need will depend on several factors:
- The easiness of configuration management, from a completely manual setup procedure that you’ll need to repeat at each boot to a software-managed, automatic, autostarting solution
- The encryption type (or not) that protects the wireless network
- If you need network profiles, i.e. if your computer will frequently change networks (such as a laptop)
The Wired Equivalent Privacy encryption scheme was introduced in 1997. But the discovery of weaknesses in the WEP algorithm in 2001 have made it a poor choice of wireless security protocol. Some tools, such as aircrack, can break the WEP protection in a couple of minutes. Despite this issue, WEP is still popular and the default encryption scheme in most commercial wireless routers.
The Wi-Fi Protected Access security protocol was created in response to the WEP weaknesses. WPA and especially WPA2, which uses the AES encryption algorithm, are considered secure. Several modes of authentication are supported by WPA/WPA2: a PSK mode (Pre-Shared Key) designed for home and small office use, and an Enterprise (EAP) mode, which requires an authentication server. Wi-Fi certified devices must now provide WPA2. The following instructions will only covered the PSK method.
This table shows the different methods that can be used to activate and manage a wireless network connection, depending on the encryption and management types, and the various tools that are required. Although there may be other possibilities, these are the most frequently used:
|Manual, need to repeat at each computer reboot
ifconfig + iwconfig + dhcpcd/ifconfig
ifconfig + iwconfig + wpa_supplicant + dhcpcd/ifconfig
|Automatically managed, centralized without network profile support
|define interface in
|Automatically managed, with network profiles support
Netcfg, wicd, NetworkManager, etc…
Whatever your choice, you should try to connect using the manual method first. This will help you understand the different steps that are required and debug them in case a problem arose. Another tip: if possible (e.g. if you admin your wifi access point), try connecting with no encryption, to check everything works. Then try using encryption, either WEP (simpler to configure) or WPA.
The programs provided by the package wireless_tools are the basic set of tools to set up a wireless network. Moreover, if you use WPA/WPA2 encryption, you will need the package wpa_supplicant. These powerful userspace console tools work extremely well and allow complete, manual control from the shell.
These examples assume your wireless device is
wlan0 with the appropriate device name.
1. (Optional, may be required) Some cards require that the kernel interface be activated before you can use the wireless_tools:
# ifconfig wlan0 up
2. (Optional, may be required) See what access points are available:
# iwlist wlan0 scan
We assume you want to use the essid named
3. Depending on the encryption, you need to associate your wireless device with the access point to use and pass the encryption key.
- No encryption
# iwconfig wlan0 essid "MyEssid"
using an hexadecimal key:
# iwconfig wlan0 essid "MyEssid" key 1234567890
using an ascii key:
# iwconfig wlan0 essid "MyEssid" key s:asciikey
You need to edit the
/etc/wpa_supplicant.conf file as described in WPA_Supplicant. Then, issue this command:
# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
This is assuming your device uses the
wext driver. If this does not work, you may need to adjust these options. Check WPA_Supplicant for more information and troubleshooting.
4. Finally, provide an IP address to the network interface. Simple examples are:
# dhcpcd wlan0
for DHCP, or
# ifconfig wlan0 192.168.0.2 # route add default gw 192.168.0.1
for static IP.
Automatically managed, centralized without network profile support
- The /etc/rc.conf file is sourced by the network script. Therefore, you may define and configure a simple wireless setup within /etc/rc.conf for a centralized approach with wlan_<interface>="<interface> essid <essid>" and INTERFACES=(<interface1> <interface2>). The name of the network goes in place of MyEssid.
# /etc/rc.conf eth0="dhcp" wlan0="dhcp" wlan_wlan0="wlan0 essid MyEssid" # Unencrypted #wlan_wlan0="wlan0 essid MyEssid key 1234567890" # hex WEP key #wlan_wlan0="wlan0 essid MyEssid key s:asciikey" # ascii WEP key INTERFACES=(eth0 wlan0)
Not all wireless cards are
wlan0. Determine your wireless interface with ifconfig -a.
Atheros-based cards, for example, are typically
ath0, so change
wlan_ath0="ath0 essid MyEssid key 12345678"
Also define ath0 in the INTERFACES= line.)
- Alternatively, you may define wlan_<interface> within /etc/conf.d/wireless, (which is also sourced by the network script), for a de-centralized approach:
# /etc/conf.d/wireless wlan_wlan0="wlan0 essid MyEssid"
Automatically managed, using netcfg network manager
netcfg provides a versatile, robust and fast solution to networking on Arch.
It uses a profile based setup and is capable of detection and connection to a wide range of network types. This is no harder than using graphical tools. Following the directions above, you can get a list of wireless networks. Then, as with graphical tools, you will need a password.
Occasionally, you have to configure wpa_supplicant properly at first, if you want to use an encrypted wireless connection (eg: wep, wpa, wpa2, etc.) in netcfg, because netcfg package depends on wpa_supplicant.
Detailed article: Network Profiles
Detailed article for development version: Network Profiles development
Other wireless management solutions
There are a number of wireless management solutions available to Arch Linux users as an alternative to the above scripts.
Autowifi is a daemon that configures your wireless network automatically depending on the ESSID. Once configured, no user interaction is necessary and no GUI tools are required.
For more information, see the Autowifi wiki.
Wicd is a network manager that can handle both wireless and wired connections. It is written in Python and Gtk with fewer dependencies than NetworkManager, making it an ideal solution for lightweight desktop users. Wicd is now available in the extra repository for both i686 and x86_64.
For more information, see the Wicd wiki.
NetworkManager is an advanced network management tool that is enabled by default in most popular Linux distributions. In addition to managing wired connections, NetworkManager provides worry-free wireless roaming with an easy-to-use GUI program for selecting your desired network.
For more information, see the NetworkManager wiki.
Wlassistant is a very intuitive and straightforward GUI app for managing your wireless connections.
# pacman -S wlassistant
Wlassistant must be run with root privileges:
# sudo wlassistant
One method of using wlassistant is to configure your wireless card within /etc/rc.conf, specifying the access point you use most often. On startup, your card will automatically be configured for this essid, but if other wireless networks are needed/available, wlassistant can then be invoked to access them. Background the network daemon in /etc/rc.conf, by prefixing it with a @, to avoid boot delays.