negative zero

Revisiting Firmware

2021 April 22

[free-software] [opinion] [tech]

This is a response to this post I wrote in September.

I think I'm done trying to prioritize "nonfree firmware baked in" over "nonfree firmware loaded by the OS" for any reason other than convenience.

Here's how I think the argument goes:

  1. Nonfree software is unethical.
  2. Following (1), it is more ethical to refuse to load nonfree firmware onto a hardware device.
  3. This argument is meant to say that it's more ethical to refuse to run nonfree firmware on a hardware device, even if it results in either worse performance or inability to function. (For example, you could refuse to use Wi-Fi rather than use a Wi-Fi adapter with nonfree firmware.) However, it comes to mean that the act of loading the firmware is the problem, rather than the firmware itself.

  4. Following (2), the most ethical operating system does not contain any of these nonfree firmware blobs which might be loaded onto a hardware device.
  5. This step makes sense if the result is that the blobs are altogether unavailable, and devices which need nonfree firmware don't get it at all. However, there's some misdirection happening where the blobless OS has become the overall goal, rather than a solution to a specific problem.

  6. In most cases, the only practical way to use such an operating system (with no blobs) is to seek out hardware which has the nonfree firmware baked-in. Thus, following (3) which says the most ethical thing we can do is to run a blobless OS, it's more ethical to use non-free firmware if it's already on the hardware.
  7. We're now running more nonfree software by not being able to prevent the firmware blobs from being loaded onto the hardware.

I support using free firmware over nonfree firmware. On my laptop, for example, I do not supply the nonfree firmware to make the Wi-Fi work; instead, I use an external AR9271-based Wi-Fi adapter, which supports free firmware. I yearn for a day when we might have computers which are fully free - both hardware and software.

However, running free firmware on every single part of the computer is not an option right now, and I'm tired of pretending that it's somehow better for users' freedom to take away their ability to...

  1. refuse to run the nonfree firmware at all by not providing it to the hardware
  2. choose which nonfree blob to use if multiple are available, rather than being stuck with the one that was preloaded
  3. have the potential to one day replace the nonfree firmware with free firmware