The Problem
WiFi drivers on Linux are already annoying enough, and it's gotten even worse with the 5.10.103 kernel. This version is no longer compatible with the install-wifi script. On top of that some versions of the rtl8812au driver I'm using drop IPv6 Multicast, breaking NDP and preventing you from automatically connecting to the IPv6 internet. Fortunately aircrack-ng maintains a working version of the driver. However it has to be compiled from source. Here's how.
Kernel Headers
You may need to install the raspberry pi kernel headers.
The apt package name is raspberrypi-kernel-headers
.
If you're using the 64-bit RPi OS, make sure to install
the arm64 version of the package.
Use apt list raspberrypi-kernel-headers
to check if you have
the correct version installed.
Installing
Run the following shell commands. If you aren't using sudo, run commands that require root access in some other way.
sudo apt update && sudo apt install -y git dkms
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au/
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
export ARCH=arm
sed -i 's/^MAKE="/MAKE="ARCH=arm\ /' dkms.conf
sudo make dkms_install
For 64-bit, these are the commands to run:
sudo apt update && sudo apt install -y git dkms
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au/
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile
export ARCH=arm64
sed -i 's/^MAKE="/MAKE="ARCH=arm64\ /' dkms.conf
sudo make dkms_install
If the last command gives an error because the DKMS module already exists, remove any existing installations of the driver.
Loading
The driver should now automatically be loaded. It seems to be loaded at boot time automatically, but I haven't tested it yet. If you can confirm or disprove this please let me know.