Proprietary Blobs and the Pursuit of a Free Kernel
jammag writes "Ever since the GNewSense team pointed out that the Linux kernel contains proprietary firmware blobs, the question of whether a given distro is truly free software has gotten messier, notes Linux pundit Bruce Byfield. The FSF changed the definition of a free distribution, and a search for how to respond to this new definition is now well underway. Who wins and what solutions are implemented could have a major effect on the future of free and open source software. Debian has its own solution (by allowing users to choose their download), as do Ubuntu and Fedora (they include the offending firmware by default but make it possible to remove it). Meanwhile, the debate over firmware rages on. What resolves this issue?"
Learn from the OpenBSD team
Good Old Ass Kickin' Contest. -Then let Chuck Norris Decide.
John Walsh once found me while looking for some other kid. He was not amused.
Once again, the FSF takes a noble goal to a loony extreme.
If the device manufacturers had put the firmware in ROM (flash/EEPROM/whatever) attached to the peripheral rather than downloaded by the driver, does that really change anything? You haven't given the user any more or less freedom; you've just redistributed what lives where and probably increased hardware costs (and made firmware upgrades less simple). However, then those releases could support the device and be fully "free" according to this new FSF decision.
Quite frankly, I'm a pragmatist who admires all the great freedom in Linux (and that's why I choose to use it) and supports hardware manufacturers who release their specs (hence the reason I now have an ATI graphics card). That said, at the end of the day, I want a distro that makes my hardware work without a ton of fucking around because somebody philosophically disagreed with a driver. I also respect those who would rather not use such things.
Therefore, my hope is that the Ubuntu/Fedora will not change their approach. This is one of those dealbreakers on a distro for me.
Oh god, here we go again with another sequel to "Defining Free Software: The Neverending Story"...
It's just like people who argue the United States is a democracy. Then some joker has to stand up and correct them and say it's actually a federated republic. And then someone has to mention that it's a capitalistic federated republic. And then the grizzly-haired guy in back stands up and he says it can't be capitalism because we've got things like the Security and Exchange Commission, and rules and regulations, and the FCC, and the FDA, and and and -- why my god there's an awful lot of socialism here. And then someone has to point out that what we're really talking about is whether something is mostly a free market, because nothing out there is truly one thing or another-- And then the liberal arts major stands up and everybody laughs at him before he can say anything.
I'm going out for a smoke... I already know how this ends. Mr. Rogers wins (in a blood stained sweater).
#fuckbeta #iamslashdot #dicemustdie
When you let the FSF define what Freedom is, you've already lost it.
"When you see a unixer brainwashed beyond saving, kick him out of the door." - Xah Lee
I'm inclined to agree, but, apparently, there are hardware manufacturers who sue anyone who distributes their binary blobs without permission, but are quite happy to give Ubuntu and Debian and Redhat permission.. Freedom is not having to ask permission.
How we know is more important than what we know.
Sometimes there are simply no good alternatives to binary blobs available. Case in point, the nvidia closed source graphics drivers. As it stands nvidia currently produce the best graphics drivers available for linux hands down. The intel open source drivers don't even come close and both open source and closed source ATI drivers are a joke.
The nvidia driver is the only linux graphics driver which supports:
a) The full opengl spec, in hardware. The intel drivers fall back to software for some opengl calls and don't support frame buffer objects at all.
b) A proper memory manager which enables, among other things, framebuffer objects and true redirected direct rendering, none of this AIGLX bullshit.
c) Any kind of opengl or compositing on multiple monitors
d) Reliable video and opengl vsync
e) Working video decode acceleration for modern high definition h264 video.
f) Proper colour/gamma adjustment for the X screen
g) Overscan adjustment for dvi to hdmi adapters
It also has by far the fastest opengl performance, is the most stable and just generally works the best out of all the linux graphics drivers. If you want decent graphics performance on linux, forget the open source drivers, go with nvidia. I'm sure anybody who has struggled getting dual monitors to work properly with any other driver will agree with me.
I know this might be a hit to my karma, but one area in which open source really isn't up to par is graphics drivers. I'd love good open source drivers for display hardware as much as anybody but for the moment nvidia's closed source drivers just wipe the floor with everything else. If you're going to complain to anybody, complain to ATI for not putting enough effort into their open source driver, although recently this has been improving with additions like DRI2 and GEM.
So before becoming evangelical and denouncing closed source modules as evil, try improving the open source modules so that they come close to the same stability and functionality.
Sam
This is how the loudness war is killing music.
And as soon as anyone cares what the fascist software foundation says, we'll let you know. Seriously, why do those cranks get airtime? You want free? Try digging back to our time, comp.unix.sources. No religion, no restrictions, no 'freedom' with a stack of rules. We just chipped in code and sent it around to share. It's miserable how they have hijacked the word "free."
I've been watching the non-free blobs issue for awhile (particularly over here at Sun, where in JDK we call them "plugs"), and it's a good discussion to have.
However, looking at the new "Free Distro Guidelines" above, I'm struck by a particular section which seems extreme:
A free system distribution must not assist users in obtaining any nonfree information for practical use, or encourage them to do so. There should be no repositories or ports for nonfree software. Programs in the system should not suggest installing nonfree plugins, documentation, and so on.
and later:
All the documentation in a free system distribution must be released under an appropriate free license. Additionally, it must take care not to recommend nonfree software. [...] What would be unacceptable is for the documentation to give people instructions for installing a nonfree program on the system, or mention conveniences they might gain by doing so.
That's just ludicrous. Frankly, it's just a (very) small step away from requiring that you don't (or can't) run any non-free app on your "free" OS. That single clause has just blown any notion of a "free" (in any sense of trying to protect the end-user's freedoms, which is the FSF's major ideological foundation) distribution. I don't know who the manic that wrote that section is, but it's going to cause immeasurable harm to the Free Software movement.
If we go by that clause, NONE of the distros are free. You'd have to cut out a huge chunk of the Ubuntu distro, remove the entire non-free Debian archive, and I'm not even sure how to get it out of Fedora.
Honestly, the addition of those clauses take it from an entirely reasonable "Please use Free Software, and this distro contains only Free Softare" to a "Free Software! Free Software! (la-la-la there-is-no-non-Free la-la-la)" freakazoidal world.
The rest of the proposal is OK, with minor quibbles, but that clause is a show-stopper. Get rid of it right away. Or lose any credibility that the FSF has.
-Erik
There are always four sides to every story: your side, their side, the truth, and what really happened.
Tell the FOSS purists/zealots to shut the hell up already. Guess what? You will have to deal with proprietary something-or-other all the time. Get used to it and quit bitching. Your OS is damn near completely free, so stop complaining if that last tiny tidbit isn't completely open. Oh, and quit listening to Stallman. He's a hairy hippie nutcase.
No doubt... Way back in the day, nvidia was the first graphic card company to support 3d for Linux. That have done a very good job supporting Linux over the years. But now that are the devil because they have secret code? I would rather have a solid card with a binary blob than a "free" card that stinks. Go ahead and piss off the users that have nvidia cards and don't want to buy another one right now. Go ahead and piss of companies that supported Linux for years. You don't need them up in your ivory tower...
Other than die-hard believers here on Slashdot, to the rest of the world, what percentage of the population cares of their software gets the Stallman stamp of approval, and what percentage just wants their software to work?
Now I understand that having OSS drivers helps the kernel devs troubleshoot those drivers, and keep them up to date with constantly changing ABIs/APIs. I prefer free software, but I won't be a zealot about it. I am quite comfortable with proprietary software if it is the best solution for my need.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Translation: If I don't personally need something right this minute to accomplish my short term goals, nobody needs it and anyone who wants it is crazy.
-- The act of censorship is always worse than whatever is being censored. Always.
I've always wondered why I, as a Freedom-loving-user, should prefer a device which has its non-free firmware embedded in a ROM or Flash chip rather than as a file on a CD or FTP server with my linux distribution.
Because, let's be clear: *where* the non-free firmware is being stored is usually the choice you have.
100% Free hardware would clearly be better, but there's precious little of that around...
So: why is it evil to have the firmware distributed on CD? Why should I care even one itsy-little-bit where it's stored?
and what loony extreme would that be? moral/logical consistency?
a "free distribution" by definition needs to be "free" in the FOSS sense. they're simply modifying the definition to elaborate on an issue that had been overlooked up until now.
no one is forcing you to use a free distribution. and the FSF hasn't condemned the Fedora project for taking the pragmatic approach. but it would hypocritical for them to overlook the issue of proprietary firmware blobs in their definition of free distributions after the issue has been raised by members of the community.
i'm a pragmatist too. i run Windows XP because the programs i use for work are Windows-only. but i'm not going to bitch about FSF not including my Windows XP Professional distribution in their definition of a free system just because someone "philosophically disagreed" with an OS.
TFA doesn't define what they mean by "firmware blob in the kernel"....
If they mean a piece of firmware for download to a specific hardware device, then that is rarely in the *kernel*. Usually it is held in a separate file on disk, that is downloaded to the device at boot time. If it is in a separate file, the binary firmware blob is then not a part of the kernel, so the point is moot. The little bit of loading code that opens and reads the file and blasts it to the hardware is part of the kernel - and is most likely already part of the open source code.
If they mean a part of the kernel with no open source, then it is kernel code and please stop calling it firmware.
I propose two new software freedoms:
-2: The Freedom to run any hardware, for any purpose
-1: The Freedom to run proprietary software, to run any hardware.
I don't understand why people don't want others have the freedom to install proprietary software on Linux system. I use both Linux and Windows. I enjoy running the latest and greatest games with the fastest video and sound cards.
I want robust support from NVIDIA and Creative. If Stallman had his way, there would be a huge disincentive to have working drivers. I require that my computer works with the hardware I bought for it.
I'm sick and tired of misguided free software enthusiasts applying free software principals to hardware. Yes, I think that as an individual tinkerer I should have the freedom to study and hack hardware that he owns, but hardware is not software. Hardware is a tangible thing. The structure of our laws protect tangible things more fiercely than ephemeral things, like software and ideas.
One of the original purpose of Free Software was to liberate hardware from the limitations of its software by protecting the freedom of the user.
However, Stallman's philosophy that "A free system distribution must not assist users in obtaining any nonfree information for practical use, or encourage them to do so" is ridiculous. Why should this be so? How does this promote freedom?
This is my computer, and it is my choice.
Stallman can't see the forest from the trees.
From http://psr.tumblr.com/post/57576525/two-new-software-freedoms
The solution to the proprietary driver problem is obvious: Vendors should put whatever code they deem to be protected and private in ROM on the device, and then publish a spec to talk to that driver that can be completely open. This splits the driver in half: The public part that can be published in C and comprises all the necessary interfaces, and the private portion that can hide hardware functionality and reside on the device.
This would have been a problem back when there were CPUs other than Intel, but that's just not the case anymore. Any CPU can emulate an X86 to drive devices if necessary. At this point, X86 is a universal virtual machine.
Yes because software internal to the kernel should be more trusted and open. These proprietary blobs are not sand-boxed, remember. Talking about what's best will make people aware of their options and will encourage a company to open their code, especially for peripherals where the profit is more in hardware than secrets.
Well the GPL has always had a network clause and your scenario is like that.
You're a must-work-now kind of pragmatist, not a long-term pragmatist.
I very much doubt that. If you've got a bug can you feasibly fix it in a proprietary blob? Will you go years without being to run that proprietary blob on a 64-bit platform? Can a government ensure their sovereignty and verify that the software behaves correctly? Can you improve the peripheral and integrate it better with your system? Even if you don't know how to program do you think that no one else in the world wants that? Proprietary blobs aren't the end of the world but they're not a good idea and it's ok to say so. It's great the FSF raise awareness about what scenarios you can and cannot achieve with these secret blobs. These people who call the FSF un-pragmatic really don't "admire all the great freedom in Linux".
No, not really. They're already not providing hardware specs, and that's about the worst they can do. Free software isn't about the "users", it's about the developers. Most free software is written by developers, because they need software to do something. If you don't like it, well... sucks to be you.
Ironically, the biggest whiners against "completely free" software are usually the people who contribute the least. They don't want to contribute or do any hard work, but they're more than happy to throw in their two cents on what they think should be done. Unfortunately for you, the people actually doing the "dirty work" disagree with you.
until you have the code for every PGA, the microcode for every processor, the schematics of every logic element. These all embody code of some sort. Where do you draw the line?
"To those who are overly cautious, everything is impossible. "
I agree w/ parent.
For me the issue is not, do I get the source code or not? Binary blobs are fine. If someone does not want to give the source that is OK w/ me.
But, if I do not have the right to hack it (whatever form it is) or do not have the right to redistribute my hack, then then it is not free and should not be included in a "free" distribution.
> I would rather have a solid card with a binary blob than a "free" card that stinks.
I'd personally choose that too, but in my experience the nvidia binary driver is everything but solid. On my two Linux systems with nvidia video cards, the nvidia driver is the number one thing that causes me trouble. Sure it works ok with typical "default" settings, but throw in a xinerama setup + S3 suspend support and you'll be faced with undocumented limitations, poor performance and wake up problems cause by the driver module. I have sent bug reports to nvidia about the issues I have had and never heard anything back.
I've never had problems with Xinerama and nVidia but yeah I suppose S3 could be problematic.
Personally I think I'll stick to Intel for the moment.
I'm not a gamer and as long as it handles KDE 4's compositing, then I'm happy.
Their drivers are stunning and they are completely open.
2.6.28 and 2.6.29 have some really neat stuff for Intel cards.
"So you gave Redhat permission to distribute this data?" "Yes." "And were you aware it was being distributed under the GPL?" "Uhh..." "And that the GPL allows further modification and redistribution so long as it remains under that license?" "..." "Case dismissed!"
If granting distribution rights to someone also meant giving them the right to relicense what they were distributing, the GPL would be defunct.
-1 Uncomfortable Truth
I'm a little lost since I'm not sure how you mean this quote. Exactly who said that quote and where? I didn't find that quote in the grandparent post to which you followed up nor do I recall the FSF ever arguing this. To the contrary, they talk about proprietary software all the time: the problems it poses for society, the conflict between what schools ought to be doing and the message proprietary software sends instead, how to go about working for practical replacements to proprietary software so it isn't a problem (as they've done so many times by encouraging free software replacements or developing and distributing free software replacements directly).
If you're trying to get at some absolutist argument about freedom (so the quote isn't to be taken as someone's direct words but instead a concept) it won't work because some freedoms conflict and you need restrictions on some freedoms to preserve other more important freedoms. Again, I don't recall anyone ever advocating that one can't talk about software freedom outside of very restrictive circumstances (the FSF generally doesn't do this in its works so as to avoid lending legitimacy to proprietary software, but this is highly dependent on context). Restricting some freedoms to preserve other freedoms is an argument FSF speakers have made in talks which I'll try to summarize: we value pedestrians more highly than vehicle drivers so we restrict drivers from driving anywhere they want at any speed. We make them use streets, obey speed limits, and stop at intersections so pedestrians can cross. In the free software community the FSF wrote the GPL to restrict licensing of derivatives in order to preserve the freedoms to run, inspect, share, and modify for all computer users.
Tivoization is a real and present threat to software freedom. So the FSF improved the GPL and included language which nullifies that threat. The same for the threat posed by the Microsoft-Novell patent deal. Even the way in which Bittorrent distributes software was not well-addressed in GPLv2 so it was better handled in GPLv3. It's right and proper that when you're working to preserve software freedom you react to problems large and small as they arise. I'm guessing GPLv4 will be more of the same: reacting to dangers to software freedom, improving language to allow what may be confused for unintentional copyright infringement (ala Bittorrent where it's possible to inadvertantly distribute binaries without complete corresponding source code or a written promise for said source code), and generally making it easier to correct mistakes and get on with sharing and improving.
Digital Citizen
There is a huge difference between cards with proprietary drivers, and cards with proprietary firmware. Drivers run in your OS, are OS dependent, and have significant security risk. Binary drivers are evil (like from Nvidia).
Proprietary firmware, on the other hand, does *not* run in the OS - it runs on the card. The binary firmware blob is OS independent - works for Windows, Mac, Linux, BSD, BeOS, whatever. It is CPU independent - the card generally doesn't care whether the host system is PowerPC, Intel, or ARM. While there is a small chance that firmware can be a security risk (since it gets DMA access to memory), it is far more remote than binary drivers.
There is no reason to object to a binary firmware blob - unless there is some stupid restriction on redistributing it (Hi, Broadcom). All it does is save money by replacing a ROM (RAM is cheaper than ROM) - and makes firmware upgrades trivial.
I can't believe FSF is objecting to this. Someone should do a parody of their new guidelines - with instructions on how to remove all PROMs from the motherboard, I/O cards, disk drives, etc. All those PROMs contain secret proprietary firmware. We can't be buying hardware with proprietary secrets now, can we?
Seriously, they should simply require binary firmware to be freely redistributable - giving you the same same freedom as if it was in ROM.
System must actively prevent you from installing non-free software to be considered free?
It's not DRM, it's FRM (free-rights management)!
There actually are a number of open source hardware projects around. Modern "FPGA" (field programmable gate array) devices are getting incredibly cheap, and can be used to design your own CPU.
(opencores.org is one such site)
It won't touch the latest state of the art, but hey..
Bavarian Purity Law of Rice Krispie Squares: Rice Krispies, Marshmallows, Butter, Vanilla.
I just don't see the difference between having to use certain software because of the demands of the hardware (Broadcom, most videocards) and having to use certain hardware because of the demands of the software (whatever can be supported using only completely open drivers). Either way you're sacrificing a degree of freedom in your choices, it's silly to think that one is somehow morally superior or more relevant.
Very limited circumstances, but to continue with the rest of my sentence: How is being forced to use the OpenMoko Freerunner, a phone which I had no interest in using superior than using whatever phone I want, but having to deal with software I may not agree with morally? Until all platforms are 100% open and firmware support is universal you'll always be cutting corner at one end or the other. I guess they are the FSF not the Freedom Foundation though, so I guess I've answered my own question about their stance.
It's miserable how they have hijacked the word "free."
Back then, the "free" was implied. We called it software and that you could use it as you would was assumed. It's only a generation of lawsuits that have pulled us back from the brink of progress.
Get off my lawn kid.
Help stamp out iliturcy.
These limits to your choices are not a sacrifice for your freedom. As freedom in your example means to be able to make your choices according to your requirements, not the availability of the choices that will fulfil all your requirements.
Here we are talking about freedom on another level, and it is how unrestrained you are in your work with the computer system, and the aim is to create a system in which you don't get any forced restrictions, which can be abused. Being disallowed or prevented to do these things with software is an example of a real freedom restriction.
The hardware is removing part of your freedom. At that moment you aren't affected much by this, as neither this is abused, nor it is limiting anything important that you could do. Still, in the long term, if the issue is overlooked, it might lead to many trouble. And it is already creating issues with creating free systems. So doing something about the issue is good in the end.
It doesn't mean restricting you from using the said hardware, just putting this hardware at a little disadvantage, which will draw the line on what is acceptable, and will push the things in the direction that you get more freedom with the hardware in the future.
The aim to create a free phone is also a step in the right direction. While not really that usable, and therefore not helping anyone, it is taking us in the right direction.
I agree that the BIOS must be free. It runs on the host CPU, and malware/spyware in the BIOS can do just about anything - especially with virtual machine technology. I am glad that FSF is insisting on open BIOS.
However, we are talking about *device* firmware here. You know, like inside your disk drive or USB wireless stick. Are they going to insist that their mice and keyboards have open firmware? Yes, open/free hardware is a worthy project, but it really should not try to piggy back on free *software*.