Ubuntu 16.04 8811AU Wireless driver

It has been a while since I got my desktop PC, I was using a wired network for it until I have to move to other room this weekend. (The router is in the living room) So I need to use my dusted USB wireless adapter. I tried it when I just got my desktop, but due to secure boot, it can not be installed. Since I already have it disabled for the sake of using VirtualBox, I decided to try it again.

  • Find the adapter model, the easiest way is to plugin it into a windows system and check it in device manager. Mine is 8811au. (Which is a quite old model, but I bought it in 2016 /w)
  • Google using the driver name and I found Wireless not recognized on 14.04.3 LTS & 15.10 installation — GITHUB install help?
  • Disable secure boot if you have. Most modern motherboard have it enabled, and it can cause a lot of trouble when you want to install some driver from GitHub.
  • Run the following code, which clone the repo, install and enable it. NOTE: I didn’t test with DKMS, but using DKMS could avoid compile and install driver when kernel updates (which is quite often even in Ubuntu 16.04 LTS)
sudo apt-get update
sudo apt-get install linux-headers-generic build-essential git
git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
cd rtl8812AU_8821AU_linux
sudo make install
sudo modprobe rtl8812au

In the original post it is `sudo modprobe 8812au`, but you will get a not found error since based on the make ouput `install -p -m 644 rtl8812au.ko /lib/modules/4.4.0–47-generic/kernel/drivers/net/wireless/`, the name should be `rtl8812au`

After every kernel update, need to run the following again.

sudo make install
sudo modprobe rtl8812au

And for Fedora, I sometimes can not get it up and running, dmesg have

[  470.433541] usb 1-3: USB disconnect, device number 6
[ 470.445606] RTL871X: rtw_ndev_uninit(wlp0s20f0u3)
[ 470.477688] RTL871X: rtw_cmd_thread: DriverStopped(1) SurpriseRemoved(1) break at line 550
[ 470.477704] RTL871X: rtw_dev_unload: driver not in IPS
[ 487.404675] usb 1-4: new high-speed USB device number 7 using xhci_hcd
[ 487.573040] usb 1-4: New USB device found, idVendor=0bda, idProduct=0811
[ 487.573045] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 487.573048] usb 1-4: Product: 802.11ac WLAN Adapter
[ 487.573050] usb 1-4: Manufacturer: Realtek
[ 487.573053] usb 1-4: SerialNumber: 00e04c000001
[ 487.626503] RTL871X: rtw_ndev_init(wlan0)
[ 487.648289] rtl8812au 1-4:1.0 wlp0s20f0u4: renamed from wlan0
[ 487.661714] IPv6: ADDRCONF(NETDEV_UP): wlp0s20f0u4: link is not ready
[ 487.892216] IPv6: ADDRCONF(NETDEV_UP): wlp0s20f0u4: link is not ready
[ 488.000107] IPv6: ADDRCONF(NETDEV_UP): wlp0s20f0u4: link is not ready
[ 488.025766] IPv6: ADDRCONF(NETDEV_UP): wlp0s20f0u4: link is not ready

Following http://unix.stackexchange.com/questions/219839/enp3s0-link-is-not-ready The following worksip -6 route Though it could be an accident. (Yes it is an accident ….)

What I have tried to solve the ADDRCONF problem

The solution is

  • ifconfig -a without the -a option, I won’t see wlp0s20f0u4
  • ifconfig wlp0s20f0u4 up
  • iwlist wlp0s20f0u4 scan

And it works!! (Though I don’t know why …..

After updating kernel from 4.9.3 to 4.9.4 with some iw* update, it stopped working