170 lines
3.5 KiB
Markdown
170 lines
3.5 KiB
Markdown
|
2022-02-14
|
||
|
|
||
|
How to Upgrade wpa_supplicant
|
||
|
|
||
|
Tested on: Linux Mint 20.2 - kernel 5.13
|
||
|
|
||
|
Info: Some distros may require additional updates beyond wpa_supplicant
|
||
|
to support WPA3 in managed (client) mode. Hopefully, as time passes,
|
||
|
making modifications will no longer be necessary for the Realtek
|
||
|
drivers to fully support WPA3. No modifications, such as this, are
|
||
|
necessary at this time for AP mode with the Raspberry Pi OS.
|
||
|
|
||
|
Note: This document applies only to the following drivers:
|
||
|
|
||
|
```
|
||
|
https://github.com/morrownr/8821au-20210708
|
||
|
https://github.com/morrownr/8812au-20210629
|
||
|
https://github.com/morrownr/88x2bu-20210702
|
||
|
https://github.com/morrownr/8821cu-20210118
|
||
|
```
|
||
|
|
||
|
Purpose: Provide instructions for upgrading wpa_supplicant. As of the
|
||
|
date of this document, the specified Realtek USB WiFi adapter drivers
|
||
|
cannot support WPA3 without a very new version of wpa_supplicant
|
||
|
installed on most Linux distros. The version of wpa_supplicant required
|
||
|
currently is not even released yet. It is the git main.
|
||
|
|
||
|
This guide and its effectiveness has had limited testing but has been
|
||
|
requested by users. It is now up to you, should you decide this is what
|
||
|
want to do, to report success or failure so that we can improve this
|
||
|
guide.
|
||
|
|
||
|
Disclaimer: This guide attempts to help you install software that has
|
||
|
not been released. This may break your system. If it does break your
|
||
|
system, you own it.
|
||
|
|
||
|
|
||
|
Step 1) Install dependencies required by wpa_supplicant.
|
||
|
|
||
|
```
|
||
|
$ sudo apt install -y libssl-dev build-essential pkg-config libnl-3-dev
|
||
|
|
||
|
$ sudo apt install -y libdbus-1-dev libdbus-glib-1-2 libdbus-glib-1-dev
|
||
|
|
||
|
$ sudo apt install -y libreadline-dev libncurses5-dev libnl-genl-3-dev
|
||
|
|
||
|
$ sudo apt install -y dbus libnl-route-3-dev
|
||
|
```
|
||
|
|
||
|
Step 2) Go to the `src` directory.
|
||
|
|
||
|
```
|
||
|
$ cd ~/src
|
||
|
```
|
||
|
|
||
|
The `~/src` directory has already been created if you followed the
|
||
|
instructions for installing any of the wifi drivers listed above.
|
||
|
|
||
|
|
||
|
3) Download the wpa_supplicant source package.
|
||
|
|
||
|
```
|
||
|
$ git clone git://w1.fi/hostap.git
|
||
|
```
|
||
|
|
||
|
4) Go in to wpa_supplicant folder.
|
||
|
|
||
|
```
|
||
|
$ cd ~/src/hostap/wpa_supplicant
|
||
|
```
|
||
|
|
||
|
If an error is returned, check whether the directory name is correct.
|
||
|
|
||
|
|
||
|
5) Create a build configuration file.
|
||
|
|
||
|
```
|
||
|
$ sudo nano .config
|
||
|
```
|
||
|
|
||
|
Add the following contents into .config and save ( Ctrl + X, Y, Enter )
|
||
|
|
||
|
```
|
||
|
# 2021-11.29
|
||
|
# .config for wpa_supplicant
|
||
|
# Required for WPA3
|
||
|
CONFIG_TLS=openssl
|
||
|
CONFIG_IEEE80211W=y
|
||
|
CONFIG_SAE=y
|
||
|
CONFIG_LIBNL20=y
|
||
|
CONFIG_LIBNL32=y
|
||
|
#
|
||
|
# Defaults per defconfig
|
||
|
CONFIG_DRIVER_WEXT=y
|
||
|
CONFIG_DRIVER_NL80211=y
|
||
|
CONFIG_DRIVER_WIRED=y
|
||
|
CONFIG_DRIVER_MACSEC_LINUX=y
|
||
|
CONFIG_IEEE8021X_EAPOL=y
|
||
|
CONFIG_EAP_MD5=y
|
||
|
CONFIG_EAP_MSCHAPV2=y
|
||
|
CONFIG_EAP_TLS=y
|
||
|
CONFIG_EAP_PEAP=y
|
||
|
CONFIG_EAP_TTLS=y
|
||
|
CONFIG_EAP_FAST=y
|
||
|
CONFIG_EAP_GTC=y
|
||
|
CONFIG_EAP_OTP=y
|
||
|
CONFIG_EAP_PWD=y
|
||
|
CONFIG_EAP_PAX=y
|
||
|
CONFIG_EAP_LEAP=y
|
||
|
CONFIG_EAP_SAKE=y
|
||
|
CONFIG_EAP_GPSK=y
|
||
|
CONFIG_EAP_GPSK_SHA256=y
|
||
|
CONFIG_EAP_TNC=y
|
||
|
CONFIG_WPS=y
|
||
|
CONFIG_EAP_IKEV2=y
|
||
|
CONFIG_MACSEC=y
|
||
|
CONFIG_PKCS12=y
|
||
|
CONFIG_SMARTCARD=y
|
||
|
CONFIG_BACKEND=file
|
||
|
CONFIG_CTRL_IFACE=y
|
||
|
CONFIG_CTRL_IFACE_DBUS_NEW=y
|
||
|
CONFIG_CTRL_IFACE_DBUS_INTRO=y
|
||
|
CONFIG_IEEE80211R=y
|
||
|
CONFIG_DEBUG_FILE=y
|
||
|
CONFIG_DEBUG_SYSLOG=y
|
||
|
CONFIG_IEEE80211AC=y
|
||
|
CONFIG_INTERWORKING=y
|
||
|
CONFIG_HS20=y
|
||
|
CONFIG_AP=y
|
||
|
CONFIG_P2P=y
|
||
|
CONFIG_TDLS=y
|
||
|
CONFIG_WIFI_DISPLAY=y
|
||
|
CONFIG_DPP=y
|
||
|
#
|
||
|
# Not defaults per defconfig
|
||
|
CONFIG_READLINE=y
|
||
|
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
|
||
|
#
|
||
|
# Extra
|
||
|
CFLAGS += -I/usr/include/libnl3
|
||
|
#
|
||
|
# End of .config
|
||
|
```
|
||
|
|
||
|
6) Compile
|
||
|
|
||
|
```
|
||
|
$ make
|
||
|
```
|
||
|
|
||
|
7) Install
|
||
|
|
||
|
```
|
||
|
$ sudo make install
|
||
|
```
|
||
|
|
||
|
8) Reboot
|
||
|
|
||
|
```
|
||
|
$ sudo reboot
|
||
|
```
|
||
|
|
||
|
9) Check version
|
||
|
|
||
|
```
|
||
|
$ wpa_supplicant -v
|
||
|
```
|
||
|
|
||
|
-----
|