|/
|\ISS LINUX™

News (20210723a)
Blog
Install
FAQ
Wiki
Package System
Package Manager
Testimonials
Screenshots
Contact
Donate
Archive
wiki / software / wpa_supplicant                                  Edit this page
Edited (4f18dd0) at 2023-07-07 by Dylan Araps
WPA_SUPPLICANT [0]
________________________________________________________________________________
wpa_supplicant is a cross-platform supplicant with support for WEP, WPA and WPA2
(IEEE 802.11i). It is suitable for desktops, laptops and embedded systems. It is 
the IEEE 802.1X/WPA component that is used in the client stations. It implements
key negotiation with a WPA authenticator and it controls the roaming and IEEE 
802.11 authentication/association of the wireless driver. 
Configuration
________________________________________________________________________________
Begin by first verifying that you have wpa_supplicant installed:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ kiss b wpa_supplicant                                                    |
|                                                                              |
+------------------------------------------------------------------------------+
At this point, you will want to create a wpa_supplicant file to store your 
wireless network information and credentials:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ mkdir -p /etc/wpa_supplicant                                             |
|   $ touch /etc/wpa_supplicant/wpa_supplicant.conf                            |
|                                                                              |
+------------------------------------------------------------------------------+
The following wpa_supplicant.conf can be used as a *starter* configuration
file. Remember to replace the BSSID and PASSWORD with your actual wireless
network credentials.
+------------------------------------------------------------------------------+
|                                                                              |
|   # Allow users in the 'wheel' group to control wpa_supplicant               |
|   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel                     |
|                                                                              |
|   # Make this file writable for wpa_gui / wpa_cli                            |
|   update_config=1                                                            |
|                                                                              |
|   network={                                                                  |
|          ssid="BSSID"                                                        |
|          psk="PASSWORD"                                                      |
|   }                                                                          |
|                                                                              |
+------------------------------------------------------------------------------+
For additional network requirements, refer to the "wpa_supplicant" Arch Linux 
Wiki page [0].
Generating a Passphrase
________________________________________________________________________________
NOTE: This section is not required but HIGHLY recommended since storing your
      password in clear text is not good practice. 
To allow for quicker connections to a network whose BSSID is already known, we
can make use of wpa_passphrase, a command line tool which generates the minimal
configuration needed by wpa_supplicant: 
+------------------------------------------------------------------------------+
|                                                                              |
|   $ wpa_passphrase BSSID PASSWORD                                            |
|                                                                              |
+------------------------------------------------------------------------------+
Replace BSSID and PASSWORD with your actual wireless network credentials. The 
output of this command can then be used to replace the network section of the 
wpa_supplicant.conf file created in the previous section (just remember to 
delete the line containing your password in clear text).
Manual Wireless Connection
________________________________________________________________________________
A new wireless connection can be manually started with the following command:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ wpa_supplicant -B -i INTERFACE \                                         |
|                       -c /etc/wpa_supplicant/wpa_supplicant.conf             |
|                                                                              |
+------------------------------------------------------------------------------+
Replace INTERFACE with your appropriate wireless LAN interface name. After, 
use your preferred method to manually obtain an IP address. For example, when 
using dhcpcd, run the following:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ dhcpcd INTERFACE                                                         |
|                                                                              |
+------------------------------------------------------------------------------+
The wireless status connection can be verified by reviewing the output of the
following command:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ ifconfig                                                                 |
|                                                                              |
+------------------------------------------------------------------------------+
Managed Wireless Connection via dhcpcd
________________________________________________________________________________
Assuming that dhcpcd is already installed, busybox's runsv can be used to create 
new managed services for wpa_supplicant and dhcpcd:
+------------------------------------------------------------------------------+
|                                                                              |
|   $ ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant \                        |
|           /usr/lib/dhcpcd/dhcpcd-hooks/                                      |
|   $ ln -s /etc/sv/dhcpcd/ /var/service                                       |
|                                                                              |
+------------------------------------------------------------------------------+
Tips and Tricks
________________________________________________________________________________
* A list of possible INTERFACE names can be obtained by running the following:
  +----------------------------------------------------------------------------+
  |                                                                            |
  |   $ ls /sys/class/net                                                      |
  |                                                                            |
  +----------------------------------------------------------------------------+
* While testing arguments/configuration it may be helpful to launch 
  wpa_supplicant in the foreground (i.e. without the -B option) for better 
  debugging messages.
References
________________________________________________________________________________
[0] https://wiki.archlinux.org/index.php/wpa_supplicant
________________________________________________________________________________
Dylan Araps (C) 2019-2021
The registered trademark Linux(R) is used pursuant to a sublicense from the
Linux Foundation, the exclusive licensee of Linus Torvalds, owner of the mark
on a world­wide basis.