The FSF is papering over a binary blob
lwn.net
lwn.net
I'd say the biggest difference here is that OpenBSD's goal is to make a free operating system, not a free phone.
(I don't know how widely enforced this is, though. I've never had any trouble telling my wifi equipment I'm outside of the US to get access to extra channels. I guess this is a federal crime, but good luck enforcing it.)
We have enough source code for Atheros devices to be able to reprogram them as we see fit, and the FCC doesn't really care.
If this were the case, you (the private individual) would not be allowed to have anything that would allow you to build a radio transmitter of any form.
Also, look at GNU Radio: http://gnuradio.org/redmine/projects/gnuradio
Seriously, just downvote (or if it's bad enough, flag) and move on.
is a potential tactical ally for as long as it makes sense."
OpenBSD is very strong on this, and often has drivers that are blob-free when other OS's don't: http://onlamp.com/bsd/2006/04/27/openbsd-3_9.html
This isn't restricted only to free OS's either - nearly 30% of Vista crashes were attributed to buggy nVidia drivers:
http://arstechnica.com/hardware/news/2008/03/vista-capable-l...
In short, if you want a system you can at least have a chance at fixing when it breaks, you need the source code to your drivers.
This case in particular is a firmware load into a 3rd party chip, which isn't usually as bad a a binary driver, but can be a hassle if there are restrictions on distribution of the firmware.
In most scenarios where I think a '3rd party chip with its own firmware' makes sense, that chip can generate interrupts and/or do DMA. Both cases will (typically) allow that firmware to crash the OS on the other CPU (or bring it to its knees by DDOS-ing it with interrupts)
Because of that, I do not see why a blob running on that 3rd party chip would be less of an issue than a blob running on the main CPU.
In the end, for almost every case (yes, you probably _can_ build your own 1kW 6502-class CPU from sand, if you are good, start young and persevere for a couple of decennia) it boils down to the fact that you will have to trust some other people. After all, you cannot reasonably verify that say a x64 CPU really behaves as its documentation states it does.
Firmware chunks have a very simple interface: load. Anybody with the firmware file and some basic documentation can make it happen.
I'd argue that it's an entirely different kettle of fish. Once the firmware blob is loaded into the chip, the hardware widget works exactly like it would otherwise. If the firmware just lived on a ROM inside the widget, you'd never know it existed.
Protesting closed source drivers I'm all behind for the reasons you mention, but closed source firmware just simply can't aggravate me.
It's your right as the user - there's nothing to stop you from doing that. They simply won't help you with it, and any distro that does is deemed non-really-free (like Debian).
Don't confuse "right to do" with "right to being easy to do".
(I say this, knowing full well that I suffer from the closed nature of this device. The DreamPlug uses this, and the access point version of the firmware only supports 8 devices. That doesn't go very far with the usual complement of mobile devices people carry. I am powerless to patch it and will have to add a dedicated access point to work around it, but paying to freeze this particular deficient version of code is ridiculous.)