Page MenuHomeSolus

rtl8812au kernel module
Closed, WontfixPublic

Description

Name: rtl8812au
Homepage: https://github.com/gnab/rtl8812au
Why should it be included?
I own a wi-fi adapter with a RealTek chipset that requires this kernel module to function properly, and compilation on every kernel update is tedious. I'm sure there are other people with similar adapters who could benefit from this being included in the repo (here's a list of all the adapters that need this module from wikidevi.com)

Is it open source?
Yes, at https://github.com/gnab/rtl8812au.

Event Timeline

I have one of these rtl8812au dongles as well. Took me several hours to get it working on Solus. Several points to discuss.

  1. I have gotten use to recompiling special drivers for wifi on various linux boxes. Ubuntu on low-end HP laptops specifically. This issue goes way beyond the rtl8812au, it is a generalized linux issue. Drivers dont get integrated so there are huge numbers of people recompiling drivers off github after every kernel update and have 'modprobe -r blah; modprobe blah;' on speed dial. I dont know of the issues behind this but I do know this:

In Mageia 6, it "just works". Its the only distro I've tried so far where I can just plug it in and it shows up and starts working automatically. Don't know how they did it, but it works.

  1. A complication particular to Solus is that it seems to be more difficult to compile the module as the linux-current-headers symlink is not matching the version of the kernel actually running so the most popular github rtl8812au script refuses to build. This seems to be related to how Solus doesn't appear to always automatically reinstall grub bootloading system after updating the kernel (epokg install linux-current), This may be related to my multi-boot system, which is running several versions of Ubuntu and Mageia alongside Solus. It's an old box, not sure if this applies to EFI systems.
  1. Lastly, speific to rtl8812au and modern versions of the kernel/NetworkManager, there is yet another bug that prevents this dongle from 'just working' in a lot of distros, including Solus, diagnosable by looking at the kernel log (sudo journalctl or whatever) and seeing messages about set_hw_addr, Mac address not working. There is a simple fix

https://askubuntu.com/questions/913732/wifi-isnt-working-in-new-installation-of-ubuntu

Basically you edit /etc/NetworkManager/NetworkManager.conf to add this:

[device]
wifi.scan-rand-mac-address=no

Seems like it might be fixed with newer versions of NM and/or kernel but i havent tested / dont know. But a lot of people with rtl8812au are having this issue.

+1

As another user with a rtl8812au dongle I would also love to see this implemented. So far not one of the linux distributions that I tried had my wifi adapter working out of the box, I'd love it if solus would implement this.

The only version I was able to get working is in OP's description: https://github.com/gnab/rtl8812au

It compiles with warnings but works fine. Device list in source is incomplete and I had to modify /os_dep/linux/usb_intf.c to add my device id

More recent driver versions can be found at (5.1.5) and (5.2.9)
This version has the most complete list of device ids and compiles without errors, however loading this module fails with:

insmod: error inserting './8812.ko': -1 Unknown symbol in module
onionJL added a comment.EditedDec 28 2017, 9:51 PM

After update to kernel 4.14.9-42, version 5.2.9 compiles and loads fine.

@onionJL How did you actually install the Realtek 8812AU driver? I am getting the following output from make:

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.14.12-44.current/build M=/home/ross/rtl8812au-driver-5.2.9  modules
make[1]: Entering directory '/usr/src/linux-headers-4.14.12-44.current'
make[2]: *** No rule to make target '/home/ross/rtl8812au-driver-5.2.9/core/rtw_cmd.o', needed by '/home/ross/rtl8812au-driver-5.2.9/8812au.o'.  Stop.
make[1]: *** [Makefile:1507: _module_/home/ross/rtl8812au-driver-5.2.9] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.14.12-44.current'
make: *** [Makefile:1799: modules] Error 2

Try

make CONFIG_STACK_VALIDATION=

Update to 5.2.20 available here with update to KRACK fix from 5.2.9

I used driver from gordboy/rtl8812au but after installation (make) in NetworkManager Applet I have "Device not ready". How can I start use wifi adapter?

onionJL added a comment.EditedJun 2 2018, 8:00 AM

First, make sure that you have linux-current or linux-lts installed, along with correspinding linux-current-headers or linux-lts-headers

Open terminal in driver folder (where Makefile is located) and run make. In case of errors, error messages in terminal should show you what packages you'll need to install.
If no errors occured, run sudo make install and reboot the machine. Device should be up and running after reboot.

Here you can grab same driver as gordboy's, but with slightly changed makefile. I'm currently using it with no issues.

DataDrake closed this task as Wontfix.Jun 16 2018, 11:48 PM
DataDrake claimed this task.
DataDrake added a subscriber: DataDrake.

Out of tree wireless drivers not supplied by the hardware vendor are not allowed:

  1. They often increase transmission power which places these drivers outside of the legal requirements set by organizations like the FCC.
  2. They always lag behind new kernels, requiring unnecessary maintenance on our end.
  3. When they do add support for new devices, they never put with work into the upstream kernel to fix it for the future. This wastes everyone's time.