Introduction to WPA Supplicant
        
        
          WPA Supplicant is a Wi-Fi
          Protected Access (WPA) client and IEEE 802.1X supplicant. It
          implements WPA key negotiation with a WPA Authenticator and
          Extensible Authentication Protocol (EAP) authentication with an
          Authentication Server. In addition, it controls the roaming and
          IEEE 802.11 authentication/association of the wireless LAN driver.
          This is useful for connecting to a password protected wireless
          access point.
        
        
          This package is known to build and work properly using an LFS 12.4
          platform.
        
        
          Package Information
        
        
        
          WPA Supplicant Dependencies
        
        
          Required (Runtime)
        
        
          Configuring the Linux
          Kernel for Wireless
        
        
          Recommended
        
        
          libnl-3.11.0
        
        
          Optional
        
        
          libxml2-2.14.5
        
       
      
        
          Installation of WPA Supplicant
        
        
          First you will need to create an initial configuration file for the
          build process. You can read wpa_supplicant/README and wpa_supplicant/defconfig for the explanation of
          the following options as well as other options that can be used.
          Create a build configuration file that should work for standard
          WiFi setups by running the following command:
        
        cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF
        
          If you wish to use WPA Supplicant
          with NetworkManager-1.54.0, add the
          following options to the WPA
          Supplicant build configuration file by running the following
          command:
        
        cat >> wpa_supplicant/.config << "EOF"
CONFIG_CTRL_IFACE_DBUS=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y
EOF
        
          Install WPA Supplicant by running
          the following commands:
        
        cd wpa_supplicant &&
make BINDIR=/usr/sbin LIBDIR=/usr/lib
        
          This package does not come with a test suite.
        
        
          Now, as the root user:
        
        install -v -m755 wpa_{cli,passphrase,supplicant} /usr/sbin/ &&
install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ &&
install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/
        
          Install the systemd support files
          by running the following command as the root user:
        
        install -v -m644 systemd/*.service /usr/lib/systemd/system/
        
          If you have built WPA Supplicant
          with D-Bus support, you will need
          to install D-Bus configuration
          files. Install them by running the following commands as the
          root user:
        
        install -v -m644 dbus/fi.w1.wpa_supplicant1.service \
                 /usr/share/dbus-1/system-services/ &&
install -v -d -m755 /etc/dbus-1/system.d &&
install -v -m644 dbus/dbus-wpa_supplicant.conf \
                 /etc/dbus-1/system.d/wpa_supplicant.conf
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            You will need to restart the system D-Bus daemon before you can use the
            WPA Supplicant D-Bus interface.
          
         
       
      
        
          Configuring wpa_supplicant
        
        
          ![[Important]](../images/important.png) 
          
            Important
          
          
            If you are using WPA Supplicant with NetworkManager-1.54.0 (or anything
            communicating with WPA Supplicant via D-Bus), this section should
            be skipped. Running a D-Bus connected WPA Supplicant instance and
            another WPA supplicant instance configured following this section
            simultaneously can cause subtle issues.
          
         
        
          
            Config File
          
          
            /etc/wpa_supplicant/wpa_supplicant-*.conf
          
         
        
          
            Configuration Information
          
          
            To connect to an access point that uses a password, you need to
            put the pre-shared key in /etc/wpa_supplicant/wpa_supplicant-wifi0.conf. SSID is
            the string that the access point/router transmits to identify
            itself. Run the following command as the root user:
          
          install -v -dm755 /etc/wpa_supplicant &&
wpa_passphrase SSID | sed '/^\t#/d' > /etc/wpa_supplicant/wpa_supplicant-wifi0.conf
          
            The wpa_supplicant
            command will ask you to input the password of the access point.
          
          
            /etc/wpa_supplicant/wpa_supplicant-wifi0.conf can hold
            the details of several access points. When wpa_supplicant is started, it
            will scan for the SSIDs it can see and choose the appropriate
            password to connect.
          
          
            If you want to connect to an access point that isn't password
            protected, put an entry like this in /etc/wpa_supplicant/wpa_supplicant-wifi0.conf. Replace
            "Some-SSID" with the SSID of the access point/router.
          
          network={
  ssid="Some-SSID"
  key_mgmt=NONE
}
          
            Connecting to a new access point that is not in the configuration
            file can be accomplished manually via the command line, but it
            must be done via a privileged user. To do that, add the following
            to the configuration file:
          
          ctrl_interface=DIR=/run/wpa_supplicant GROUP=<privileged group>
update_config=1
          
            Replace the <privileged group> above with a system group
            where members have the ability to connect to a wireless access
            point.
          
          
            There are many options that you could use to tweak how you
            connect to each access point. They are described in some detail
            in the wpa_supplicant/wpa_supplicant.conf file in the
            source tree.
          
         
        
          
            Connecting to an Access Point
          
          
            There are 3 types of systemd
            units that were installed:
          
          
          
            The only difference between 3 of them is what driver is used for
            connecting (-D option). The first one uses the default driver,
            the second one uses the nl80211 driver and the third one uses the
            wired driver.
          
          
            You can connect to the wireless access point by running the
            following command as the root
            user:
          
          systemctl start wpa_supplicant@wlan0
          
            To connect to the wireless access point at boot, simply enable
            the appropriate wpa_supplicant service by
            running the following command as the root user:
          
          systemctl enable wpa_supplicant@wlan0
          
            Depending on your setup, you can replace the wpa_supplicant@.service with any other listed
            above.
          
          
            To assign a network address to your wireless interface, consult
            the General
            Network Configuration page in LFS.