Skip to content

morrownr/8814au

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

206 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

8814au

Linux Driver for USB WiFi Adapters based on the RTL8814AU Chipset

license kernel arch dkms

Actively maintained fork of morrownr/8814au. USB WiFi driver for RTL8814AU-based adapters supporting kernels 5.4–6.18.x, Feb 2026.



Supported Features

WiFi capabilities — 802.11 b/g/n/ac, security, interface modes
Feature Details
Standards IEEE 802.11 b/g/n/ac
Security 802.1x, WEP, WPA TKIP, WPA2 AES/Mixed (PSK & TLS/Radius)
Client Mode Site survey, manual connect, power saving
Interface Modes Managed, Monitor, AP
Controls Log level, LED, power saving, VHT (80 MHz AP), USB mode
Compatible CPU architectures
Architecture Variants
x86 i386, i686
x86-64 amd64
ARM armv6l, armv7l
ARM64 aarch64
Compatible devices
Device
ALFA AWUS1900
ASUS USB-AC68 AC1900 Dual-Band USB 3.0 WiFi Adapter
Edimax EW-7833 UAC AC1750 Dual-Band Wi-Fi USB 3.0 Adapter
COMFAST CF-958AC
Numerous adapters based on the RTL8814AU chipset

See supported-device-IDs for full list.


Installation

Arch / Garuda / Manjaro — pacman + DKMS
sudo pacman -S --noconfirm linux-headers dkms git iw
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh

Note: If using Manjaro on RasPi4B/5B, use linux-rpi4-headers instead.

Ubuntu / Debian / Kali — apt
sudo apt install -y linux-headers-$(uname -r) build-essential dkms git libelf-dev rfkill iw
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh

For Kali on RasPi4B/5B, use kalipi-kernel-headers instead of linux-headers-$(uname -r).

Fedora / CentOS — dnf
sudo dnf -y install git dkms kernel-devel
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh
openSUSE — zypper
sudo zypper install -t pattern devel_kernel dkms
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh
Raspberry Pi OS — apt
sudo apt install -y raspberrypi-kernel-headers build-essential dkms git
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh
Void Linux — xbps
sudo xbps-install linux-headers dkms git make
git clone https://github.com/joseguzman1337/8814au.git
cd 8814au
sudo ./install-driver.sh
Manual installation — without install script
make clean
make
sudo make install    # if Secure Boot is OFF
sudo make sign-install  # if Secure Boot is ON
sudo reboot

To remove:

sudo make uninstall
sudo reboot

Note: Manual installs must be repeated after each kernel upgrade. Use install-driver.sh with DKMS for automatic rebuilds.

Secure Boot — MOK enrollment

If Secure Boot is active, after sudo make sign-install you will be prompted for a password. On reboot:

  1. MOK management screen appears → Enroll keyContinueYes
  2. Enter the password from the install step

Fedora users may also need:

sudo mokutil --import /var/lib/dkms/mok.pub

See FAQ.md for more details.


Driver Options

Configuration — runtime options via modprobe.d

The install script places 8814au.conf in /etc/modprobe.d/. Edit with:

sudo ./edit-options.sh

Documentation for all options is included in 8814au.conf.


Upgrading & Removal

Upgrade — pull latest and reinstall
cd ~/src/8814au
sudo ./remove-driver.sh
git pull
sudo ./install-driver.sh
Remove — uninstall driver
cd ~/src/8814au
sudo ./remove-driver.sh

Troubleshooting

Arch/modern kernel binding conflict (AWUS1900/RTL8814AU)

Some modern kernels include an in-kernel rtw88_8814au driver that may bind to the same USB IDs as this out-of-tree 8814au driver. If both are active, behavior can be inconsistent.

Check current runtime state without changing anything:

./tools/runtime-healthcheck.sh

If the report shows both 8814au and rtw88_8814au loaded, your system is in a mixed-driver state. This repo now installs a blacklist file for rtw88_8814au during install-driver.sh to avoid future conflicts.

For maintenance windows where reboot is not allowed, you can hot-switch USB binding between drivers:

sudo ./tools/hot-switch-driver.sh --to native
sudo ./tools/hot-switch-driver.sh --to oot

The script captures pre/post snapshots for each action step under /tmp/rtl8814au-switch-*.

