Re: Why firmware generally won't be Free Software
Bruce Perens <email@example.com> wrote:
> Matthew Garrett wrote:
>>Non-free code in flash is no more or less a problem than non-free code on disk.
> Except that we have to distribute it. If the manufacturer is so
> concerned about their code that they can't disclose its source, they
> should hide the code on the device, below the bus interface where we
> don't care about it.
But why do we not care about it? It's non-free. There are benefits to
being able to change it. "Oh, good, we don't have to distribute it so
it's not a problem" doesn't deal with the freeness argument - the code
is still sitting there festering away. I can pretend it isn't. I can
pretend that aliens live inside my DVD drive and make it work, or that
it's actually made out of clockwork, but we know that that's a lie.
Hiding non-free software doesn't make it any better.
> It is to the Free Software community's advantage to ask only for
> bus-level programming information rather than to ask for firmware to be
> opened. We have enough trouble convincing manufacturers to make it
> possible to drive their devices with Free Software. By establishing a
> bus-level demarcation between the realm of Free Software and the
> manufacturer's copyrighted property, we can give them the confidence
> that revealing driver details will not allow other manufacturers to
> clone their devices.
No, you're missing the point. I understand that there are practical
arguments against this desire for freedom, but that doesn't alter the
philosophical basis - as far as freedom is concerned, there is no
difference in having non-free code in ROM or on disk. None at all. The
set of rights I have is not interestingly different. Saying "If it's the
other side of the bus, we don't have to care" is a fudge - you're
choosing to ignore the non-freeness because it's ended up on the other
side of some arbitrary line. The "If it doesn't get executed on the host
processor, we don't have to care" argument is just as valid, and just as
I understand that vendors have commercial concerns. I'm not saying that
we should start making demands. I'm saying that in the long run, we can
work towards encouraging vendors to make this information available. I
expect this to take a long time.
> In addition, embedded programming is not like the kind you're used to.
> In general an error in a Free Software program can cause loss of data,
> and the damage ends there. This is only exceeded in some device drivers,
> but embedded programming generally is not so protected - certain kinds
> of errors are much more likely to cause permanent physical damage to the
I'm familiar with the consequences of modifying firmware, Bruce - I had
to do so to get my laptop to boot if my wireless card is inserted. If
I'd had the source code, this would have been significantly easier. I
did this with the full knowledge that the hardware could be damaged if I
fucked up. My hardware, my choice. Don't attempt to use the "Oh, you
can't be trusted with that knowledge" argument, because it sucks.
I entirely and absolutely reject the idea that non-free software is less
of a problem if we don't have to distribute it ourselves. A world in
which this code is free is a better world, and our willingness to work
with vendors to free it should not be altered by the vendor's choice of
media. Whether we treat firmware as a problem or not should be a choice
entirely independent of implementation technicalities.
Matthew Garrett | firstname.lastname@example.org