Install Alfa AWUS036ACH on Ubuntu 18.04

Alfa AWUS036ACH is an external WiFi adapter with a USB 3.0 interface. Its most remarkable features are the high power it has and its ability to inject packets. It’s a great device for security tests on wireless networks.

I wonder if this device has out of the box support with package injection in the latest kernels, but on Ubuntu 18.04 it’s necessary to install the driver, as it is not recognized by default. In this post we will see how this is done using the driver in the GitHub repository of aircrack-ng, which also includes support for the mentioned package injection. I did this work on my current GNU/Linux distribution, KDE Neon, which is based on Ubuntu 18.04.

Make sure you have dkms and wireless-tools packages installed before following this post:

Let’s connect the device and run dmesg to check the device detection:

$ dmesg
[ 3026.834346] usb 7-1.3: new high-speed USB device number 7 using xhci_hcd
[ 3026.948882] usb 7-1.3: New USB device found, idVendor=0bda, idProduct=8812, bcdDevice= 0.00
[ 3026.948885] usb 7-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3026.948887] usb 7-1.3: Product: 802.11n NIC
[ 3026.948889] usb 7-1.3: Manufacturer: Realtek
[ 3026.948890] usb 7-1.3: SerialNumber: 123456

Well. It’s detected, so let’s retrieve the source code of the driver using git.

$ git clone https://github.com/aircrack-ng/rtl8812au.git

Now we build and install the driver in the right place using DKMS. You can also install it as traditionally with make, but I prefer to use dkms to keep the kernel modules up-to-date automatically. This post gives a nice approach to the pros and contras of using DKMS.

Change to the new directory and run the dkms-install.sh script:

$ cd rtl8812au/
$ sudo ./dkms-install.sh 

Enable your WiFi device adding the driver module to the kernel:

$ sudo modprobe 88XXau

Check the status of your wireless interface:

$ iwconfig

A new device should appear with the name wlx************ where stars are replaced by the mac address, for example, wlcCAFECAFECAFE:

wlcCAFECAFECAFE  unassociated  Nickname:"<WIFI@REALTEK>"
    Mode:Managed  Frequency=5.24 GHz  Access Point: Not-Associated   
    Sensitivity:0/0  
    Retry:off   RTS thr:off   Fragment thr:off
    Power Management:off
    Link Quality=0/100  Signal level=0 dBm  Noise level=0 dBm
    Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
    Tx excessive retries:0  Invalid misc:0   Missed beacon:0

And that’s it. Now you can connect to the wireless network you want with the CLI or GUI tools of your choice, or you can also have a little fun with aircrack-ng. Good winds Buccaneer!