TP-Link TL-WN823N on Arch Linux

This article was published 3 years ago. Due to the rapidly evolving world of technology, some concepts may no longer be applicable.

Unfortuntately, Arch doesn’t support the TP-Link TL-WN823N by default, so you have to install the drivers by hand.

Fortunately, you can find the drivers on Github. You’ll need base-devel, linux-headers and dkms installed.

Installing after upgrade

If you’re run pacman -Syu and your wifi has stopped working, run the following commands:

git clone
cd rtl8192eu-linux-driver
sudo dkms add .
sudo dkms install rtl8192eu/1.0

This will copy the driver into a system directory and register it with DKMS (Dynamic Kernel Module Support). This means that if you upgrade your kernel in the future, the driver will automatically be rebuilt.

Installing on a clean machine

If the machine that you need wifi on doesn’t have these packages installed, you can build the drivers on another machine and copy the built driver over via USB.

If the two machines have the same kernel installed, it’s as easy as following these instructions:

On the machine with build-essential

git clone
cd rtl8192eu-linux-driver
cd ..
cp -r rtl8192eu-linux-driver /media/YOUR_USB

On the machine that needs wifi

cp -r /media/YOUR_USB/rtl8192eu-linux-driver .
cd rtl8192eu-linux-driver
sudo make install

At this point, reboot and you should have wifi. Once you have wifi, follow the DKMS instructions above to ensure that kernel upgrades don’t break your wifi.


If the two Arch machines that you have don’t have the same kernel version, you can edit the Makefile to build for a different kernel. You’ll need to get the correct headers from the Arch archive and install them with pacman -U.

Then edit the Makefile so that anywhere it runs uname -r e.g. here, you replace it with the correct string. You can obtain the string by running uname -r on the machine you want to install the driver on.

Once the Makefile is updated, run make and copy to a USB stick as normal.

Thoughts on this post

This is a great guide, thank you! How can I confirm it worked successfully after a reboot?

michael 2017-04-14

You’ll be able to use `netctl` to configure and start a network connection

Guilherme Nanini 2017-04-25

it didn’t work with netctl

michael 2017-05-09

I use `netctl`, and it seems to work for me

Sudeep Mukherjee 2017-05-31

On my Arch installation the kernel modules fails to load automatically. I have blacklisted the default one the kernel was loading, rtl8xxxu.

If I modprobe manually it works! How to automatically load 8192eu at boot?

michael 2017-07-10

Create a file named /etc/modules-load.d/8192eu.conf with the contents “8192eu”

Reboot, and it should be loaded automatically

Yongky 2017-08-04

Great tips. It really solve my headeache with rtl8xxxu (using 4.9 kernel). Finally network manager working fine. Thank you @MICHAEL.

Guilherme Nanini 2017-06-21

it did work with dhcpcd and wpa_supplicant

lucian 2019-05-21

it worked in manjaro also, thanks a million !

Leave a comment?