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?