LWN.net Logo

Free Software Foundation courts hardware vendors (Linux-Watch)

Linux-Watch reports on an effort by the FSF to work with hardware vendors. "The Free Software Foundation (FSF) is expanding beyond its software boundaries, and reaching out to hardware vendors to encourage them to "work with the free software community" to establish a "mutually beneficial relationship." It's all spelled out in a just-published whitepaper. On March 1, the FSF released "The road to hardware free from restrictions," written by Justin Baugh and Ward Vandewege, senior systems administrators for the FSF. In it, they detail ways for major hardware manufacturers to work with free software for the benefit of both."
(Log in to post comments)

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 5:21 UTC (Sat) by mmarq (guest, #2332) [Link]

"" The FSF, however, takes a different approach. For example, Kroah-Hartman is willing to put up with proprietary binary firmware and non-disclosure agreements if that's what it takes to get a device working properly with Linux. In its paper, the FSF declares this approach to be so much "smoke and mirrors -- it creates the illusion that the hardware vendor respects freedom while the concerns of the community remain marginalized.""

I belive that the Linux Foundation approach is more adequate. Freedom and Community are very important, more so, in world that seems to get a deficit of it more each time. But there are other benefices, technical, management and financial ones that can make free drivers/BIOS very appealing.

Until those hardware vendors have tasted it big time, they wont open big time.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 12:24 UTC (Sat) by ballombe (subscriber, #9523) [Link]

The actual FSF paper does not mention NDA, it says:

" Hardware that requires binary firmware with a free software wrapper simply circumvents the issue by moving all intelligence into a black box that the user cannot open. This is merely smoke and mirrors—it creates the illusion that the hardware vendor respects freedom while the concerns of the community remain marginalized. "

So it seems Linux-Watch took upon themselves to add NDA here.

I would not sign a NDA myself, but from a freedom point of view how a GPL
driver under NDA is different from a GPL driver written by the hardware
vendor ?

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 16:15 UTC (Sat) by donbarry (guest, #10485) [Link]

two words: documentation and maintainability

the "nv" free driver for nvidia was originally written by and under
contract to (if memory serves) the parent company by Mark Vojkovich under
NDA. Most of it consists of poking and peeking to undescribed
memory locations in undocumented sequences.

I.e., one can always write assembly in any language one so chooses --
even assembly without meaningful symbol names.

You can see what a good foundation upon which it created for building -- the
Nouveau people are starting from scratch.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 20:18 UTC (Sat) by ballombe (subscriber, #9523) [Link]

> two words: documentation and maintainability

This is valid argument for full specification but how does it answers
my question ?

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 16:25 UTC (Sat) by ajross (subscriber, #4563) [Link]

This is one of the few areas where I think the FSF is missing the boat. The idea of buying a "black box" that can't be opened is a pervasive metaphor in the computer world: it applies to every piece of hardware on the motherboard.

The core requirement for freedom isn't about how black the boxes are. It's about defining a well-understood *interface* to those boxes, so people who have those boxes can customize their usage. Who cares about the difference between, say, a piece of hardware that does a particular job, and one that does exactly the same thing, but uses some internal software to do it?

There are valid and legitimate complaints about device firmware. It often comes with a license that needlessly restricts redistribution. It is often undocumented or incompletely documented. It often exports only a fraction of the capability of the hardware. But to complain about the "black boxness" just seems to be missing the point.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 17:36 UTC (Sat) by khim (subscriber, #9252) [Link]

The core requirement for freedom isn't about how black the boxes are. It's about defining a well-understood *interface* to those boxes, so people who have those boxes can customize their usage.

This means totally-locked-down Vista box is 100% free by your definition. You have well-understood interface to play with it.

Who cares about the difference between, say, a piece of hardware that does a particular job, and one that does exactly the same thing, but uses some internal software to do it?

Any sane person should care. The reason is simple: if the thing is complex enough to warrant Flash Memory (ROM is cheaper) it's complex enough to have bugs and this means it's complex enough to warrant third-party fixes - and for that you need free software.

There are valid and legitimate complaints about device firmware. It often comes with a license that needlessly restricts redistribution. It is often undocumented or incompletely documented. It often exports only a fraction of the capability of the hardware. But to complain about the "black boxness" just seems to be missing the point.

Do the s/firmware/software/g. Read your text again. Explain why in case of software you are saying that it'd better be free and in case of firmware you are happy with just weak complains ? Because "it's done this way" ? Strange argument: 15 years ago almost all software was "done this way" and free OS was a dream.

Firmware today is bigger then whole OS were 15 years ago! Actually firmware today often include the whole OS! Why should it not be free ?

I'm not free software purist. I use non-free software and non-free firmware from time to time (non-free firmware more often as it's harder to avoid). But I honestly can not see any difference between non-free software and non-free firmware so FSF's complaint makes perfect sense. What does it matter for me if DVD-ROM's firmware checks the DVD region byte or Windows's driver checks DVD region byte ? In both cases I can not see legitemately bought DVDs...

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 18:24 UTC (Sat) by ajross (subscriber, #4563) [Link]

You're rather stretching the point I made. I never said free firmware was bad. Just that the criterion the FSF was using to define "free" here was fuzzy and counterproductive. There are real issues of freedom they can talk about that *do* have immediate effects on the freedoms of users (read down to the bottom to see where I list some). But instead they choose to argue against "black boxness", which is a *practical* criticism. And it has the effect of punishing (!) hardware vendors with the forethought to do their design in a configurable way.

Your Vista argument was a straw man misdirection, and you should know better. Windows is non-free for lots of reasons, but the fact that it is a "black box" is not one of them. Where on earth did you get "100% free" from my original post?

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 3, 2007 21:59 UTC (Sat) by khim (subscriber, #9252) [Link]

You're rather stretching the point I made. I never said free firmware was bad. Just that the criterion the FSF was using to define "free" here was fuzzy and counterproductive.

Huh ? They used their standard definition as far as I can see. Don't know what's "fuzzy" about it. Counterproductive - for whom ? The goal of FSF is to free computer owners. Anything else is not so important. I fail to see how their stance is counterproductive to this goal.

There are real issues of freedom they can talk about that *do* have immediate effects on the freedoms of users (read down to the bottom to see where I list some).

Just like 20 years ago there were "immediate effects on the freedoms of users" (related to infamous printer driver). Surprisingly enough FSF was created to produce free OS, not to produce more versatile printer driver infrastructure.

But instead they choose to argue against "black boxness", which is a *practical* criticism. And it has the effect of punishing (!) hardware vendors with the forethought to do their design in a configurable way.

It does not "punish" anyone. The only way to open "full capability of the hardware" is to open firmware. ARM and MIPS instruction sets are Turing-complete - you can not fit all possibilities in one firmware. No matter how powerful it is there are always something not included there.

The mere existence of changeable firmware is admission of that fact: otherwise single one version of firmware embedded in ROM will be enough. After that the same logic apply: manufacturer reserves right to add future enhancements to itself. Why the actual owner of the device is restricted ?

Your Vista argument was a straw man misdirection, and you should know better. Windows is non-free for lots of reasons, but the fact that it is a "black box" is not one of them. Where on earth did you get "100% free" from my original post?

Here we go again: "The core requirement for freedom isn't about how black the boxes are. It's about defining a well-understood *interface* to those boxes, so people who have those boxes can customize their usage."

If you buy the PC with Vista as part of "firmware", where it's impossible to install anything else (crypto hashes and all that), but where you can write "free software" in sand boxed environment in VBA - why it's non-free ? If the freedom is about defining a well-understood interface ? VBA is certainly well-understood interface: there are books on it, conferences, it's used by millions of people around the world.

The FSF's stance is simple: any software component is just that - software component. It deserves freedom. Your stance is different: there are firmware and there are software. But the question remains: where is the border ? Firmware certainly can include full-fledged OS (takes a look on the WRT54GL on shelf) so what's the difference ? Where is the border after which we should say: "no, it's not a firmware anymore, it's a software" ?

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 2:09 UTC (Sun) by mmarq (guest, #2332) [Link]

""...if the thing is complex enough to warrant Flash Memory (ROM is cheaper) it's complex enough to have bugs and this means it's complex enough to warrant third-party fixes - and for that you need free software. ""

Well.. it seems to me that the complex thing can be break down in parts... because Linux Foundation can participate in the firmware as much as in the drivers themselfs.

.- at start the firmware functionality and driver functionality can have well define boundaries.

.- when there arises the need to have little modifications to hardware maintaining essencially the same chipset structure, something like AGEIA http://www.linuxbios.org/data/LinuxBIOS%20AMD%202006%20Fi...
can be used.

.- relevante developers can have full knowledge of every detail involved under that NDA.

.- Otherwise use a more developed AGEIA as an interface between firmware and drivers.

... because if too much political force is applayed those vendors will run for cover and wont open anything.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 2:11 UTC (Sun) by mmarq (guest, #2332) [Link]

TYPO: AGEIA should read AGESA

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 10:07 UTC (Sun) by rqosa (subscriber, #24136) [Link]

> The reason is simple: if the thing is complex enough to warrant Flash Memory (ROM is cheaper) it's complex enough to have bugs and this means it's complex enough to warrant third-party fixes - and for that you need free software.

Devices with changeable firmware don't necessarily have flash memory. For example:

The firmware for ivtv cards isn't actually stored in ROM on the cards, it needs to be loaded every time the driver loads. (emphasis added)

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 17:42 UTC (Sun) by mmarq (guest, #2332) [Link]

hmm... agreed. Where the firmware is stored (ROM or not) is irrelevant in the sense of a community being able to participate in their development.

The problem would be not "reverse engineering", but enough documentation for some people to be able to start development... under a NDA, why not ?

"" The firmware for ivtv cards isn't actually stored in ROM on the cards, it needs to be loaded every time the driver loads. (emphasis added) ""

That is why something like AGESA, imho, could prove to be very importante adressing that firmware dynamic... and vendors fear.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 1:43 UTC (Sun) by mmarq (guest, #2332) [Link]

"" I would not sign a NDA myself,... ""

Why not ?

The NDA is only for the underlaying technical "physical" description of the hardware. The code, open and "public", will be self-explanatory of its functionality anyway.

""... how a GPL driver under NDA is different from a GPL driver written by the hardware vendor ? ""

In the code itself there would be theoretically none. But that needs the vendor itself to start it, because only he knows enough "physical" details. With a NDA the vendor can delegate, without worring about its blue-prints ending up in the internet.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 6:04 UTC (Sun) by drag (subscriber, #31333) [Link]

That is about the conclusion I came to.

On hardware I am told is that there is _no_ documentation, internal or otherwise. There is _no_ standardized interfaces.

Also if you want to get hardware drivers made in a reasonable amount of time (before the hardware is obsolete) you have to have assistance directly from the manufacturer in order to do this.

And to do this you require talking and dealing with engineers and internal development folks.

And this means NDAs. Simply because you need to have free communication between engineers and (free) software developers and as a company you can't have information leaking about future products and future plans.

This doesn't mean that you have to end up with something like the "nv" driver. Under a NDA there is no reason why can't be allowed to talk about (and document) some things (such as details about programming a paticular device) and not be allowed to talk about other things (such as next-generation devices).

So it's fairly complicated.

What the FSF people should do, in my estimation, is work with hardware folks to _create_ the documentation.

Also a 'Free Firmware' project may be interesting. Maybe determine what sort of requirements people have for their firmware and make componates so that it's financially attractive to open up enough in order to use the 'Free Firmware' then try to go it on their own.

The Linux developer-style approach is to make it attractive for people to work with you and improve your product to replace their propriatory stuff rather then demanding that they open up their 'IP'.

And you know you probably don't want it. Most propriatory software is going to be crap and it is probably better working from scratch then try to peice together what some other company threw together.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 18:11 UTC (Sun) by mmarq (guest, #2332) [Link]

"" Also a 'Free Firmware' project may be interesting. Maybe determine what sort of requirements people have for their firmware and make componates so that it's financially attractive to open up enough in order to use the 'Free Firmware' then try to go it on their own.

The Linux developer-style approach is to make it attractive for people to work with you and improve your product to replace their propriatory stuff rather then demanding that they open up their 'IP'. ""

Two problems i belive will rise up, and those would be patents and restrictions like in DRM. But those, imho, can be adressed by:

.- GPLv3 inherently stating that patents are non-fee for a particular project covered,... more so if there is a NDA covering some underlaying sensitive details...

.- Since Linux already deals with DRM implementations, the solution would be to provide "mechanism" to turn it off, at user discrection, and addressing that way the spirit of the GPLv3 now proposed for discussion.

The message cryed out loud, imho i belive it is already in that spirit, is that *Vendors Have Great Advantages*:

.- quality of code

.- time to market (under some conditions of "volume" effort)

.- financial gains ( that could be significative)

.- Since firmware and drivers parts are or can be in most applications bynary BOLBs, there could be "code reutilization", making Linux the preferential platform for firmware and drivers development.

Advantages for FLOSS would be everything that GPLv3 now tryes to deliver, and more!...

NDAs are not all the same

Posted Mar 5, 2007 3:50 UTC (Mon) by gdt (subscriber, #6284) [Link]

I would not sign a NDA myself

Surely it would depend what the NDA covers? It is reasonable for a manufacturer to require an NDA for a product prior to its release. This solves a whole lot of legal problems for the manufacturer (such as potential breaches of "bait and switch" consumer protection laws and "market information" securities laws).

Even manufacturers who are willing to share device specifications and source code often require a NDA on unrelated fields, such as corporate strategy, marketing plans, and so on. Since these are not usually necessary for GPLed source code, agreeing to this sort of NDA doesn't have any harm.

Manufacturers are not going to give up NDAs if the manufacturer allows contact with their engineers. What we want is the right sort of NDA. Not "everything is secret forever" but "device specifications and derived material can be revealed after the launch of the product".

NDAs are not all the same

Posted Mar 5, 2007 15:57 UTC (Mon) by mmarq (guest, #2332) [Link]

So what is needed is for OSDL, Linux Foundation and FSF( complicated here ? ) to write a NDA specification, establishing a legal and technical agreement, about clauses and possible interfaces included, with the hardware manufactors.

Everybody will win because Linux is a development platform *per excelence*. Too good to be ignored, and too heavy weight a software industry expertize and commercial power for not being considered.

It would be very nice to include FSF also, for its prestige and influence in the GCC tools, only if they could be more flexible. This "Driver" issue could have been resolved many years ago with more flexibility and mutual understanding. Now there is another excelent oportunity.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 4, 2007 21:59 UTC (Sun) by zlynx (subscriber, #2285) [Link]

The FSF calling black boxing "smoke and mirrors" is rather silly. Taken all the way, it includes:
- CPU microcode
- Every network controller
- Every SCSI controller
- Every SCSI hard disk, probably hard disks of all types
- Every CD/DVD +/- RW
- Anything with a FPGA

And then what if the vendor decides to move firmware functionality into their ASIC? Is that "smoke and mirrors" as well?

Ridiculous.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 5, 2007 11:30 UTC (Mon) by NigelK (guest, #42083) [Link]

Fresh from alienating software engineers, the FSF have now moved on to alienating hardware makers.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 5, 2007 12:15 UTC (Mon) by eru (subscriber, #2753) [Link]

Taken all the way, it includes: ...

Actually I think there is a clear border that can be used to delineate this issue without "taking it all the way": Is the black-box code running in the general-purpose CPU and its address space, or only in the device? The former is the case of binary-only kernel modules, with their attendant stability and security issues, the latter is firmware in EPROM or binary blobs that are loaded into the device at initialization, and act only within its confines. I think the second is not a problem as long as the full programing interface of the device+blob combination is disclosed, and distribution of the blob is not restricted.

To see how the difference matters, consider what happens if you upgrade your kernel to one with major modifications (a "Linux 2.8" maybe). The binary-only kernel module stops working, and your device turns into a doorstop unless the manufacturer is around and willing to create a new version. The device with the blob but a documented interface can have a ported open-source driver in the new kernel, even without vendor co-operation.

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 5, 2007 17:24 UTC (Mon) by khim (subscriber, #9252) [Link]

To see how the difference is minimal consider "optimized" firmware is DVD-ROM which sees DVD-Video disk and immediately switches to 1x speed (since you know, you don't need anything more for DVD-Video) and also refuses to work with DVDs from wrong region (since you are not supposed to do this anyway). Or HDD which stops working if it detect suspicious activity (revoked Video files, for example). It's easy to put such code it pretty much any part of computer. And it will be easier in the future (today HDD's firmware is 1-2MB is size; in the future it can be 1-2GB).

Sorry, but while the difference in address space makes sense from stability viewpoint it makes much smaller difference from freedom viewpoint. And FSF fights for freedom, not stability.

Now all examples cited above limit freedom of the user (yup - even CPU microcode and FPGA-based devices), but of course scope of this limitation is different: probably minimal with microcode (current CPU generation only: it's easy to imagine CPU where non-free microcode can be huge freedom problem) and biggest with CD/DVD +/- RW (again: current generation only; tomorrow it can be SCSI hard disk or network controller). Still the fact that we can not realistically achieve 100% freedom (I doubt HDD companies will be happy to publish firmware - that's biggest selling point for a lot of them) does not mean that we should stop trying. And also it does not make it Ok to shove everything to separate device (load this 64MB blog with god-knows-what to our network card and you can use 10KB 100% free driver - happy now?).

Free Software Foundation courts hardware vendors (Linux-Watch)

Posted Mar 6, 2007 13:46 UTC (Tue) by eru (subscriber, #2753) [Link]

To see how the difference is minimal consider "optimized" firmware is DVD-ROM which sees DVD-Video disk and immediately switches to 1x speed (since you know, you don't need anything more for DVD-Video) and also refuses to work with DVDs from wrong region [...]

Yes, that is unpleasant and user-hostile, but same kinds of restrictions can (and have been) implemented purely in hardware. (Example: consumer camcorders sold in Europe usually lack a video input socket even when similar models sold elsewhere have it, due to an obsolete protectionist customs rule). I'm not sure what the FSF can do here except educate people to boycot such crap devices. The DVD-ROM makers are unlikely to ever support reprogramming the devices.

On the other hand, general-purpose computers are meant to be reprogrammed, so it is important to ensure that stays fully possible. And I think it is a more winnable fight.

And also it does not make it Ok to shove everything to separate device (load this 64MB blog with god-knows-what to our network card and you can use 10KB 100% free driver - happy now?).

Yes, if the network card works. It does not make much difference if the 64Mb blob is in the device EPROM, or loaded into the device by the OS at boot time, provided the blob is available to all OS writers and can be freely distributed with the OS. (Obviously you would not want to use such a card in an embedded device, but on modern desktops and servers 64Mb is peanuts).

More what-ifs

Posted Mar 5, 2007 14:15 UTC (Mon) by man_ls (subscriber, #15091) [Link]

What if your computer contained a copy of Linux on ROM? Would it be free software then? What if it contained a copy of Windows?

It only matters if the software is user-serviceable. I don't think there is any ambigüity there.

Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds