Many GNU/Linux distributions distribute firmware required to use a variety of hardware, most typically, wireless cards, modems and certain high-end disk controllers. While I’m certainly not fond of these non-free “binary blobs“, I think it’s fine that distributions ship them. Users need their hardware to work, and it shouldn’t be complex to make it work either. Consider how incredibly easy it is to install Ubuntu, and then consider the jump of complexity when a user has to install or compile a driver manually- it can cause a significant decrease in free software adoption, and at the moment, I believe it’s a necessary evil we’ll have to live with for now.
However, I get agitated when people say “It’s just firmware” or “It’s technically part of the hardware”. Free firmware is important. One of the most notable free software stories that are often told even refers to Stallman’s earliest experiences with non-free code, which happened to be printer firmware.
Before you say something like “It’s just firmware” again. Please consider asking the following questions first:
- Can the amount of bugs in a system be decreased if the firmware is free software as apposed to non-free?
- Could performance possibly be increased if the firmware is free software?
- Could it benefit hardware hackers and developers by having free firmware available?
And what about security? Firmware usually does not run on your main CPU. It runs on a specific part of hardware on your system that can possibly have direct access to other parts of your system. How would a user, for a fact, know that the proprietary firmware in use does not have some kind of rootkit or other hazardous code installed?
In my opinion, it is clear that free firmware has several benefits to the computing world, and that proprietary firmware has very real hazards. I think it’s wonderful that the Free Software Foundation is working on a free BIOS, but I also believe that with most hardware, that we are dependent on the hardware manufacturers to release specifications and code. Hopefully, as time passes, the free software movement would have more funding to take the kind of action required to fix this. If there is enough funding to re-design hardware from scratch, based on open technologies, standards and software, then this problem can be eliminated. Some projects have proved that open hardware is both viable and profitable. A good example is Digium, who produces open hardware for PBX systems (most likely to be used with Asterisk, the free PBX software suite). There is also the OpenMoko project, which has done awesome work writing free implementations of the firmware and software required to operate the hardware on a cellular phone. This has already had positive spin-off results, such as the Dash Express GPS system, which is based on the hardware design of the Neo1973.
Many top programmers have objected to binary only modules, quoting Linus Torvalds:
Basically, I want people to know that when they use binary-only modules, it's THEIR problem. I want people to know that in their bones, and I want it shouted out from the rooftops. I want people to wake up in a cold sweat every once in a while if they use binary-only modules.
So, please think carefully before dismissing non-free firmware as just an innocent part of hardware. Many people who do things like that often have alterior motives, and quite honestly, I don’t trust them.
April 16th, 2008 at 9:05 pm
Great post, I wish I could do something like this in French
April 16th, 2008 at 9:10 pm
Oh please do! I think it would help even if it’s a shortened version of the post. I made quite a long post, but I’m sure you could at least sum it up in French and it wouldn’t take too long! Thanks for the kind words though!
April 16th, 2008 at 9:54 pm
What about hardware?
It’s non-free too and you’re locked into it the same way non-free software does.
You can only run it as the manufacturer intended.
April 16th, 2008 at 10:24 pm
When there is no firmware to load, it may very well live in a ROM on the device. For example, qlogic has firmware flash so the driver doesn’t have to load it.
This doesn’t make the firmware go away, it just makes it invisible.
April 16th, 2008 at 10:32 pm
Right, the location of the firmware is less of an issue than the actual license (as it is with the printing example).
April 17th, 2008 at 2:13 am
“While I’m certainly not fond of these non-free “binary blobs“, I think it’s fine that distributions ship them. Users need their hardware to work, and it shouldn’t be complex to make it work either.”
ty
April 17th, 2008 at 7:59 am
Don’t forgot about Atheros. Ask any wireless guru what wireless card they want in their doodad and they’ll probably say Atheros. Intel has better open source drivers but the functionality that the Atheros firmware (and openHAL) provides to a wireless hacker (not cracker) is indispensable when building wireless networks or debugging problems.
April 17th, 2008 at 11:05 am
So the solution is for the hardware vendors to use Flash-ROMs again, so the user isn’t exposed to the firmware “blob”?
April 17th, 2008 at 12:50 pm
Patrick, changing the location of the firmware would have little effect on its license. It’s not the blob itself that’s the problem, but the license under which it is available.
April 18th, 2008 at 6:06 pm
“A good example is Digium, who produces open hardware for PBX systems (most likely to be used with Asterisk, the free PBX software suite).”
AFAIK, the IAXy firmware is not Free software. Please correct me if I am wrong, but IIRC the firmware had to be removed from the Debian package because it did not meet the DFSG.