AC1200 Wireless Adapters

Finding an adapter

 * Browse to the WikiDev wireless adapter query page.
 * Enter abgn+ac in the  field.
 * Select linux_support for the  option.
 * Click.
 * Scroll down to find a table of known abgn+ac wireless adapters with chipset, device ID, and probable Linux driver. The AC1200 adapters listed in the table will have Realtek RTL8812AU or Broadcom BCM43526 chipsets. The remaining adapters support data rates other than AC1200.

Finding a driver

 * Realtek 8723/8812/8821 PCIe drivers are in Linux 3.17.8 and later.
 * Intel's AC7260 PCIe driver is builtin the kernel. After reported problems with kernel 4.0.x, it is working well with kernel 4.1.x.
 * The Realtek 8812au USB driver is available from https://github.com/gnab/rtl8812au . As of 2015-05-04, this driver does not compile with Linux 4.0.0 and later. A Linux 4.0.0 compatible version of the 8812au driver is available from https://github.com/csssuf/rtl8812au.
 * Broadcom drivers are provided by the package, but support of BCM4352 and BCM43526 devices is very unlikely. BCM43526 is not listed under "SUPPORTED DEVICES" in the driver readme file. Using  and 32-bit Windows files may work, while 64-bit Windows files will not.

Working devices
The table below lists AC1200 pcie adapters tested and working with Linux 4.1.3 and later on amd64 multilib.

The table below lists AC1200 USB 3.0 adapters tested and working with Linux 3.18.5 and later on amd64 multilib.

Scripted installation
If connected to the internet and logged in as root:

cd /root, if needed

emerge unzip, if needed

copy the following script and paste into a text file /root/rtlscript.sh

make /root/rtlscript.sh executable by root, chmod o+x rtlscript.sh

run the script, ./rtlscript.sh

running the script will perform the actions listed in Manual Install below

if [ "$(id -u)" != "0" ]; then echo "Please login as root, then try again" 1>&2 exit 1 fi eselected=$(eselect kernel list | awk '/\*/ {print $2}' | awk 'gsub("linux-", "")') running=$(uname -r) if [ "$running" != "$eselected" ]; then echo "Please ensure the eselected kernel source and running kernel are the same version, then try again." 1>&2;	exit 1 fi WGET="/usr/bin/wget" $WGET -q --tries=1 --timeout=1 http://www.google.com -O /tmp/google.idx &> /dev/null if [ -s /tmp/google.idx ]; then version=${eselected:0:1} required_version="4" if [ "$version" = "$required_version" ]; then wget -N https://github.com/csssuf/rtl8812au/archive/master.zip else wget -N https://github.com/gnab/rtl8812au/archive/master.zip fi if [ -d "rtl8812au-master" ]; then rm -rf rtl8812au-master fi fi if [ -s /root/master.zip ]; then unzip master.zip fi if [ -d "rtl8812au-master" ]; then cd rtl8812au-master sed 's/CONFIG_POWER_SAVING = y/CONFIG_POWER_SAVING = n/g' Makefile > OUT mv OUT Makefile make insmod 8812au.ko if [ ! -d "/lib64/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi/rtl8812au" ]; then mkdir /lib64/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi/rtl8812au echo "rtl8812au directory created."; 1>&2; else echo "rtl8812au directory existed." 1>&2;		fi cp -f 8812au.ko /lib64/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi/rtl8812au depmod -a echo "Connect the wireless usb device and reboot"; else echo "Unable to find or create /root/rtl8812au-master -> no internet connection, no master.zip file, no rtl8812au-master file."; exit 1 fi
 * 1) !/bin/bash

Manual installation
After booting the kernel configured as above: Use eselect kernel list and uname -r and ensure the eselected kernel source and running kernel are the same version. Download https://github.com/gnab/rtl8812au/archive/master.zip# (not kernel 4.0.0 compatible pending pull approval of the change in the branch below) OR https://github.com/csssuf/rtl8812au/archive/master.zip (kernel 4.0.0 compatible pull) to a directory you can find again. cd into the directory containing master.zip. If an "rtl8812au-master" subdirectory exists, remove it. unzip master.zip to create a fresh "rtl8812au-master" subdirectory. cd rtl8812au-master. Edit rtl8812au-master/Makefile to replace CONFIG_POWER_SAVING = y with CONFIG_POWER_SAVING = n. Run make. Run insmod 8812au.ko. Make directory /lib64/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi/rtl8812au if not present. Copy 8812au.ko into the directory /lib64/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi/rtl8812au. Run depmod -a. Connect the wireless usb device and reboot.

External resources

 * http://gpo.zugaina.org/net-wireless/rtl8812au