Hardware compatibility can be a major issue for Linux users -- but users can take steps to change that.
Over the years I've run various Linux distributions on my desktop. Each new distribution or update has been a learning experience. During this time, I have also discovered that – unfortunately – many Linux users still choose to support those companies who don't support the Linux platform.
In this article, I'll examine this issue closely, and I'll also offer tangible solutions to these issues as well.
Define a Linux PC
There are few things in this world that frustrate me more than the scenario below:
- A newer Linux user wants a new PC.
- This same Linux user visits their local big box store to buy one with Windows installed.
- After getting the PC home, they decide to try installing their preferred Linux distribution.
- Something goes wrong with the installation due to compatibility issues.
- The user then visits the related Linux forum to vent how poor Linux hardware support is.
Did you catch where things went wrong here? Out of ignorance and misunderstanding, some newer Linux users will visit their nearest big box store to pick up a new PC assuming it will work flawlessly with Linux. If their intent was to simply run the operating system that the PC came with, then purchasing a local computer in this manner would be fine.
Sadly though, these newer users have been led to believe that popular Linux distributions will work on every piece of hardware you throw at it.
While it's true that, out of the box, distributions such as Ubuntu have more new and legacy hardware support, PCs from big box stores were custom designed with specs for the latest version of the Windows desktop. In other words, it's like installing OS X on a PC.
Yes, it's possible to do. However, running OS X on a Mac is surely going to offer a smoother user experience since the hardware was setup for that operating system. So when I hear people complain about how a specific desktop Linux distribution didn't install as expected on a PC designed for Windows, I find myself rolling my eyes.
To be ultimately fair to newer Linux users, most of them have no idea that desktop Linux distributions can be pre-installed from select PC vendors. For those Linux users who know better and still choose to purchase from companies that don't support Linux supporters’ preferred platform, it should come as no surprise if things go poorly during a Linux installation.
After all, the PC clearly states it was built for Microsoft Windows.
Hardware compatibility hurdles
More than legacy software, it's the ability to install a distribution that will make or break a first time experience for a new Linux user. This has been true for years and even today it remains valid.
Certainly, buying PCs pre-installed with Linux solves this issue. But what about for those people who aren't in the market for a new PC? Surely, we can't expect everyone to rush out and buy a new computer just to run a specific Linux distribution?
The truth is, being able to install Linux on any desktop PC we wish is one of the most attractive advantages to the Linux desktop. And this leads us to depending on good information as to which components should be sought out for our existing PCs.
Hardware compatibility lists, or HCLs, are lists designed to ensure users have a firm grasp of which hardware works with Linux and which doesn't. Unfortunately, they're usually dated, poorly put together and more often than not, plain wrong.
I've seen these HCLs state that PCs specifically designed for Linux had poor compatibility. Not only was this wrong and misleading, it further demonstrates why HCLs don't work. User edited lists are flawed since we can't determine the skill level of the person entering the information.
Issues with HCLs only add to perceived Linux hurdles by pushing FUD (fear uncertainty and doubt) front and center, even when that's not the intent of the list itself. One might even call this an unfortunate event of "happenstance."
Wireless devices and peripherals
One of my favorite things to berate is the current state of Linux wireless devices, as Linux distributions present it. I realize I bring this up far too often, however it's relevant to this article.
Just like I talked about using PCs built for Windows, the same approach holds true for peripherals and wireless networking devices. While most devices will work fine out of the box, there are select printers, wireless networking devices and other add-ons that can offer the end user mixed results when using Linux.
The absolute worst offender in this space would have to be wireless networking devices. Because 99% of the companies out there are building devices exclusively for Windows, you'll often find the same model of device using varied chipsets. This can make nailing down compatibility a problem.
If you're buying Linux pre-installed, this issue doesn't exist. However, for those of us trying to use the devices we already own, this can be hit and miss.
To make matters worse, some Linux distributions have begun encouraging users to use tools like NDISWrapper.
This is a tool designed to install made-for-Windows wireless networking drivers onto your Linux system. At first pass, it sounds like a great idea. After all, it "could mean" working wireless regardless of the wireless device you're trying to use.
Sadly, though, the reality is that NDISWrapper only encourages users to ignore vendors using devices that offer natively supported wireless devices.
Now before anyone claims that native wireless drivers don't work well, consider the following facts. Atheros, and Ralink, among other chipset vendors, have great native Linux drivers available for those who choose to install them. The break down in user experience that takes place is due to a number of "experts" pointing to using Windows drivers for working wireless solutions.
That’s not only blatantly wrong, it's counter-productive. It would be like me ranting against a chain of department stores because they don't carry something I like, then shopping there immediately afterward. It just doesn't make any sense.
So what about the hassles users experience with the native drivers that come pre-installed with their Linux distribution? After all, there are indeed real hassles being had by a great many people out there!
As an example, let's take the Edimax EW7718Un: when distributions such as Ubuntu use cutting edge driver options, the end user may find themselves with poor wireless speeds. This occurs when using rt2800usb instead of using rt2870sta. While rt2800usb may be a newer option, it has been a terrible performer when compared to the more reliable rt2870sta driver.
Where this issue becomes a massive pain is that rt2870sta must be compiled in order to yield the kind of experience one would want. We're talking about using rt2870sta for 802.11n speed vs rt2800usb offering 802.11g speed.
So no, it's not that Linux wireless stinks. Rather, it's that distribution maintainers need to stick with proven drivers. I’m not faulting anyone, I’m merely pointing out that for newbie-oriented distributions of Linux, this kind of reality check is needed.
Support those who support you
The key factor to remember here is simple: support those vendors who support you. Intel, NVIDIA, and HP, among others have all dumped large sums of cash into making Linux compatibility something they take seriously.
The same goes for companies offering Linux pre-installed on computers, as well. Put down that Dell and pick up a PC from a trusted, Linux-only vendor. A quick search on Google will show you that there are a ton of options from which to choose from.
For those of you who'd rather stick with the PCs you already have, there are plenty of options here as well. For wireless devices, you can get out-of-the box support with mainstream Linux releases using rt73usb-based dongles or simply sticking with Intel wireless.
3Others may find themselves happy using ath9k-based wireless solutions, like I use on my ASUS Eee netbook. On a clear wireless channel, I get 150Mbits running mixed 802.11g/n on my wifi access point. That's not half bad, everything considered.
In the end, the choice is yours. If you want to take your own path, and learn as you go, then self-installation and support is a great way to overcome Linux hardware hurdles. Just make sure you bring your willingness to learn.
If instead, you simply want a "make it work" type of experience, then you would be wise to heed my advice on purchasing PCs directly from Linux PC vendors. Why make hardware support more difficult than it needs to be?