Introduction to the rtl8814au Project
The rtl8814au project is dedicated to providing drivers for wireless adapters that utilize the rtl8814au chipset. This hardware component is essential for enabling wireless communication on devices equipped with rtl8814au-based adapters. The project offers a solution for users who need to install and potentially modify these drivers on Linux systems.
Building and Installing the Drivers
For those interested in installing the rtl8814au drivers, the process is straightforward. Users will first need to clone the project's repository using Git. Then, by navigating into the cloned directory, users can compile and install the drivers with the following commands:
$ git clone https://github.com/aircrack-ng/rtl8814au.git
$ cd rtl8814au
$ make
$ make install
These commands will fetch the latest version of the drivers from the repository, compile the necessary files, and install them onto the system.
Upcoming Features and Improvements
The project has several enhancements planned for the future. Key improvements include fixing the injection capabilities and improving the function that manages switching between USB2.0 and USB3.0, also known as SuperSpeed. These updates are crucial for maintaining optimal performance and functionality of the wireless adapters.
DKMS Installation
For users who prefer to work with DKMS (Dynamic Kernel Module Support), the installation can be done using:
$ make dkms_install
If you need to remove the DKMS driver, execute:
$ make dkms_remove
DKMS is beneficial for automatically rebuilding the driver when a new kernel version is installed.
Installing on Ubuntu with DKMS Package
Ubuntu users can build and install a DKMS package using the following steps:
-
Install necessary dependencies:
$ apt install debhelper dpkg-dev dkms libelf-dev bc
-
Build the package:
$ dpkg-buildpackage -b --no-sign $ cd .. $ dpkg -i rtl8814au-dkms_5.8.5.1-24835.20190115_all.deb
These steps ensure the rtl8814au drivers are built into a package format compatible with Ubuntu’s package management system.
Handling UEFI Secure Boot
For systems with UEFI Secure Boot, users may encounter issues when trying to load the module, receiving errors related to unavailable keys. This occurs because the kernel requires modules to be signed. Here's how to rectify this issue:
-
Create Signing Keys:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
-
Sign the Module:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n rtl8812au)
-
Register the Keys to Secure Boot:
sudo mokutil --import MOK.der
-
Reboot and enroll the Machine Owner Key (MOK):
After rebooting, follow the on-screen instructions to enroll the MOK.
-
Verify the key enrollment:
mokutil --test-key MOK.der
USB 2.0/3.0 Mode Switching
Initially, the adapters run in USB 2.0 mode, which limits 5G 11ac throughput to approximately 240 Mbps due to USB 2.0's bandwidth constraint of 480 Mbps. To switch to USB 3.0 mode and achieve higher speeds, users can specify the following option during the driver load process:
options 8814au rtw_switch_usb_mode=1
To dynamically switch between USB 2.0 and 3.0 modes, use these terminal commands:
-
USB 2.0 to USB 3.0:
sudo sh -c "echo '1' > /sys/module/8814au/parameters/rtw_switch_usb_mode"
-
USB 3.0 to USB 2.0:
sudo sh -c "echo '2' > /sys/module/8814au/parameters/rtw_switch_usb_mode"
The rtl8814au project continues to evolve, with an emphasis on improving wireless connectivity and performance for users of rtl8814au chipset adapters.