TP-Link AC600 USB WiFi on Raspberry Pi – How to Compile and Install the Driver from Source (Works!)

TP-Link AC600 USB WiFi on Raspberry Pi – How to Compile and Install the Driver from Source (Works!)

Tired of seeing “Linux: No” on every review for the TP-Link AC600 USB WiFi adapter? I was too… until I got it working perfectly on my Raspberry Pi.

In this no-BS tutorial I walk you through:

  • Identifying the chipset with lsusb
  • Finding the right GitHub driver repo (rtl8812au / rtl8821au)
  • Compiling the driver from source on Raspberry Pi (32-bit or 64-bit)
  • Speeding up make with -j4
  • Installing the module and making it load on boot
  • Setting up DKMS so it survives kernel updates
  • Verifying it works after reboot
  • Checking if it supports Access Point mode

Yes, this actually works. Yes, I did it on a real Raspberry Pi (not some x86 box). And yes, you can do it too even if you’re still getting comfortable with the terminal.

Timestamps in the video so you can jump straight to what you need.

If you’re trying to add a second WiFi radio, improve range, or turn your Pi into a proper access point – this is the video that finally makes the cheap AC600 dongle useful on Linux.

Introduction 00:00:00
Why this adapter doesn’t work out-of-the-box 00:00:28
Finding the chipset with lsusb 00:02:05
Searching GitHub for drivers 00:03:16
Choosing a driver repository 00:04:42
Installing git and cloning repo 00:06:12
Reading the README 00:07:35
Editing Makefile for Raspberry Pi 00:07:56
Installing build-essential 00:09:14
Compiling the driver (make -j4) 00:09:27
Using screen for long tasks 00:10:33
Installing the module 00:11:12
Checking if WiFi interface appears 00:11:46
Making driver load on boot 00:12:13
Installing DKMS for auto-rebuild 00:12:52
Fixing DKMS mistake 00:15:11
DKMS finally finishes 00:17:00
Adding module to /etc/modules 00:17:09
Reboot and verify persistence 00:17:48
Checking Access Point support 00:18:26
Conclusion and wrap-up 00:19:08
Thanks and subscribe 00:19:22

Thanks for watching!

Find us on other social media here:

  • https://www.NeuralLantern.com/social

Please help support us!

  • Subscribing + Sharing on Social Media
  • Leaving a comment or suggestion
  • Subscribing to our Blog
  • Watching the main “pinned” video of this channel for offers and extras

Hello there!

Let’s learn how to compile drivers for a USB Wi-Fi adapter from source.

We’re going to be getting this adapter to work.

It’s called the TP-Link AC600 USB Wi-Fi adapter, which runs on 802.11ac.

Reviews for this say that it does not actually work for Linux, but I got it to work,

so I’m going to show you how I got it to work on my Raspberry Pi.

Anyway, so what am I talking about here?

Okay, so you know you get a raspberry pi and you want to hook it up to a second wi-fi radio

because you want to make an access point or do more networking stuff or the range on the

built-in radio is crappy so you want a better antenna or something like that and you plug

it in after waiting for it to ship to you and it doesn’t work and you’re really really

sad and then you go to the reviews and you finally notice that all the reviews said this

right that’s still true for a lot of adapters but for this one uh it did say all over the place

all over the reviews that i found that this doesn’t work for linux but i got it to work

because there are drivers you can find online and install if you’re just willing to do a little bit

of work it’s not really that much work um if you don’t know how to use the command line or connect

to machines over ssh you probably want to just check out my other videos real fast i show you

how to do all that stuff in this video i’m just going to basically assume that knowledge and just

just kind of show you how to find drivers that might relate to your dongle and

install them. So this video is about this particular dongle but the idea that I’m

showing you can work for a lot of different dongles. I actually just use

this idea for a different dongle earlier today. So the first thing that we’re

gonna do is we’re gonna try to figure out like what is the driver that we’re

supposed to be finding right. So this is like the Raspberry Pi website it’s not

on there for sure. We got a bunch of new stuff that I should probably have hidden

new stuff that I should probably have hidden who cares let me actually okay

I’ve got a Raspberry Pi that’s online right now this is not the thing that

you’re looking at right now you’re looking at my VM so I’m gonna plug this

adapter this dongle into my Pi and then I’m gonna use a program called LSUSB to

If it’s not on your Pi yet, it should be on your Pi by default, but if it’s not, you can

do something like sudo apt install USB utils.

