DOKK Library

The Importance Of Free Firmware

Authors Jason Self

License GPL-3.0-or-later

Plaintext
jxself.org


The Importance Of Free Firmware                                                            Home

I received a request to write something about why you should use free firmware (so         Linux-libre
yes — I do accept requests for topics) but firmware is really just software and the
arguments I was going to make apply equally to all software. However, for the
                                                                                           GitWeb
purposes of this article, I will focus on software in the form of firmware.

Our lives are becoming ever more dependent on computers, and specifically the              How To
software — in the form of firmware — that runs on them. You'll find computers, and
the software running on them, not only in the computer on your desk but other places       Articles
you may not think of: In cars, airplanes, buildings, televisions, cameras, and many
more places. Many people already carry firmware in their pockets, and if Google            RSS Feed
Glass is any indicator it's going to become far more intimate and we'll start wearing it
too. It's also found in places where lives depend on it, like medical devices. In short,
software is everywhere and will only continue to spread.
                                                                                           About Me

This rightly raises the question of who should control all of this. The free software      Contact Me
movement says that you should be the one deciding what these miniature computers
in your life are doing. That necessitates the software on those computers be free          GPL enforced
software so that you can understand what they're doing and change it.

The goal of the free software movement is nothing less than getting freedom to              If you appreciate any of the things I
everyone, everywhere, over every piece of software. Getting freedom to everyone             am doing you can make a donation.
means that everyone becomes the master of the technology in their lives — where the
user decides what that device does and does not do — and is not a servant to a
master that decides for them.

What sort of things happen when you're forbidden from knowing what's going on
inside and changing it? Let's consider one example of something that happens when
you don't control the technology and look at the ThinkPad laptop. All models come
with proprietary firmware that runs as soon as you power the computer on, in the form
of the BIOS. This BIOS has an anti-feature in it, where it will refuse to boot if you
replace the WiFi card with a different model.

Regardless of why you might want to do replace your WiFi card, the manufacturer has
decided that you shouldn't be able to. Workarounds are available in the form of
hacked BIOS firmware images and other tricks but these shouldn't be necessary: Your
computer should obey you, not someone else. By including this anti-feature the
situation has now changed from your computer obeying you to you finding a way to
get around the control that the manufacturer has imposed on you. Imagine what sort
of control becomes possible if the manufacturer gets to decide what other kinds
peripherals you're "allowed" to plug in to your computer.

Imagine also optical drives that only read disks marked for use in a specific
geographic region, or printers that only accept ink from a given company, or that print
imperceptible tracking dots on your documents. Imagine also ebook readers that
delete books you've bought, television tuners that refuse to record certain things, and
computer displays that refuse to display certain images.

Oh wait — all of this already exists.

Imagine if that were to expand to include not only what you plug into the computer but
also what software you run on your computer, where it would only run programs that
the manufacturer has authorized. Oh, wait — that exists too with things like the
iPhone/iPad and with the upcoming Restricted Boot in ARM devices that will never run
anything but Windows 8.

It's not limited to just anti-features. There can be privacy problems too: Think of cell
phones. They usually have proprietary software in the form of the baseband firmware,
the part that's responsible for interacting with the cell phone network. It operates
independently of your phone's main operating system and is actually a full operating
system in its own right. A common design shares the phone's main memory with the
operating system you see on the screen and the one you don't. This design also gives
it access to the microphone and GPS. Cell phone carriers have the ability to remotely
update this firmware. Read the contract with your carrier, buried in the fine print was:
"Please be aware that we may change your wireless device's software, applications or
programming remotely, without notice." What control does this give carriers? The
power to push updated versions to handsets — without your knowledge — that
contain surveillance features to activate the microphone and report your location. You
take this with you everywhere you go. Your carrier may say they'd never do this but
policies can be easily changed, while the infrastructure will persist for many years.

Why is any of this tolerated? Perhaps part of it comes from people that are used to
being mistreated. Maybe they're used to this and don't think much of it or don't think
they deserve any better?

Even without any anti-features or surveillance features I can say one other thing about
these proprietary programs: They have bugs. You are at as much risk of an accidental
software bug, such as one that shocks your heart when it isn't supposed to or that
causes your car to mysteriously speed up and crash into things, as you are a
malicious feature. Of course most people will never modify it but the fact that you can
(or have someone else that you trust do it for you) keeps you safe and means that you
— and not someone else — has the control over the technology you're using.
That you're forbidden from studying, modifying, and sharing the software — through
both legal and technical means — means that you don't have sufficient control. Being
able to run the software but not modify it only gives you the ability to do — or not do —
whatever the developer said you could do or not do. If you can't use it for any purpose
that you want, if you can't study and modify it so that it does (or doesn't do) whatever
you want, then who is that device really taking orders from? Certainly not you. At that
point it begins acting as the agent for someone else, enforcing their rules, policies,
and agendas — not yours. Unless you control the technology the technology will in the
end control you.


Copyright © 2012 Jason Self. See license.shtml for license conditions. Please copy and share.