TL;DR Most manufacterers do not play well with Linux. Buy a ThinkPenguin Device when possible!

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 have since rewritten that article to be more informative and helpful.

I would summarize the issues (from my perspective) as follows.

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 RT5372 chipset.

Panda PAU05 300Mbps 1.png

Another review says the same device has an RT2870 chipset.

Panda PAU05 300Mbps 2.png

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 RTL8111.


ANEWISH 600Mbps.png

Then a reviewer claims their device has the RTL8188AU chipset.

ANEWISH 600Mbps 2.png

The Edimax-EW-7811UTC is another great example of this confusion in how devices can be marketed one way, but the underlying device internals are likely to be inconsistent.

The WikiDev articles for the Edimax-EW-7811UTC clearly state that there are multiple revisions of the same device.

multiple revisions of this device, use caution

This is a case where a device is marketed and sold under one model number, but there are different internals being used across the multiple revisions of that one card. You have almost no guarantee or way of knowing which flavor you will get.

For that Edimax device, it seems the same chipset is used across multiple revisions, but there is no guarantee there aren't other varying chipsets in use for that model right now, or in the near future. One revision of that device has a vendor id (VID) and product id (PID) of 7392:a811, and another revision of that same device has a vendor id (VID) and product id (PID) of 7392:a812.

You might, understandably, presume that the device with product id a811 uses the rtl8811au chipset while the device with product id a812 uses the rtl8812au chipset, but it appears they both use the rtl8811au chipset.

This behavior by companies to market devices with different internals, but the same branding and model number, can clearly lead to confusion.

Chipset Inconsistency

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.

TP-Link N150 multiple chipsets.png.

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 even when you buy the exact same device as someone else.

ThinkPenguin, on the other hand, uses predictable and reliable chipsets.

Driver Support

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.

Ath9k.png.

Other users purchasing the same card ended up with devices that had a different chipset that does not support monitor mode.

Not Atheros chipset.png.

This user had the same issue.

Bad info.png.

The Solution: 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 intended 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.