# Wireless tools for Linux

Wireless tools for Linux is a collection of user-space utilities written for Linux kernel-based operating systems to support and facilitate the configuration of device drivers of wireless network interface controllers and some related aspects of networking using the Linux Wireless Extension. The Wireless tools for Linux and Linux Wireless Extension are maintained by Jean Tourrilhes and sponsored by Hewlett-Packard.

## Adoption

It is included with most operating system distributions built on the Linux kernel. In many Linux distributions, this package is included by default, or based on whether a wireless card is present. If it is not automatically installed by the distribution, it is usually easy to find in binary form.

## Frontends

Due to the relative complexity of requiring several separate commands for one task (e.g. iwlist and iwconfig to find and sync with a wireless access point), some recommend using frontends provided by GNOME and KDE, or an application called NetGo, to manipulate these settings.

## Alternatives

The Linux kernel authors consider wireless tools package deprecated; the alternative being the more recent iw utility. Especially the iw dev wlan0 scan output provides many additional details over the iwlist scan output.

## Package tools
### ifrename

ifrename allows to rename wireless network interfaces based on various static criteria to assign a consistent name to each interface.
By default, interface names are dynamic, and each network adapter is assigned the first available name (eth0, eth1...) while the order network interfaces are created may vary. Now ifrename allows the user to decide what name a network interface will have. It can use a variety of selectors to match interface names to the network interfaces on the system, the most common selector is the interface MAC address.
ifrename must be run before interfaces are brought up, which is why it's mostly useful in various scripts (init, hotplug) but is seldom used directly by the user. By default it renames all present system interfaces using mappings defined in /etc/iftab.

### iwconfig

iwconfig is used to display and change the parameters of the network interface which are specific to the wireless operation (e.g. interface name, frequency, SSID). It may also be used to display the wireless statistics (extracted from /proc/net/wireless).
In the free Berkeley Software Distribution UNIX operating systems, the role of iwconfig is performed by an expanded ifconfig command.

#### Sample iwconfig output

The following command displays information about the currently associated wireless network.

### iwevent

iwevent displays wireless events generated by drivers and setting changes that are received through the RTNetlink socket. Each line displays the specific wireless event which describes what has happened on the specified wireless interface. It doesn't take any arguments.

### iwgetid

iwgetid reports the ESSID, NWID or access point/cell address of the wireless network that is currently used. By default it will print the ESSID of the device, and if it doesn't have any it will print its NWID instead. The information reported is the same as the one shown by iwconfig, but iwgetid is easier to integrate in various scripts.

### iwlist

iwlist is used to scan for available wireless networks and display additional information about them that is not displayed by iwconfig. The main argument is used to select a category of information, iwlist displays in detailed form all information related to this category, including information already shown by iwconfig.
The command is primarily used to generate a list of nearby wireless access points and their MAC addresses and SSIDs.

#### Sample iwlist output

The following screen dialog shows the result of scanning for nearby wireless access points.
This scan yields only one nearby wireless access point. Helpful information in this scan includes ESSID, the type of network, and signal quality.

### iwpriv

It is used to manipulate parameters and setting of the Wireless Extension specific to each driver (as opposed to iwconfig which deals with generic ones).
Without any argument, iwpriv lists the available private commands available on each interface, and the parameters that they require. Using this information, the user may apply those interface specific commands on the specified interface.

### iwspy

iwspy is used to monitor a set list of nodes and record the link quality of each of them.
The information gathered is the same as that available in /proc/net/wireless: quality of the link, signal strength and noise level. This information is updated each time a new packet is received, so each address of the list adds some overhead in the driver. Note that this functionality works only for nodes part of the current wireless cell, you can not monitor access points you are not associated with (you can use Scanning for that) and nodes in other cells. In Managed mode, in most case packets are relayed by the access point, in this case you will get the signal strength of the access point. For those reasons this functionality is mostly useful in ad hoc and master mode.

### wpa_supplicant/hostapd

wpa_supplicant and hostapd come as a pair of complementary client and host for wireless access points.
That is hostapd allows us to create access points from the command line, which allows one to share one's internet connection wirelessly, while wpa_supplicant allows us to scan and to connect to access points as a client in order to get onto the Internet.