Go to file
Ubuntu user 4077813e05 Don't try to process rate section 0 in 5ghz bank. CCK is not used here, but by processing 0, baseIndex5G is left unset and can cause a kernel OOPS that looks like:
May 31 23:01:08 rpi2 kernel: [ 2045.373494] RTL871X: No power limit table of the specified band 1, bandwidth 0, ratesection 0, group 0, rf path 0
May 31 23:01:08 rpi2 kernel: [ 2045.373505] RTL871X: use other value 63
May 31 23:01:08 rpi2 kernel: [ 2045.373541] Unable to handle kernel paging request at virtual address 65ce6217
May 31 23:01:08 rpi2 kernel: [ 2045.375393] pgd = b2f98000
May 31 23:01:08 rpi2 kernel: [ 2045.375482] [65ce6217] *pgd=00000000
May 31 23:01:08 rpi2 kernel: [ 2045.375611] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
May 31 23:01:08 rpi2 kernel: [ 2045.376276] CPU: 0 PID: 1311 Comm: wpa_supplicant Tainted: G           O   3.18.0-23-rpi2 #24-Ubuntu
May 31 23:01:08 rpi2 kernel: [ 2045.376450] task: b2fe5280 ti: a198c000 task.ti: a198c000
May 31 23:01:08 rpi2 kernel: [ 2045.376724] PC is at PHY_ConvertPowerLimitToPowerIndex+0x540/0x9e8 [8812au]
May 31 23:01:08 rpi2 kernel: [ 2045.376984] LR is at PHY_ConvertPowerLimitToPowerIndex+0x528/0x9e8 [8812au]
May 31 23:01:08 rpi2 kernel: [ 2045.377121] pc : [<7f15493c>]    lr : [<7f154924>]    psr: 600b0013
May 31 23:01:08 rpi2 kernel: [ 2045.377121] sp : a198dd10  ip : 80913bf0  fp : 0000345c
May 31 23:01:08 rpi2 kernel: [ 2045.377330] r10: 00000000  r9 : 00000000  r8 : b2e72872
May 31 23:01:08 rpi2 kernel: [ 2045.377433] r7 : b2e70000  r6 : b2e72872  r5 : 00000000  r4 : 0000003f
May 31 23:01:08 rpi2 kernel: [ 2045.377559] r3 : 65ce6215  r2 : 00000001  r1 : b2e73450  r0 : 0000001b
May 31 23:01:08 rpi2 kernel: [ 2045.377685] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
May 31 23:01:08 rpi2 kernel: [ 2045.377821] Control: 10c5387d  Table: 32f9806a  DAC: 00000015
May 31 23:01:08 rpi2 kernel: [ 2045.377933] Process wpa_supplicant (pid: 1311, stack limit = 0xa198c238)
2015-05-31 23:18:47 +00:00
core Add existing files. 2013-11-19 21:24:49 +01:00
hal Don't try to process rate section 0 in 5ghz bank. CCK is not used here, but by processing 0, baseIndex5G is left unset and can cause a kernel OOPS that looks like: 2015-05-31 23:18:47 +00:00
include Add existing files. 2013-11-19 21:24:49 +01:00
os_dep Added USB ID for Planex GW-450S 2014-12-30 11:19:17 +09:00
clean Add existing files. 2013-11-19 21:24:49 +01:00
ifcfg-wlan0 Add existing files. 2013-11-19 21:24:49 +01:00
Kconfig Add existing files. 2013-11-19 21:24:49 +01:00
Makefile Update Makefile 2014-10-24 09:30:19 -07:00
README.md Add note about building for something other than a PC, e.g. a RasPi 2014-08-29 07:33:00 -07:00
runwpa Add existing files. 2013-11-19 21:24:49 +01:00
wlan0dhcp Add existing files. 2013-11-19 21:24:49 +01:00

Realtek 802.11ac (rtl8812au)

This is a fork of the Realtek 802.11ac (rtl8812au) v4.2.2 (7502.20130507) driver altered to build on Linux kernel version >= 3.10.

Purpose

My D-Link DWA-171 wireless dual-band USB adapter needs the Realtek 8812au driver to work under Linux.

The current rtl8812au version (per nov. 20th 2013) doesn't compile on Linux kernels >= 3.10 due to a change in the proc entry API, specifically the deprecation of the create_proc_entry() and create_proc_read_entry() functions in favor of the new proc_create() function.

Building

The Makefile is preconfigured to handle most x86/PC versions. If you are compiling for something other than an intel x86 architecture, you need to first select the platform, e.g. for the Raspberry Pi, you need to set the I386 to n and the ARM_RPI to y:

...
CONFIG_PLATFORM_I386_PC = n
...
CONFIG_PLATFORM_ARM_RPI = y

There are many other platforms supported and some other advanced options, e.g. PCI instead of USB, but most won't be needed.

The driver is built by running make, and can be tested by loading the built module using insmod:

$ make
$ sudo insmod 8812au.ko

After loading the module, a wireless network interface named Realtek 802.11n WLAN Adapter should be available.

Installing

Installing the driver is simply a matter of copying the built module into the correct location and updating module dependencies using depmod:

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

The driver module should now be loaded automatically.

References