I'm not opposed to nonfree firmware in Debian, but I removed it, and my laptop still runs fine


The debate over whether to include nonfree firmware in the Debian installer has emerged from the depths of the debian-devel mailing list under the title “Making Debian available.”

The gist of this extremely long e-mail thread (and Debian is a mailing list culture, despite attempts to pull it into the 21st century is that the Debian Project is hostile to new users because its standard install images do not include nonfree firmware, and installations on most laptops will go poorly because the Linux kernel and free firmware might not support their WiFi or display systems.

Images with nonfree firmware are available, but they are hard to find and aren’t linked on the main Debian web site.

Even a search for nonfree firmware on the Debian web site isn’t much help.A Google search for debian nonfree takes you right where you need to go.

I use the nonfree-firmware Debian images almost all the time. After my attempt at an in-place upgrade from Buster to Bullseye failed a week or so ago, I downloaded a nonfree image and used it to install Bullseye. I restored my user files from a backup (ALWAYS have a backup) and everything is now working.

Experienced users know they can try the standard Debian image, and if it works, they are home free, so to speak. New (and experienced) users should also know that they need to experiment around a bit before committing to an installation. It can’t be a one-shot deal, or the chances of disappointment are very, very good.

When I’m looking to install a system, I get live images for Fedora, Debian and Ubuntu and see what works — and what works well.

If I have a newer laptop, and nothing works all that great, I lean toward Fedora because of the constant stream (pun intended) of new kernels that bring new hardware compatibility at fairly regular intervals.

I like Debian for its independence and release cadence. The installation is conservative bordering on sleepy.

Fedora is the opposite. Even though you can “skip” a Fedora release and do a major upgrade once a year (which sounds very reasonable), the pace of updates is extremely fast. Every time you turn around, another 500 MB is ready for you in dnf.

In contrast, I turn to Debian Stable because I can usually hang for the two years between releases — or at least close to that, and I like the “quiet” of the infrequent updates that are generally only done for security reasons.

This time, I made it maybe a year and a half, and that’s why I wanted to upgrade early to Bullseye on my laptop. Now that I’ve done it on the HP laptop, my Buster-running iMac is staying where it is until Bullseye goes stable. I just need that machine to work (and it does).

Back to nonfree firmware. If the installer boots at all, you’re already getting somewhere, even if your GUI desktop or networking don’t work right away. For an experienced installer of Linux, this might be enough. What it also is: a pain in the ass.

If you need nonfree firmware to run a GUI display or use wired or wireless networking, you NEED it. Otherwise the system is pretty much unusable. Debian shouldn’t only be for Thinkpads or laptops that are old enough to have the full embrace of the Linux kernel.

I think the Debian installer does some kind of detection on your system that tells you whether or not you might need nonfree firmware and instructs you to have a USB drive containing that firmware at the ready. I’ve never been able to make this work.

In OpenBSD, the installer (another GREAT one that never changes) detects that you need the firmware, and actually fetches it over the network if it can. That’s what the Debian installer should do. But it still wouldn’t help in situations where you don’t have a working internet connection.

It is nice for the nonfree firmware to be there in the installer image. Ideally, if you need it, the installer can use it and provide an explainer on what’s actually happening and what your options as a user are. That’s pretty much what happens with the Debian nonfree images, and that’s why I use them and encourage others to do the same. Why not set yourself up for success?

My question remains: Do the nonfree Debian images actually INSTALL the nonfree firmware, or do they just use it for the purposes of the installation? I know I’ve done installs with the nonfree image and had to add the nonfree firmware after the fact. That I don’t know exactly how this works should tell you that the process isn’t what it should be.

That said, we should all try to document our difficult installations and configurations so others can benefit. I’m sure that is how I got my 2011 iMac working with Debian Buster. In that case, I needed to:

  • Do the Debian installation
  • Use another computer to download the nonfree firmware .debs (including one for the Radeon graphics card) and put them on a USB flash drive
  • Boot into Debian on the iMac in a console (which was all I could do) and su to root
  • Mount the USB drive (which, when done from the command line, is a tutorial in itself)
  • Use apt or dpkg to install the firmware .debs
  • Add a line to /etc/default/grub so the AMD Radeon video will work
  • Reboot into a working Debian system

It’s not a lot for someone who has been in this game for a few years. But it is way too much for a new user.

What I usually say to “defend” this state of affairs is that you should start with Ubuntu. Even though a lot of the “help” out there is of the “RTFM” and “Here’s a link to something super generic that won’t help you,” variety, there’s so much help that you’re bound to succeed.

And the other thing I usually say is that unless somebody is maintaining your computer for you, problems that require solutions will happen. You will start searching for answers and gaining experience. You will be “ready” for Debian (or Arch, or whatever distro you want to use) before you know it.

While this is more true for Linux (and BSD), it’s still true for other operating systems like Windows and MacOS. There are no trouble-free computer OSes. You either find (and pay) experts, or you figure things out.

One way or another, this is the equation:

Linux/BSD use + time = You're an expert.

The way we can all help each other is to document the solutions we’ve found and share what we’ve learned. I try to do this, and I encourage the rest of you to do the same.

I didn’t see a lot of posts on how to upgrade from Debian Buster to Bullseye, and the ones I did were not as helpful as they needed to be. (That means they didn’t work for me.) The Debian documentation for this upgrade isn’t ready yet. As the release of Bullseye gets closer, I hope it will be.

Remember the title of this post: “I’m not opposed to nonfree firmware in Debian, but I removed it, and my laptop still runs fine”?

I did this. I removed firmware-linux-nonfree, firmware-misc-nonfree, intel-microcode and amd-microcode. I also stashed copies of the .debs on a USB drive in case I needed them.

I rebooted. My Debian system still works. I did get a line of output during the boot sequence that said some i915 firmware is missing, but everything seems to be working just as well as it did before I removed the nonfree firmware packages.

So a 2017 HP Envy laptop with an Intel Core i7 7th Gen CPU using Intel video can run Debian Bullseye in 2021 without nonfree firmware.

Again, I’m not opposed to the use of nonfree firmware. Fedora includes it without giving it a second thought. So does Ubuntu. I have it on my Debian-running iMac.

I don’t expect Debian to run without this firmware on newer laptops, and I don’t think everyone should wait years for Linux compatibility that might never come without nonfree firmware.

Being able to try my system both with and without nonfree firmware and then decide what to do — that’s the kind of freedom I want.