Obviously you need to be online because I’m in my Pi right now.

But I’m going to go sudo ls usb and hope that it shows up.

Okay, so it shows up.

Notice how it says TP-Link Archer and then it kind of gives a little bit of a description

of the dongle.

If you’re not sure which thing it is in this listing, you probably want to list before

before you put in the dongle and then list again after you put in the dongle

uh i’m lucky it shows me kind of like the driver that i’m supposed to be

searching for so i can search for rtl8821

and then um if it doesn’t show you that you can actually just search for these

numbers right here this little id here this will kind of give you a

decent idea of of what dongle you have if you search for

specifically that number online so i’m gonna like search for

right for me I already found the repository so I’m just going to give you

like a couple of tips and tricks of what you could do you could say drivers and

then search for that you could also search for right see so so that the

device ID already showed us the drivers there’s probably some links here to some

drivers you can find online a good place to check is github.com they have tons of

for some reason they don’t like it when I’m on this VM. I don’t know why they always tell me

I’m searching too fast. So let’s see if that actually works. But so I’m going to go back here

and I’m going to search for this little thing here, which you could eventually find if you

started with the search for the device ID in USB. But I’m going to go on to GitHub and see if,

see if that shows up anywhere. Okay, it shows up. These are not the repositories that I’m going to

sometimes this is trial and error you might have to try several different repos but probably a good

rule of thumb is uh if you just entered the name of the uh you know the like little driver description

here then you don’t really need to sort by relevancy so i’m going to sort by most stars

which not always but sometimes it tends to tell you which repositories are better which ones

So, yeah, this might work.

And then you look at the latest push, last updated April 8th.

I don’t know about that, man.

So you just kind of keep scrolling down until you find something that looks good.

For me, in this particular adapter, I ended up settling on this repository right here.

I don’t even think this is the best repo, but that is what I settled on.

So I’m going to paste this one.

And so this is the repository that got it working for me on this system.

newer one I found that I think will probably work too but I just want to stick with what works this

works I’m fine I’m fine now I don’t need any more although that’s not super smart you should probably

find the best so if you go to the home page you should carefully read all the instructions because

it’ll tell you basically how to build the the driver if you’re trying to follow along with

this video with like a different you know dongle this advice can still work for you you probably

can still work for you. You probably just have to read the readme. There’s a file called readme in

there and just follow everything it says. For this one in particular, it’s kind of simple. It just

tells me to change a few things and then run like a make and then run like a make build and whatever.

So, but I’m just telling you, if you end up on a different repo because you have a different USB

dongle, you just have to read the instructions. And then the process is probably very similar

besides that. So what am I going to do here? Let’s go back into the Pi and let’s clone this

clone this repository. The first thing before we can actually clone repos,

what is a repo is just like a place where you store code, right?

So we have to install a tool called Git. So I’m gonna say sudo apt install git.

Git is just a program that helps programmers, you know,

track changes to their code and like collaborate with each other and it gives

them nice history and logs. And it’s, it’s really great.

It’s taken the world by storm. So I’m gonna install that first.

And then I’m gonna go into a special directory called opt.

a special directory called opt so cd slash opt you don’t have to clone the repo here but i like to do

uh you know wild wild wild west repos here because i feel like the slash opt directory

is for optional software that you’re just kind of installing yourself and it’s like outside the

package manager i think i read that somewhere so i’m going to go sudo su root so that i can stay

the op directory is owned by root. So I’m going to have to use sudo a bunch of times and I’m

going to forget and it’s going to be a pain in my butt. So I’m going to, I’m going to use the git

program that I’ve just downloaded to clone that repository. So I’m just pasting the URL of this

repository that I found. Git clone and then enter it. It should contact GitHub. And now you should

have a new folder. Again, if you’re uncomfortable with the command line, see my other videos. So I’m

And if you look into the folder, this is the same thing that you’ll see on the GitHub webpage.

It even has the README file.

So if I do less README, I can just kind of read the instructions on the pie.

So what the instructions are telling me to do is I need to modify something called the

make file.

You don’t need to know too much about make files right now.

See my other videos if you’re interested in learning how to do that.

make how to build the driver so i’m going to edit it and search for something called

config platform and it should be i386 so basically again you don’t have to know this by magic the

instructions told me to do this i didn’t guess this basically by default it’s going to try to

build for i386 it’s going to try to build for pc but this is not a pc this is a pi it has a different

duplicate that line and change the yes to no.