To reassess issue-sensitive behavior one-by-one across native vs out-of-tree binding:

sudo ./tools/hotplug-issue-suite.sh

This produces a Markdown report plus per-step artifacts under /tmp/rtl8814au-issue-suite-*.

Zero-reboot runtime validation (multi-host)

This repository now includes a zero-reboot validation path for issue-focused diagnostics in certified environments where kernel/OS state must remain unchanged.

Available tools:

  • tools/runtime-healthcheck.sh: baseline interface/driver/USB/rfkill/NetworkManager checks
  • tools/hot-switch-driver.sh: live bind switch between native rtw88_8814au and out-of-tree 8814au with pre/post snapshots
  • tools/hotplug-issue-suite.sh: issue-oriented hot-switch regression run
  • tools/runtime-issue-suite.sh: runtime reassessment for upstream reports focused on runtime failures (#120, #117, #115, #106)
  • tools/injection-selftest.sh: non-destructive monitor/injection smoke test with time-windowed kernel log checks

All scripts preserve current kernel version and avoid reboot as part of normal operation.

`iw dev <if> info` missing channel/bandwidth fields

If channel fields are missing, first confirm link state:

ip -br link
iw dev

Some kernel/driver combinations omit channel details while the interface is DOWN. The runtime healthcheck script prints this hint and the current interface state.


WiFi Router Recommendations

Best practices — security, channels, placement
Setting Recommendation
Security WPA2-AES, WPA2/WPA3 mixed, or WPA3 — avoid WPA/TKIP
2.4 GHz Width 20 MHz fixed — avoid 40 MHz or auto
2.4 GHz Channel 1, 6, or 11 (check local congestion) — avoid auto
2.4 GHz Mode N-only if no legacy B/G devices remain
5 GHz Channel 36–48 or 149–165 for broadest device compat (US)
Network Names Use different SSIDs for 2.4 GHz and 5 GHz
Router Placement Centered, elevated, away from walls
USB tips
  • Try different USB ports if you encounter issues (rear ports preferred on desktops)
  • Use USB 3.0 ports for USB 3 adapters
  • Avoid USB 3.1 Gen 2 ports — most adapters tested with Gen 1 only
  • Extension cables must match USB version; test without cable if issues arise
  • RTL8814AU adapters draw significant power — a powered USB hub may help
Tx power expectations (RTL8814AU)
  • Driver/module settings cannot legally override country regulatory limits.
  • Reported dBm values are not a direct “watt slider”; adapter firmware, regulatory domain, and AP environment all affect effective range.
  • For range improvements, prioritize antenna placement, USB 3.0 signal quality, and channel planning before changing power-related options.
Linux Mint connection stability hint

If roaming instability appears after driver upgrades, test pinning BSSID for the target network in NetworkManager and verify MAC randomization settings for that connection profile.


Tested Distributions

Community-verified distros
Distribution Kernel(s)
Arch Linux 5.4, 5.11, 6.6
Debian 5.10, 5.15, 6.1, 6.6
Fedora 38 6.2
Manjaro 5.15
openSUSE Tumbleweed 5.15
Raspberry Pi OS 2023-12-05 (ARM 32/64)
Ubuntu 22.04 / 22.10 5.15, 5.19, 6.2, 6.5
Void Linux 5.18

Kernels 5.4–6.18.x supported. Compilers: gcc 12, 13, 14, 15.


Original project by @morrownr
Fork maintained by @joseguzman1337 & Claude
Runtime issue-resolution engineering and validation automation by Codex (GPT-5)

Maintenance Workflow

Import upstream issues into this fork and auto-close via one PR

Because PR auto-close keywords only close issues in the same repository, this fork includes a workflow that imports upstream issues first, then generates close-keyword lines for your single fix PR.

  1. Open Actions → Backlog reset (fork-safe) → Run workflow.
  2. Run with dry_run=true to preview.
  3. Optionally set max_issues (for phased imports), then run again with dry_run=false to create imported issues in this fork.
  4. Download auto-close-keywords.md from workflow artifacts and paste its Closes #... lines into your PR description.

The workflow uses tools/import_upstream_issues.py (note the .py extension) and GITHUB_TOKEN (issues: write).

About

Linux Driver for USB WiFi Adapters that are based on the RTL8814AU Chipset

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages