Ditching Windows: The Linux ecosystem and hardware compatibility

I’d planned to write some news last week Monday, I really did. I sat down to see if any news was up that was interesting, I had links and tabs for some things going into the Laptop Buyer’s guide, and it was going to be a productive day. Instead, I spent most of the time babysitting a reinstallation of Windows 7 on a family friend’s laptop that was critical for a charity operation. I timed it – from start to almost finished, it took me a little over nine hours. The frustrating thing is that it required me to babysit it, I couldn’t just leave it be because I had to be there for the reboots and the driver installs and most everything else. It was this same sort of effort that made me take an active interest in other operating systems years ago, and it’s why I’m running Linux today. If you’re reading this paragraph with interest, I think you too may be interested in an alternative, in something different.

And so begins our journey with Linux.

We begin with prefacing the context in which I’m writing this “guide” of sorts. Windows and I have had a long history together, and it will always be more familiar to me. I started off with computers running Windows 95 with less than 125MB of RAM and dial-up modems, and have used everything in between up to Windows 10. That’s a lot of muscle memory to rewrite. No part of this guide is about slagging off Windows or whining about how much I hate the update mechanism – because I do, obviously – but that’s not the point. The point is to show you, NAGlings, that there is an alternative, without stepping on everyone’s toes because their software needs are different to my own.

Microsoft’s Windows 10 is a generally good operating system and it’s much less of a pain to install, set up, and use compared to older versions of Windows. That said, it’s not perfect. The cobbled way in which it’s come together reflects both the company’s structure and feelings internally, as well as their long-term outlook. Windows 10 isn’t their pièce de résistance, it’s a turning point for Microsoft as they switch to making money from sales of other people’s software and services and offering back-end infrastructure for web technologies. The big picture for Microsoft is much more than just Windows, Server, Office, Active Directory, and gaming these days, even though separate teams inside the company put a lot of effort into the projects they own. The Xbox team under the direction of Phil Spencer has put in an astonishing amount of polish to the Xbox Live integration and gaming on Windows 10 as a whole, and that effort deserves recognition.

But despite the volume of work and effort going into Windows, the IT industry is still preparing for a world where Microsoft may no longer dominating the computing landscape. It might take five years, it might take ten. No-one knows which way the dice will roll anymore. The smart bet is on Google rising to dominate the future as more schools and businesses across the US turn to ChromeOS because – as Microsoft themselves proved in the late 90s – if you get them young, you have them for life. ChromeOS? That’s the sound of inevitability.

This is the first in a series of columns that, I hope, will help the both of us to explore gaming on Linux and assess the options available to gamers interested in switching platforms for whatever reason. I made the switch recently after Windows 10 failed to keep me invested, and I’m hoping to show everyone how easy it can be. Hindsight is also 20-20, so you have the benefit of learning from my failures.

Choice is Linux’s Achilles heel

In previous columns and articles I’ve sort of delved into the Linux ecosystem (and previous¹ failed² attempts³ to switch didn’t pan out, mostly because I’m a moron), but what I haven’t looked too deeply into is the choice. In other parts of the PC industry, choice is an illusion. You can have your RGB keyboard in any colour you want, but you’re going to be putting your data and trust with either Microsoft’s, Apple’s, or Google’s ecosystems. There’s the option of choosing which one you want to go with, but there’s nothing stopping your information from being held hostage to these ecosystems. “Vendor lock-in” is the term used to describe this.

If that’s not enough, there’s also the gaming market with its own ecosystems. Steam dominates online sales on PC, with Blizzard coming in second place, and everyone else more or less tying for third. Others like GOG fill in the remaining gaps, but Valve definitely consumes most of the market share. Right from the start, you’re practically forced in the direction of Microsoft and Steam, both by marketing and peer pressure because that’s where all your friends are.

With Linux, choice isn’t an illusion at all. You can have any combination of software you desire – different kernel versions, different desktop environments, different package managers, different compositors, even text-based multi-window hacker-style environments if you want. You can read your email and browse the web using the terminal. You can have a fully transparent UI with enough bling to make Windows Aero enthusiasts giddy. That’s what the GNU/Linux philosophy is all about – making software free as in freedom, as in the freedom to make choices that will meaningfully impact your experience, and freedom from any one company or individual to control what they’ve created.

And that’s the problem with Linux. All this choice means that there’s a myriad different projects out there that do the same thing in slightly different ways (relevant xkcd). There’s still a basic adherence to most standards, but every project and distribution might be unique in its own way. There’s no “one Linux” distribution that does everything by the book. Fedora with Gnome comes the closest, perhaps, but it’s still not perfect.

So, inevitably, when someone asks “Which distribution should I go for?”, there will be maybe ten suggestions all from the top fifteen out of maybe 150 distributions on Distrowatch. At one point, Hannah Montana Linux was the most bleeding-edge distribution available because it could take risks that no other project would dream of doing. This is why distributions like Ubuntu, Fedora Workstation, Linux Mint, Manjaro, ElementaryOS, and others take a large chunk of the Linux market share. It’s not always that they’re better than the alternatives out there, it’s that they are the saner choices to make.

Finding the right distribution for you will take some trial and error. You might come to hate Gnome software and seek out something else. You might find that Linux Mint’s security update schedule is too slow for your liking. You might want to meme along with the community by running Arch and telling everyone that you run Arch. This choice is left up to you.

Hardware compatibility

When it comes to hardware, it’s very easy to buy most things with Linux support these days. Mice and keyboards are generally supported, but lack customisation for RGB setups. Some community projects are working to fix that, but they’re all unofficial. There is, to date, no company that ships Linux software for their peripherals the same way they do on Windows. Video cameras? These are almost universally supported if you’ve bought a new one since 2015 (if you have an older one then no amount of terminal commands will save you from the soul-destroying reality of dealing with old webcams). Monitors? Only VGA has any real issues these days, and HDCP and other content protection schemes do work. Steering wheels and flight sticks? Linux will interface with almost anything that has a USB or serial connection, and there’s a standardised interface in Linux for testing and using gaming peripherals. Most wheels just work.

Turning to the innards of the modern PC, you’ll likely struggle to find hardware that doesn’t support Linux. Most motherboards since 2010 have good support generally, a wide range of CPU architectures are supported, SATA and NVMe solid state drives will just work in most cases, network cards and RAID controllers have built-in support, and there’s proper support for audio drivers, floppy discs, tape interfaces, USB 3.0 ports and SD card readers.

Where you might struggle is in two key areas – printers and graphics cards. While printer support on Linux is plug-and-play for most things, there are certain models and brands which will have you banging your head on a wall for days trying to get the printer to be recognised. 80% of the time whatever multifunction printer you use will just work, 10% of the time it will need drivers outside of the mainline kernel, and the other 10% sees you leaving bits of your brain on the wall as you make a bloody mess everywhere.

Graphics cards are much less fickle, but nonetheless difficult to work with. Until very recently, AMD’s driver support for Linux was atrocious. It was better to use Windows for all the good that the open-source fglrx drivers did to try fix the situation. Lately AMD has been doing some amazing work in rewriting their drivers from scratch. Both the radeon and amdgpu driver code found in the Linux kernel are excellent in terms of stability and functionality, and you only need to worry about buying the best-performing modern AMD card your budget can afford and being up to date with the Mesa graphics drivers.

NVIDIA on the other hand is a very black and white affair. Everything from the GTX 500 series up to the GTX 1000 series has good Linux support, but only if you use the proprietary NVIDIA drivers that are designed and available outside of the Linux kernel. NVIDIA does not open their source for any of their products (save for the Tegra family) and only supports Linux this way because it’s the best way they can get control of how their GPUs work on the platform. Because of this approach, they’ve fallen out of love with the part of open-source community that believes in software freedom, and they still do not offer a working driver for the Wayland desktop session on Linux.

Even with all of AMD’s work put into the community, NVIDIA holds back a lot of progress for the Linux desktop. The reasons for this might be altruistic (they might know of a better way of doing things), or self-serving (Gameworks, anyone?), but whichever side of the fence you fall on, it’s still a problem. Without NVIDIA, gaming on Linux would not be where it is today, but they could be doing a lot more to boost its viability.

Constructing your shopping list

Keeping in mind everything we’ve learned today, here’s a set of rules for hardware purchases. It’s quite easy to remember:

  1. Wait two months after support for your CPU appears in the Linux kernel if you’re buying a newly released platform
  2. NVIDIA GPUs are fine, AMD cards from 2015 onwards are fine
  3. Literally anything else should just work out of the box, except that Soundblaster card and Logitech webcam you’re taking from a machine you built in 2005
  4. Machines older than five years will work just as well, but anything beyond 10 years won’t be a good experience
  5. NVIDIA Optimus graphics switching is still a pain in the ass, but you can still buy a laptop with switchable graphics
  6. Not all laptops will support Linux in the way you expect (more on this another time)
  7. Try avoid RGB anything (more on this later as well)

None of these are hard rules, and there’s some flexibility for certain things, but buying hardware for Linux is still not as straightforward as you might expect. Future columns will expand on some of these points more, but these rules will hopefully inform your future purchases so that buying hardware to use on a Linux machine is less of a pain. Many people have this expectation that because Linux runs well on older machines that it will run just fine on anything else. To some extent this is true, but like any OS the best experience comes from using more modern hardware, and you’d be selling yourself well short if you’re not getting the full potential out of your machine.

At the same time, it’s not always necessary to buy new hardware to use with Linux. The GNU/Linux philosophy ties in well with the Right to Repair philosophy of properly owning the products you purchase, and thus people are always encouraged to make use of old hardware wherever possible, to make it useful again. That Core i7-920 might not be faster than a Core i3 today, but it’s still more than enough for a Linux workstation and playing games.

Game of Thrones’ final season will “surprise” viewers if you weren’t expecting everybody to die, maybe