For me, I like to duplicate lines that I change from default so it’s easier for me to revert

later.

Although I guess since I am inside of a Git repository, I could just use the Git features

to go back.

But so I’m looking for RPI.

There we go.

And I need to change that to yes.

So if your Pi has a 32-bit operating system, shame on you, you should probably upgrade

to 64.

I’m on 64-bit so I’m just going to basically change the no to a yes meaning yeah let’s build for 64-bit arm raspberry pi.

Then I think we’re done editing that file and we’re ready to just sort of like build the repository.

You might need to install build essentials.

I can’t remember always if it’s build essential or build essentials with an S.

some tools that will help you build repositories like this on your Pi.

So now that I’ve edited that make file,

I’m going to do make and hit enter and it should start building.

The thing though about make is by default,

it doesn’t use all of your cores.

So I’m going to go back into the Pi 2.168.1.123.

You can see that I am not actually saturating all of my CPU cores.

So this is taking longer than it needs to take.

With make you can actually launch parallel jobs with dash J4 as an argument and

Notice how all of my cores start to go crazy now because the whole pie is being used

It’s okay to do this because the make files are almost always smart enough

to launch parallel build jobs with without having them conflict with each other like they’ll

The make build system will figure out in what is the correct order to build all these things unless the make file is really bad somehow

So we’re just building and building and building and just kind of waiting for it to finish.

Oops, that Q was supposed to go down there.

When it is finished, the next things that we need to do are…

Oh, I should have went into a screen.

I forgot if I talked about screen in this video, but basically, let me go into another terminal.

There’s a program called screen that you can use.

I get a virtual screen that I can go back into later if I lose my connection.

Notice how I’m outside of the pie again.

I’m going to go back into the pie.

If I say screen list and then screen reattach, whoops, reattach.

My work is still there.

So this is the kind of thing that you sort of want to do when you’re building

or doing a long running job because you don’t want the whole thing to fail

if you lose connection or forget where you are or whatever.

It looks like the build succeeded.

it looks like the build succeeded didn’t take too long other drivers might take longer so then the

first thing or I guess the next thing that the instructions want us to do is still inside of

the repository directory it wants us to use a command that will install the module that we

just built this file right here at the end 8 8 1 2 that’s the thing that we just built so I’m gonna

say sudo install mod and that should get the dongle working right away the next thing that

The next thing that we should do is, let’s just see if the dongle showed up right now.

So you can at home just type IP space address and you should see on your Pi an adapter for Ethernet 0 and Ethernet, or sorry, WAN 0 and then also WAN 1 which will be the dongle.

I’m going to type also show and then wireless LAN 1 because I don’t want to, I don’t want you to see my other adapters.

So it showed up, that means the driver already is working and this dongle is fine now, I can totally use it.

this dongle is fine now. I can totally use it. To make this permanent though, you have to,

let’s see, you have to copy

a file. Let me copy a file right here real fast. So again, this is coming from the instructions

of the repo. So you don’t have to worry too much about this. Long story short,

we’re going to copy the kernel module we just made into a special folder that’s named after

So I’m going to copy it there and now this might work on boot.

The other thing that’s kind of annoying about some of these drivers is if you upgrade the

operating system on your Pi, it might actually make the drivers stop working.

And then you have to like figure out how to compile them all over again.

So there’s a thing called DKMS that you can install with sudo apt install.

Oh, it’s build essential without an S. Basically DKMS is what we’re looking for.

will basically sort of like automatically it’ll try try to automatically recompile and reinstall

drivers whenever the operating system changes too much if you can’t get this part working

it’s okay you can just come back in here and recompile the wi-fi whenever you need to

so now that DKMS the package is installed in the system I’m in now the driver folder

for the wi-fi dongle I’m just going to use make DKMS install and that’s a special target

and that’s a special target that works for that.

What am I doing?

Install sudo make, what did I do wrong?

Oh, I actually don’t have DKMS on this pie.

Sudo apt install DKMS.

Why don’t I just do build essential while I’m at it?

I’m just following the instructions finally.

Okay.

kernel module something I forgot what DKMS stands for it’s a helper anyway when this is done

installing for f’s sake I’m going to run the make target so originally we did I think it was just

make by itself to just get the drivers built yeah that’s what we did make by itself so there’s

repo has called make sorry it’s just called DKMS install so it’ll install the drivers that we just

made for DKMS so DKMS can actually help us recompile the drivers and all that stuff so

