Nonfree Firmware And Principle (publ. 2023-02-23)

Andy Wingo wrote a blog post recently about a new laptop:

guix on the framework 13 amd

He took a few paragraphs, as an aside, to criticize the FSF for their position on nonfree-firmware. I feel that I need to address some of these points. I'm not an FSF representative — just a member — but I believe Wingo's reflections misrepresent their position and confuse the issues further.

First of all, we need to recognize the FSF's fundamental goal, which is for users to have control over their own computing. According to RMS (sorry, I don't have any references handy) the priority is individual user freedom, rather than companies or governments, though ideally he would like them to have software freedom also.

In general-purpose computing, at least as an ideal model, you have two things: (1) hardware, designed to execute software programs, and (2) software programs, which are commands provided by the user. If the hardware simply executes those user commands, then the battle for user freedom is straightforward: you just have to make sure that the software used is free software. Free software is defined by the four software freedoms.

What is Free Software?

What is complicating the issue here is (1) microcode or firmware needed to make your computer work, and (2) firmware that runs on peripherals attached to your computer. FSF's position (or at least Stallman's) is that if the firmware cannot be updated or reloaded (or never has to be) then you can treat it like a hardware circuit. Again, in general purpose computing, the hardware does not threaten your computing freedom because it is just executing whatever software programs you feed into it.

Wingo states

I believe the current FSF position is that if you can run e.g. a USB ethernet adapter without installing non-free firmware, then it is kosher, otherwise it is haram.

and then proceeds to ridicule that position.

But a better understanding of the FSF's position is that using such a device — that is, a device with nonfree firmware on it — is not a practical threat to your user freedom. Viewed as a piece of hardware, it simply does what your computer tells it to do so. And it will continue to do so forever because the built-in firmware never changes.

Now, some hardware, and the firmware inside it, might be designed to be a threat to your computing freedom. FSF recognizes this and calls out such hardware and condemns it. For example, the FSF has led the way in calling out the danger of the Intel Management Engine, going so far as to discourage anyone from ever buying a new Intel motherboard ever again.

The Intel Management Engine: an attack on computer users' freedom

The IME is a chip in Intel computers capable of giving control of your computer over to third-parties, without your consent. Such hardware should be avoided and condemned.

Most peripherals do not present any serious threat to our computing freedom. However, if a device's firmware has to be provided by us through a non-free blob, than it immediately becomes a threat to our computing freedom, because (1) it requires us to distribute and store non-free code, which is a bad example, and (2) to keep the blob working with our latest software, we might later need an updated blob than we either can't get, can't distribute, or can't trust.

Now, threat-level can vary, and even a minor threat to computing freedom might be a good excuse to invest in hardware that does provide, or at least allow for, free firmware. For example, some stock wifi-adapter with non-free firmware might have bugs in it or eventually develop a security vulnerability. So it might be wise to buy a wifi-adapter supported by some free firmware project.

So for example the the USB Ethernet adapter I got with my Dell system many years ago has firmware, therefore it has bugs, but I have never updated that firmware because that’s not how we roll. Or, on my old laptop, I never updated the CPU microcode, despite spectre and meltdown and all the rest.

I want to emphasize here that it has never, to the best of my knowledge, been the position of FSF or RMS that users should not be allowed to install proprietary software or firmware if they chose to do so. Their position is that the proprietary code should be clearly separated and distinguished from the free code — which means not distributing them together — and that the FSF will not promote or encourage the use of such software, at least not in any way that might confuse the issue or imply that the non-free software is okay. But they are not opposed to users making decisions to use nonfree software when necessary for practical reasons, so long as they know clearly what the decision is they are making and what the downsides are.

Along these lines, RMS suggested an approach to "install fests" which involves making a "devil" available to install non-free drivers. The idea is that the event promotes installing free software distributions on peoples' computers; but there is one person dressed up like the devil, at a separate table, who helps people install nonfree media and wifi drivers and such as needed. I don't know if anyone has ever actually done this at an install fest, but the point is that it is an approach that was suggested by RMS himself.

It is like how Richard Stallman wouldn’t use travel booking web sites because they had non-free JavaScript, but would happily call someone on the telephone to perform the booking for him, using those same sites. In that case, the net effect on the world of this particular bright line is negative: it does not advance free software in the least and only adds overhead.

On the contrary, Stallman's course of action has several beneficial effects. First, it protects himself from the use of proprietary software. As RMS himself stated, the protection of individual computing freedom is more important than the question of whether or not companies and governments are using free software. Second, it allows him to promote this behavior and example to others, without being a hypocrite. What if ten thousand or one million people followed his example? Then, not only would those people be protecting themselves, but it would be an impetus for the travel industry to modify their practices to accomodate these users. Thirdly, it gives him an opportunity to explain to the travel agent why he is not using the booking Website like everbody else, which perhaps will encourage the agent to learn more about free software.

Wingo assumes that Stallman "happily" calls the agent, but I hardly imagine that RMS enjoys the inconveniece of not being able to use the booking Web site. Rather, it is his principles and conscience that drive him to take the harder and less popular route.

Privileging principle over praxis is generally a losing strategy.

Principle must guide our praxis, or we've already lost, for we are not aiming for anything worthwhile. At the last talk I watched by RMS — I think it was LibrePlanet 2023 (2022?) — someone asked RMS a related question: why doesn't the FSF compromise on the issue of non-free binary blobs, in order to encourage companies to become more involved in supporting free software? RMS patiently explained — no doubt for the 10,000th time — that compromise only makes sense when the other party gives you something that gets you closer to your goal. If the FSF changed their position, the companies would just say, "Great! The FSF has changed its policy!" and produce even more non-free binary blobs. People already have the option of using non-free software. The goal of the FSF is to promote freedom in computing, and to keep that "bright line" bright and shining.

This work © 2024 by Christopher Howard is licensed under Attribution-ShareAlike 4.0 International.

CC BY-SA 4.0 Deed

Proxied content from gemini://gem.librehacker.com/gemlog/starlog/20240223-0.gmi

Gemini request details:

Original URL
gemini://gem.librehacker.com/gemlog/starlog/20240223-0.gmi
Status code
Success
Meta
text/gemini
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.