TL;DR Most manufacterers do not play well with Linux. Buy a ThinkPenguin Device
Finding a reliable USB Linux WiFi device can be complicated.
I naively bought several devices from Amazon that had mixed reviews for Linux support, and I informally tested them at home on Ubuntu. It was a simplistic effort to find a card that worked out of the box on Ubuntu.
Some of the devices I purchased seemed to be working without issue and so I wrote an article proclaiming, "These devices work on Linux!" in the hope that I could help recommend devices for Linux users like me.
Although I may have had good intentions, that article was actually more harmful than helpful.
A commenter on that article rightly pointed out to me the various problems with lists like mine that recommend specific USB WiFi devices for Linux, and I am currently rewriting that article to be more informative and helpful. I would summarize the issues (from my perspective) as follows.
- Marketing and Sales confusion
- Chipset Inconsistency
- Driver Support
- Unpredictable Chipsets -> Unpredictable Features
This Debian article on WiFi sums things up far better than I ever could.
Currently there are only a few modern wifi chipsets readily available that work with free software systems.
USB Wifi cards are becoming less free.
I spent enough time and energy researching this that I figured I may as well share my fumblings and findings in case they are helpful to anyone.
My own conclusion, as well as the recommendation in that article from Debian, is that you should check out the WiFi devices sold by ThinkPenguin. They will be the best supported Linux devices you can find.
I am no expert. Please comment and critique this article if you think I am way off the mark on any points.
Marketing and Sales Confusion
I buy almost everything on Amazon, and I rely on Amazon reviews to inform my purchasing. In my quest to find a USB WiFi device for Linux that "just works", I often found reviews like these.
One review for the Panda PAU05 300Mbps said it has an
Another review says the same device has an
What is happening? How are we seeing the same model of a USB WiFi network device reportedly having multiple supported chipsets?
Here is another example of that same chipset inconsistency.
The manufacturer of the ANEWISH Wifi Adapter 600Mbps USB Wifi Adapter says the chipset is an
Then a reviewer claims their device has the
What is going on in those reviews? Why is there confusion as to which chipset these USB WiFi devices will have, even when directly asking the manufacturers?
From what I've been told, read, and observed firsthand, manufacturers can, and clearly do, sell the same model of a USB WiFi product, but using multiple varying chipsets.
The way this behavior manifests is as you see in the Amazon reviews above.
Two users can buy the same model of a card, and end up with different chipsets.
Consumer A Buys WiFi Card X Card has chipset 123 Consumer B Buys WiFi Card X Card has chipset 456
This behavior is one of the issues that was pointed out to me by the helpful commenter on my other article.
Because of this behavior, articles like the one I wrote proclaiming, "These devices work on Linux!", are actually very dubious. How can I, or anyone else, recommend a USB WiFi card if I cannot guarantee which chipset a consumer will receive?
ThinkPenguin solves this problem by using chipsets that are suited for Linux.
Our products are freedom-compatible: Meaning they will work with just about any free software operating system.
The chipsets we use encourage community development and user participation.
ThinkPenguin clearly indicates which (free software friendly) chipsets they use in each device, their chipsets are supported with open source drivers, and ThinkPenguin does not change their chipsets at random.
The TP-Link N150 Wireless Nano USB Adapter (TL-WN725N) is a perfect and unfortunate example of the chipset inconsistency problem.
It is a total gamble for Linux when you buy devices like these. You have almost zero guarantee which chipset will be in your device when it arrives. ThinkPenguin uses predictable and reliable chipsets.
Even if you decide to gamble and purchase an oddball USB WiFi device, I have found that the vendor-supplied Linux drivers for the USB WiFi devices I bought on Amazon were pretty awful.
The drivers were designed for 2.6 kernels, were poorly documented, and never installed properly.
This may not always be the case, but considering I saw the vendor Linux drivers were consistenly terrible, I imagine it is a common occurance.
Because most consumer USB WiFi device manufacturers do not work with the community, Linux support is problematic.
Non-free drivers and firmware are produced by companies refusing or unable to cooperate with the free software community. With non-free drivers and firmware support is often unavailable or severely strained. For instance features are often left out, bugs go unfixed, and what support does exist from the manufacture is fleeting.
It seems to me that manufacturer behaviors make it exceedingly difficult to develop reliable Linux drivers. Again, this is a case where ThinkPenguin devices are a superior choice when it comes to reliability.
Though, I should point out that there certainly are a plethora of other (non-free) Linux USB WiFi drivers out in the wild. It is not as though only ThinkPenguin devices will work on Linux, but rather, they seem to have the best support due to the nature of their relationship with the Linux community.
Unpredictable Chipsets -> Unpredictable Features
Some users may purchase WiFi devices because they want a particular chipset with a particular feature.
Since manufacturers often change chipsets at random, you cannot ensure that buying a card off of Amazon or some other electronics site will have the chipset you desire with the feature you desire.
See examples of this issue here for the TP-Link N150. Some users received cards with an Atheros chipset that supports monitor mode, which is ideal for security penetration testing. However, not all the cards have that chipset, and some users were left in the lurch.
But other users purchasing the same card ended up with devices that had a different chipset that does not support monitor mode.
This user had the same issue.
ThinkPenguin WiFi Devices For Linux
A far better solution than playing this guessing game with manufacturers would seem to be purchasing the networking devices sold by ThinkPenguin.
These devices clearly list which chipset is used, and the open source drivers for these devices are included with pretty much every modern Linux kernel.
ThinkPenguin makes a concerted effort to sell hardware that is designed for Linux.
The chipsets we use encourage community development and user participation. Users can not be locked into a vendor or product, be forced into an expensive upgrade, or have other digital restrictions placed on them.
As that helpful commenter pointed out to me in my other article, ThinkPenguin devices are ideal for Linux.
They're the only adapters you can be reasonably confident are going to be properly supported now and into the future because the community is able to fix bugs, add features, etc. They also don't change chipsets randomly so you know what your getting.
I understand ThinkPenguin devices may not suit everyone's needs. In those cases, all we can do is cross our fingers and hope for the best in that the manufacturer from whom we purchase do their best to conform to best practices and act as faithful allies to the Linux community.
If you care about supporting open source efforts, and want to ensure you get the intendend chipset with a well-supported driver, I highly recommend you give ThinkPenguin a try.
There is no gambling when you buy a ThinkPenguin card. You know which chipset you will receive, and that it will be well-supported on Linux.