RTL8812AU+RTL8811AU 2.4Ghz/5Ghz WiFi

The below RTL8811 USB WiFi adapter provides both 2.4Ghz and 5GHz support, this device is available from multiple vendors and can even be assembled onto a mPCIe to USB adapter.  The RTL8811 chipset uses the same driver support for the RTL8812 device which there is an easy to use driver installation method.

5Ghz-2-4Ghz-600Mbps-Wireless-Adapter-USB-WiFi-High-Speed-Transmission-RTL8811AU-Chipset-WD-4505AC-Dual                           mPCIe USB Adapter

 

 

Here's the procedure we used to configure the WiFi card, this process was fairly straight-forward thanks to a open source git-hub page maintaining support for the chipset.

root@raspberrypi:~# apt-get update
root@raspberrypi:~# apt-get install raspberrypi-kernel-headers build-essential libncurses5-dev bc python git
root@raspberrypi:~# wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source
root@raspberrypi:~# chmod +x rpi-source
root@raspberrypi:~# ./rpi-source

That last step may argue a few times you haven't installed something, if so run the prompted command to install the missing component and re-run rpi-source. When that's finished complete do :

root@raspberrypi:~# git clone https://github.com/gnab/rtl8812au.git
root@raspberrypi:~# cd rtl8812au/

We need to change the target platform from x86 to RPi so edit the make file and make 2 changes on lines 53 and 59 :

root@raspberrypi:~/rtl8812au# vim Makefile

CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y

Then we can kick off the installer that will compile and install the kernel module for the WiFi card :

root@raspberrypi:~/rtl8812au# chmod +x install.sh
root@raspberrypi:~/rtl8812au# ./install.sh

After this is done you can activate module live and check it's loaded AOK :

root@raspberrypi:~/rtl8812au# dmesg | tail -10
[    9.285294] .
[    9.288177] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 1807.734429] 8812au: loading out-of-tree module taints kernel.
[ 1807.909864] usbcore: registered new interface driver rtl8812au
[ 1808.764543] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 1808.767782] RTL871X: indicate disassoc
[ 1808.769839] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 1808.770117] RTL871X: set bssid:00:00:00:00:00:00
[ 1808.770931] RTL871X: set ssid [gxffffffc6isQxffffffffJxffffffec)ͺxffffffabxfffffff2xfffffffbxffffffe3F|xffffffc2Txfffffff8xffffffe8xffffffe7xffffff8dvZ.c3xffffff9fɚxffffff8b] fw_state=0x00000008
[ 1814.973488] RTL871X: nolinked power save enter

Next let's find the local 5Ghz network :

root@raspberrypi:~# iwlist wlan0 scanning
wlan0     Scan completed :

          Cell 05 - Address: 60:38:E0:D8:C5:DA
                    ESSID:"dd-wrt"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:on
                    Bit Rates:144 Mb/s
                    Extra:rsn_ie=30140100000fac040100000fac040100000fac020c00
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    Quality=0/100  Signal level=93/100
          Cell 06 - Address: 1C:BD:B9:BE:6B:EC
                    ESSID:"dd-wrt"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:on
                    Bit Rates:72 Mb/s
                    Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    Quality=0/100  Signal level=57/100

          Cell 12 - Address: 60:38:E0:D8:C5:D9
                    ESSID:"dd-wrtAC"
                    Protocol:IEEE 802.11AC
                    Mode:Master
                    Frequency:5.24 GHz (Channel 48)
                    Encryption key:on
                    Bit Rates:780 Mb/s
                    Extra:rsn_ie=30140100000fac040100000fac040100000fac020c00
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    Quality=0/100  Signal level=75/100

Enter the target network ESSID (and password when prompted) to generate the wpa authentication details for connecting :

root@raspberrypi:~# wpa_passphrase dd-wrtAC
network={
        ssid="dd-wrtAC"
        #psk="xxxxxxxx"
        psk=4265dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

Then add these generated details to the file below

root@raspberrypi:~# cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="dd-wrtAC"
        #psk="xxxxxxxx"
        psk=4265dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

Next we'll restart the wlan interface :

root@raspberrypi:~# ifdown wlan0
root@raspberrypi:~# ifup wlan0

You may get an error message when doing that :

ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

This just appears to be a debug message or some sort and can be ignored. We should now be attached to the local 5Ghz network :

root@raspberrypi:~# iwconfig

lo        no wireless extensions.

wlan0     IEEE 802.11AC  ESSID:"dd-wrtAC"  Nickname:""
          Mode:Managed  Frequency:5.24 GHz  Access Point: 60:38:E0:D8:C5:D9
          Bit Rate:174 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=100/100  Signal level=80/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

root@raspberrypi:~/rtl8812au# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr cc:95:d7:4c:d1:de
          inet addr:192.168.1.148  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6a9a:209:fc1b:f023/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:119 errors:0 dropped:4 overruns:0 frame:0
          TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:16567 (16.1 KiB)  TX bytes:8927 (8.7 KiB)

After disconnecting the Ethernet we can test the wlan card is able to ping out to a website AOK:

root@raspberrypi:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     303    0        0 wlan0

root@raspberrypi:~# ping www.google.com
PING www.google.com (216.58.211.164) 56(84) bytes of data.
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=1 ttl=56 time=36.9 ms
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=2 ttl=56 time=37.0 ms
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=3 ttl=56 time=36.5 ms
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=4 ttl=56 time=35.8 ms
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=5 ttl=56 time=35.6 ms
64 bytes from dub08s01-in-f164.1e100.net (216.58.211.164): icmp_seq=6 ttl=56 time=35.8 ms
^C
--- www.google.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 35.624/36.314/37.016/0.570 ms

We suspect that once the module (8812au.ko) has been built just this file can be copied over to the second unit (assuming that is running the same kernel version) ala the line in install.sh :

cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless

We haven't gone as far as to test out DKMS as per the github page ( https://github.com/gnab/rtl8812au/ ) but expect that would also work.

 RTl8812AU GitHub Page

Contact us now to discuss your project

Ready to order, contact us today for pricing or samples

Contact Us