WPA_Supplicant:
wpa_supplicant is a WPA Supplicant for
Linux, BSD, Mac OS X, and Windows with support for WPA and WPA2 (IEEE
802.11i / RSN). It is suitable for both desktop/laptop computers and
embedded systems.
wpa_supplicant is designed to be a
"daemon" program that runs in the background and acts as
the backend component controlling the wireless connection.
wpa_supplicant supports separate frontend programs and a text-based
frontend (wpa_cli) and a GUI (wpa_gui) are included with
wpa_supplicant.
wpa_supplicant implements a control
interface that can be used by external programs to control the
operations of the wpa_supplicant daemon and to get status information
and event notifications.
wpa_supplicant was designed to be
portable for different drivers and operating systems. Hopefully,
support for more wlan cards and OSes will be added in the future.
Before wpa_supplicant can do its work,
the network interface must be available. That means that the physical
device must be present and enabled, and the driver for the device
must have be loaded. Note, however, that the -w
option of the wpa_supplicant daemon
instructs the daemon to continue to run and to wait for the interface
to become available. Without the -w
option, the daemon will exit immediately if the device isn't already
available.
The wpa_supplicant
utility is an implementation of the WPA Supplicant component, i.e.,
the part that runs in the client stations. It implements WPA key
negotiation with a WPA Authenticator and EAP authentication with
Authentication Server. In addition, it controls the roaming and IEEE
802.11 authentication/association of the wireless LAN driver.
After wpa_supplicant has configured the
network device, higher level configuration such as DHCP may proceed.
The following steps are used when associating with an AP using
WPA:
wpa_supplicant
requests the driver to scan neighboring BSSes
wpa_supplicant
selects a BSS based on its configuration
wpa_supplicant
requests the driver to associate with the chosen BSS
If WPA-EAP: integrated IEEE 802.1X
Supplicant or external Xsupplicant completes EAP authentication with
the authentication server (proxied by the Authenticator in the AP)
If WPA-EAP: master key is received
from the IEEE 802.1X Supplicant
If WPA-PSK: wpa_supplicant
uses PSK as the master session key
wpa_supplicant
completes WPA 4-Way Handshake and Group Key Handshake with the
Authenticator (AP)
wpa_supplicant
configures encryption keys for unicast and broadcast
- normal data packets can be transmitted and received
Syntax:
wpa_supplicant [-BddehLqqvw] [-iifname]
[-cconfig file]
[-Ddriver]
Options:
- -p path
-
Change the path where control sockets should be found.
-
-i ifname
-
Specify the interface that is being configured. By default, choose
the first interface found with a control socket in the socket path.
-
-h
-
Help. Show a usage message.
-
-v
-
Show version information.
-
-B
-
Run as a daemon in the background.
-
-a file
-
Run in daemon mode executing the action file based on events from
wpa_supplicant. The specified file will be
executed with the first argument set to interface name and second to
"CONNECT" or "DISCONNECT" depending on the
event. This can be used
-
-P file
-
Set the location of the PID file.
-
command
-
Run a command. The available commands are listed in the next
section.
The following commands are available:
- -B
-
Run daemon in the background.
-
-i ifname
-
Interface to listen on.
-
-c filename
-
Path to configuration file.
-
-D driver
-
Driver to use. See the available options below.
-
-d
-
Increase debugging verbosity (-dd even more).
-
-K
-
Include keys (passwords, etc.) in debug output.
-
-t
-
Include timestamp in debug messages.
-
-e
-
Use external IEEE 802.1X Supplicant (e.g., xsupplicant) (this
disables the internal Supplicant).
-
-h
-
Help. Show a usage message.
-
-L
-
Show license (GPL and BSD).
-
-q
-
Decrease debugging verbosity (-qq even less).
-
-v
-
Show version.
-
-w
-
Wait for the interface to be added, if needed. Normally,
wpa_supplicant exits if the interface isn't
there yet.
-
-N
-
Start describing new interface.