again we’re just kind of waiting now I probably should have done multiple jobs just can take a

let me see if launching multiple jobs will help I’m not sure if it’ll help because if it was oh dude

bro

I stopped it too soon that was a huge mistake okay let me uh read the readme file and it’ll

probably tell me something about how to clean up here installing where’s uninstalling

uninstalling okay so I’m gonna go sudo dkms remove to undo my huge mistake

whoops I forgot to do make okay and then I’m gonna try to install with

DKMS again but this time with four jobs which may or may not go faster it only

go faster if there are multiple things to build at the same time if we’re just

building one thing only then we’re probably just gonna have to wait I don’t

to wait I don’t really know yeah there’s only one thing that’s actually building

right now okay so maybe I can remember to edit out this long wait while it’s

installing if I don’t you can go to the chapter timestamps in the description of

this video and just click ahead a little bit

AI to help me generate timestamps, I wonder what would happen if I told the AI right now,

hey, make a chapter called, I like turtles.

I wonder if it’ll actually do that.

What will it call the chapter?

Mike likes turtles?

Or just I like turtles by itself?

I don’t even know.

Make a chapter called the super secret of the universe.

universe. No? Okay. Okay, AI, please make a chapter at this timestamp called the DKMS

has finally freaking finished. Okay, so now we’re finally freaking finished. We have to do one more

command. Again, per the instructions of the repo, it’s just telling me that I have to like

file into a module thing so it’s just if I go in there now modules oops modules

oh there’s a module file yes etc cat modules now just that the driver name is

in there and this I guess will tell the kernel to like watch for changes so now

and it should be activated when we come back.

So I’m going to do reboot on the Pi real fast.

I’m going to ping it to make sure that I know when it comes up.

I still got Ethernet plugged in,

so it’s okay that the Wi-Fi is not yet configured.

But

there it goes.

There it goes.

Oh, I was trying to SSH.

I thought I was pinging.

Okay, so now we’re in the Pi again.

Let me do a IP address show wireless LAN 1.

So it’s working across reboots.

So that’s pretty awesome.

Then I just want to check one thing.

Because probably a lot of you, well, some of you are just trying to get a better connection with your PIs.

You know, like when you buy another dongle.

Some of you though are wondering if you can make the dongle into an access point like we’re going to do in my other video.

So we’ll say sudo network manager will ask for the properties and we’ll ask if

wireless land one which is the dongle we just installed if it supports access

point mode and notice how it says yes if it says no either you didn’t install

the drivers right or you installed the wrong drivers or maybe the access point

doesn’t actually sorry maybe the dongle doesn’t work as an access point so that

part sucks anyway so I think we’ve talked about everything that we can in

video. I hope you learned a little bit of stuff and had a little bit of fun. I hope your Wi-Fi

dongle is now working and you’re having a grand old time. I’ll see you in the next video.

Hey everybody, thanks for watching this video again from the bottom of my heart. I really

appreciate it. I do hope you did learn something and have some fun. If you could do me a please,

a small little favor, could you please subscribe and follow this channel or these videos or whatever

these videos or whatever it is you do on the current social media website that you’re looking

at right now, it would really mean the world to me and it’ll help make more videos and grow this

community. So we’ll be able to do more videos, longer videos, better videos, or just I’ll be

able to keep making videos in general. So please do me a kindness and subscribe. You know, sometimes

I’m sleeping in the middle of the night and I just wake up because I know somebody subscribed

or followed. It just wakes me up and I get filled with joy. That’s exactly what happens every single

what happens every single time so you could do it as a nice favor to me or you could you control me

if you want to just wake me up in the middle of the night just subscribe and then i’ll just wake

up i promise that’s what will happen also uh if you look at the middle of the screen right now you

should see a qr code which you can scan in order to go to the website which i think is also named

somewhere at the bottom of this video and it’ll take you to my main website where you can just

kind of like see all the videos i published and the services and tutorials and things that i offer

and all that good stuff.

And if you have a suggestion

for clarifications or errata

or just future videos that you want to see,

please leave a comment.

Or if you just want to say,

hey, what’s up?

What’s going on?

You know, just send me a comment, whatever.

I also wake up for those in the middle of the night.

I wake up in a cold sweat and I’m like,

it would really mean the world to me.

I would really appreciate it.

So again, thank you so much for watching this video.

and enjoy the cool music as I fade into the darkness which is coming for us all.

Thank you.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply