Linux Desktops and Hardware Enablement - It’s Time for a Change

Written by learnlinuxtv | Published 2022/08/29
Tech Story Tags: linux | ubuntu | debian | computers | hardware | driver | linux-distros | linux-for-newbies

TLDRTo say that our relationship with Linux on the desktop has been strained would be an understatement. Linux itself is incredibly successful, yet far from perfect - but still surprisingly popular depending on how you look at it. Chances are, the majority of your favorite sites and online services are powered by Linux. The few things that (still) don't work, are the things that are causing a great deal of damage when it comes to Linux adoption. At least, not until less-than-ideal decisions stop being made that ultimately leave newcomers frustrated.via the TL;DR App

A call to action for Linux Desktop Distros

When it comes to those we care about, we wish to see our loved ones succeed and become the best versions of themselves. We encourage them to push forward through this crazy thing we call life, and maybe even become a bit disappointed when someone we love makes a less-than-ideal decision.

Perhaps the same can be said of fans of the Linux desktop. It's like family to us. But to say that our relationship with Linux on the desktop has been strained would be an understatement. We love our favorite desktop distribution. Perhaps not in the same way as we would feel for a human or canine family member, but we do want to see the Linux Desktop flourish - and dare I say it, succeed.

Perhaps that's part of the reason why it sometimes becomes so irritating when we Linux enthusiasts witness Linux shooting itself in its own foot. Linux itself is incredibly successful, yet far from perfect - but still surprisingly popular depending on how you look at it. Chances are, the majority of your favorite sites and online services are powered by Linux. And while you were in the process of binge-watching the entirety of Star Trek: Strange New Worlds last week, it was probably a stripped-down variation of the Linux kernel running inside your television that presented Captain Pike's latest adventures onto your screen in glorious 4K.

If you carry around an Android phone, you can thank Linux for facilitating your recent delivery call to your favorite Chinese restaurant. Who knows, perhaps some of you are reading this article from a Linux PC. (Maybe).

Here's the thing, and I'm going to be very blunt. Linux already has the power to conquer the Linux desktop. It always has. But like I alluded to in a recent video on my YouTube channel while I was talking about the "Year of the Linux Desktop" - that's just not going to happen. At least, not until less-than-ideal decisions stop being made that ultimately leave newcomers frustrated. Especially when their best friend can't stop talking about how great Linux is - but every time they attempt to use it, they wonder why the list of available WiFi networks is always empty. Or even why their fancy ultra-wide display isn't able to reach its native refresh rate.

Soon, I'll let you know exactly why I feel as though the decisions being made for many popular distributions are causing the entire Linux desktop dream to be an exercise in futility. But I think it's important to first acknowledge that historically some major advancements have in fact been made, and there are a ton of bragging rights we Linux nerds can legitimately claim as our own. When I first started using Linux, even attempting to install an Nvidia driver risked bricking the entire installation. Either that or I had no idea what I was doing back then.

And that's just the beginning. Default networking wasn't configured automatically during installation like it is now, so good luck getting anything on the internet to load until you figure out how to set up a default route. That's no big deal, though - you can perform a quick Google search and find the solution within a Stack Overflow post. But you can't Google anything (the internet doesn't work). Even worse, Stack Overflow didn't even exist back then when I first started. Today, problems like those (and many others) are a thing of the past.

Nowadays, 20 years after I installed my first Linux distro on a scrawny 300Mhz PC (the kind where the monitor sat on top of the desktop, remember those?) most things actually work out of the box. And considering how bad compatibility was when I first started, that’s saying a lot! However, the few things that (still) don't work, are the things that are causing a great deal of damage when it comes to Linux adoption, especially for newcomers with a low tolerance for frustration. To best describe the actual issue I'm referring to, I'm going to describe a hypothetical scenario because that's always more fun. And also because I'm going to make your brain do some work while you read this article. Just go along with it:

Joe, a pretty cool guy in upstate New York, has a nerdy friend named Nick that does all that hacky/matrix-like computer stuff. Joe's computer is old as dirt and all the local computer fix-it people are telling him it's time to buy a new one. Nick, being the typical Linux stereotype that he is, springs into action. He's been training for this. This is HIS moment, and he's going to seize the day! Then, he opens his mouth and drops the stereotypical Linux bomb:

"Don't replace your computer, run Linux on it! It's so much faster it’ll feel like you have a new computer".

So, Joe decides to take his advice and install Linux. But unfortunately, we run into a fork in the multiverse with two totally different outcomes. If Joe somehow ends up trying Debian first, that's Universe A. If he lands on Linux Mint, he's made his way into Universe B.

In this particular iteration, Joe ends up in Universe A because he landed on Debian for some reason. His chances of success are, unfortunately, very low. Perhaps he'll boot the installation media, but see nothing but a blank screen because Debian doesn't like his choice of video card. Or, maybe he's not a gamer and has integrated graphics made by Intel. In that case, the installation media starts with no problem - but after installation, he can't access the internet because Debian doesn't appreciate the particular WiFi card that Dell decided to preinstall in his notebook. Or, maybe all of that is totally fine and works great. But unfortunately, Joe ends up feeling intense rage when he sits down to listen to his favorite Metallica album, only to find out his sound card isn't supported and as a result, Kirk’s signature guitar riffs won’t be coming through his speakers anytime soon.

Congratulations - We've lost Joe. He'll never try Linux again. He's now a permanent Windows or Mac user.

So, what about Universe B? What if Joe went along with Linux Mint for his first foray into the magical world of Penguin-powered computing? Well, there's actually a much higher chance of success. Why? Well, because Ubuntu (which is what Linux Mint is built on, long story) also hates the hardware inside Joe's machine but they loathe it a bit less than Debian does, so they go a bit further in trying to make sure Joe's hardware works out of the box.

On a side note, why the heck hasn't someone made the back-and-forth drama within the Linux community a streaming TV series yet? It would be GREAT.

Anyway, the unfolding story of Joe's migration to Linux was completely made up by yours truly shortly after I impulsively decided to write this article. But actually, it's kinda true though. In real-life, scenarios just like that play out over and over and over. Someone's success rate depends on their level of patience, and how understanding they are, yet mostly on which distribution of Linux they happen to start out with. More specifically, the politics behind the distro itself.

If you told me twenty years ago that Nvidia GPUs would still be a pain in the you-know-what to get working inside a Linux install to this very day, I wouldn't believe you. Yet, here we are. As I scrolled through my news feed earlier this week, a story came up from Phoronix in which the popular Linux blog broke the story that folks within the Debian project are having a serious discussion regarding how to handle proprietary hardware. The current year is 2022. Why are we only solving this now? This has literally been a problem for longer than I've had a career in Linux.

What's the actual issue? Mainly, proprietary hardware. "Proprietary hardware" refers to hardware for which the Linux community doesn't have source code. Whenever that's the case, we rely on the good graces of hardware vendors to do us a solid and create a driver for our preferred operating system. And believe it or not, many of them do. Yet the drivers they provide are closed-source "proprietary" blobs, are shunned by the Linux community, and are considered evil.

And you know what? I totally agree with that mindset when it comes to proprietary drivers. They truly are bad. Because distribution maintainers don't have access to the source code, they can't fix any bugs that are found. But, so what? We could simply just have the vendors fix the bugs in their own drivers. After all, they wrote the darned things. But good luck with that - Linux users aren't important enough for them to prioritize, so we're stuck with proprietary drivers as-is (bugs and all).

Another issue with proprietary drivers is that a newcomer to a particular Linux distro might encounter glitches and quirks if these drivers are used, resulting in them having a negative experience with that distro that could influence their opinion of it. So, how do some distributions protect their users from having such a negative experience?

By giving them a negative experience. (Seriously. You can't make this up).

Some distributions handle the proprietary driver debacle surprisingly well, yet other distributions do an absolutely terrible job of dealing with this. Let's pick on Debian again. (Dear Debian, I really do actually love you, honest). What Debian does in response to this (and other distributions of the same mindset do this as well) is remove access to the required drivers from their installation media. To be fair, there are reverse-engineered open-source equivalents for many pieces of hardware being made available, and they’re great. (Actually, those drivers are terrible and barely work at all - but their developers are talented humans that mean well).

Removing access to drivers that are required for a user's piece of hardware to function at its peak capacity sounds like a really mean thing to do, doesn't it? But in actuality, the reasoning distribution maintainers have for doing this is sound. The situation around proprietary drivers is truly as bad as they make it out to be, they're not exaggerating. There's an actual reason why Linus Torvalds famously gave Nvidia the middle finger at a convention a while back. I don't necessarily agree with his delivery on getting his point across, but hardware vendors can't be bothered to take us seriously. If we Linux folk had access to the source code, we could fix any bugs that are found in a fraction of the time it would take for Microsoft or Apple to release an update to their respective OS. And we'd look better doing it, too.

Technically, when I refer to source code in regard to a specific piece of hardware, I'm actually referring to design specs - but I say source code for those that don't care about specifics. But the lack of access to this information, which is information that we could use to make the Linux desktop more performant and stable, ends up causing Linux users to have a negative experience, and that negative experience gives our beloved operating system (yes I know it's a kernel) a bad reputation.

As I alluded to earlier, some distributions actually do a good job when it comes to handling this situation. Or at least, as good of a job as possible given what we have to work with. Ubuntu is actually a great example of a desktop distro that does this right. If your hardware requires proprietary drivers, Ubuntu has you covered. During the installation process, you can select an option to tell it to install those drivers for you. If you forget to do that during the installation, or if you buy proprietary hardware, later on, Ubuntu includes an "Additional Drivers" app, that gives you access to (drum-roll please) additional drivers! After making a selection and rebooting your PC, your hardware starts working.

It’s actually that simple of a process, and I'm not even done with Ubuntu yet. Another clever workaround its developers at Canonical have come up with is a feature known as Hardware Enablement Updates. These enable the longer-supported "enterprise" releases of that distribution to have access to drivers for supporting newer pieces of hardware.

Wow! Ubuntu, Canonical's flagship Linux distro, knocks it out of the park! They literally cover every angle of this problem. Yet for some reason, Ubuntu is the distribution that the Linux community seems to hate the most. Again, you really can't make this stuff up.

But getting back to our friends Joe and Nick and the rest of that contrived scenario I came up with earlier, this is why Joe's migration to Linux on his notebook has a good chance of ending in failure. His overall opinion on Linux can be influenced largely by his experience, and with the inconsistency in how well or not each distribution handles this situation, it could literally go either way. Either he'll become a lifelong Linux convert, or someone will witness his notebook being tossed out of his second-story office window as if it were a frisbee.

Some of you may feel as though I'm blowing this out of proportion. But consider this. If you didn't already know, my entire career is built around Linux. All of my bills and personal expenses are paid from the work I do producing Linux-related content (which I create solely while using Linux - I’m actually that obsessed with it). I absolutely love Linux and the fabulous people within its community.

But I almost didn’t become a part of that community. I remember being frustrated when I first started researching Linux, and I almost didn't even bother trying it. I'm nervous to even think about how different my life today would be if I fell into Universe A or some similar branch of the multiverse. The reality is, that many people actually give up on Linux on the desktop all the time. And in a lot of cases, the reason is due to how poorly some distributions handle the situation with proprietary hardware.

You know what? This needs to change. As the brilliant and talented people in this wonderful community that we are, it's time for us to work together and fix this. I totally understand that proprietary drivers are unethical. I don't like them either. But we have to take into consideration some absolute, non-debatable FACTS.

Whether we like it or not, proprietary hardware exists and is being sold on PCs. And the owners of said hardware just want it to work. As genuine as our loathing for proprietary drivers happens to be, our users don't care about these politics in the way that we do. We can certainly educate people on why proprietary drivers are bad. We can encourage them to speak out against the companies that have bad policies around their hardware. But we cannot, under any circumstances, hold the user experience hostage just to prove our point. It's time for each and every single Linux distribution in existence to give their users as good of an experience out of the box as we possibly can, even if that means enabling proprietary drivers and including them inside all installation media.

Am I making that out to be simpler than it actually is? Yes, absolutely - there's so much history (including laws) around proprietary drivers and why they're such a thorn in our side, that I cannot possibly summarize all of the core issues surrounding them in one article. This is a tedious situation, for sure.

But we need to stop punishing the user. There's no excuse.

So, what can we do about it? Sure, I can come up with solutions and propose them, and you might even think my ideas are clever. But that's not the right way to handle it. The Linux community needs to work together to solve this (in the interest of the user) and the community specifically needs to be what comes up with said solution.

A solution where the end result must be the user having an out-of-the-box installation of any distribution with their hardware fully enabled. It doesn't matter how it's designed and how we get there, but the end result needs to be exactly that. No other outcome is acceptable.

And you know what? The Linux Community is amazing, and I know for a fact this can (and it will) be solved. Let's make like Picard and make it so.


Written by learnlinuxtv | I'm a Linux geek that creates educational content around Linux. Host of LearnLinuxTV. Author of Mastering Ubuntu Server.
Published by HackerNoon on 2022/08/29