Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Proprietary Blobs and the Pursuit of a Free Kernel

Posted by Soulskill on Fri Nov 28, 2008 10:09 PM
from the free-as-in-beerspeech dept.
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?"
+ -
story

Related Stories

[+] Hardware: Atheros Hardware Abstraction Layer Source Is Released 117 comments
chrb writes "With the recent discussion here on proprietary blobs in the Linux kernel, it's nice to see that today Sam Leffler has released the source for the Atheros Hardware Abstraction Layer under the ISC license, which is both GPL and BSD compatible. The Atheros chipset is used in many laptops, so this is another important step towards running a completely free distribution."
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • 1 Answer: (Score:5, Insightful)

    by Anonymous Coward on Friday November 28 2008, @10:12PM (#25921127)

    Learn from the OpenBSD team

  • by QuasiEvil (74356) on Friday November 28 2008, @10:21PM (#25921179)

    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.

    • 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.

      • Mod parent up (Score:5, Insightful)

        by Kludge (13653) on Friday November 28 2008, @11:42PM (#25921723)

        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.

        • Is it any more free than having a distro that's free but not having the freedom to run it on your hardware because it's completely useless?

          Having a distro like that serves at least one practical purpose: I can use it to evaluate a given set of hardware for compatibility. That can inform future purchasing decisions.

          For instance, having used Linux, I now know that I will never knowingly buy a Broadcom wireless card -- or, very likely, anything from Broadcom -- even for devices I don't plan to run Linux on.

          This is just taking that one step further.

          it's not like I could buy a complete set of open hardware

          Actually, under certain, limited circumstances, you can. I believe the OpenMoko Freerunner was such a device.

          • by Neoprofin (871029) on Saturday November 29 2008, @03:51AM (#25923037)
            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.
            • by impaledsunset (1337701) on Saturday November 29 2008, @07:35AM (#25923979)

              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.

    • by houstonbofh (602064) on Friday November 28 2008, @10:39PM (#25921315)
      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...
    • 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.

    • If the complicated parts of the drivers that they don't want us to know about were in ROM instead of binary blobs, and the drivers were very simple then it would solve the problem, because anyone could write drivers for whatever OS they want. As it is, you have to be using the operating systems that Nvidea allows you to use. I prefer not to have to wait around for device manufacturers to decide we should be able to use their hardware on a specific system.
      • by Draek (916851) on Friday November 28 2008, @11:29PM (#25921649)

        -2: The Freedom to run any hardware, for any purpose

        That has no business as a 'software' freedom, since it explictly affects only hardware. Good 0 Freedom for a Free Hardware Manifesto, though.

        -1: The Freedom to run proprietary software, to run any hardware.

        Except that propietary software conflicts with every other freedom, and as such the manifesto would contradict itself.

        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.

        Who? Stallman doesn't, he thinks running propietary software is inmoral, but he's fighting that the way a true freedom fighter would: by convincing you of it with arguments, not by force. You're still free to make an entire distro centered around NVidia's propietary drivers, you're still free to use GCC to compile propietary software, and you're still free to use GNU Emacs to write it. Your freedom hasn't been affected, you're just being warned about the consequences of doing so.

        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.

        Yeah, so? Freedom doesn't mean "everybody plays nice with my own wishes". They allow propietary drivers already, no reason why they should incentive them.

        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?

        How does this counter freedom? the information is not being censored, it is not being eliminated, it is simply being, well, not advertised.

        Stallman can't see the forest from the trees.

        Funny, but that's exactly what I'd say about you. You're not only willing to diminish your own freedom for a simple sound card, but you demand (not ask, demand) the help of Free Software developers in doing so.

        • by starm_ (573321) on Saturday November 29 2008, @02:01AM (#25922505)

          Given that an operating system consists mostly of a bunch of drivers attached together with a kernel, there are good reasons to prevent distribution of closed drivers mixed with GPL ones. I don't think it is legal, not without stretching the meaning of the GPL.

          Consider the following scenario:

          Intel develops new closed undocumented architecture with a 16 core cpu. Similarly to current network or video cards, you need a proprietary driver to enable the super accelerated multicoreness. In order to allow the use of the newer faster cpu's, Linux vendors do what they did with the other proprietary drivers, label these drivers as "not part of the kernel" put them in a wrapper and ship their version of Linux with the proprietary drivers which, for now, intel is giving away for free as a binary blob. For a while everybody is happy and content. The new 16 cores chips becomes the norm. There are even 32 core chips on the market and the 64 cores chips are soon to be released all of which rely on proprietary drivers.

          Suddenly, we hear that a large company, Lintelsoft, started by ex MS executives, makes a deal with Intel, a very lucrative deal for Intel, to license the drivers. Intel then says they won't give away the drivers anymore but you are free to buy the brand new Lintel Linux distribution. This distribution, which sells for 699$ a piece is all GPL'd except for those drivers that have become so prevalent that you need them in order for computers to run at a reasonable speed.

          Open source programmers scramble to write free replacement drivers that work on their Gnubian distribution but only manage to make drivers that can run the multi core cpu's at 1/20th the speed as Intel won't release documentation or specifications. Linux is rendered mostly useless except for the Lintel distro, (which is also available for free and with sourcecode as Lintelora, excluding the proprietary driver sources of course) You can always plug in the Gnubian drivers in the free Lintelora project and get a working computer but it will only run at 1/20th the speed of the commercial 699$ a pop version and isn't powerful enough to run the new Mozilaurus browser smoothly.

          In this scenario, Lintelsoft would have effectively stolen Linux from the open source community, making profit with other people's source code and breaking all versions that are free.

          How can we let anyone close up an obviously derived work based on some wrappers?

          Notice that, even today I sometimes need to pay to get a fully working Linux from certain vendors, like Mandriva. (if i don't pay, 3d acceleration wont work.) I expect that kind of twisting of the law by commercial vendors. It surprises me that even Ubuntu is including proprietary video drivers nowadays.

          What's worst is that legally in order to maintain copyrights you need to make reasonable efforts at protecting those rights. Legally if the open source community waits until the binary drivers become problematic before acting, proprietary vendors will be able to argue legitimately that closed source code has been allowed in the kernel by the open source community for a long time now: The law says that you are not legally allowed to suddenly change your mind about interpretations to suit current needs thus the open source community would be screwed.

  • holy war batman! (Score:5, Insightful)

    by girlintraining (1395911) on Friday November 28 2008, @10:24PM (#25921199)

    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).

  • 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

    • by Chandon Seldon (43083) on Friday November 28 2008, @11:00PM (#25921469) Homepage

      Sometimes there are simply no good alternatives to binary blobs available.

      If that's true, then you can't accomplish your task using only free software. You apparently care more about "Overscan adjustment for dvi to hdmi adapters" than about using 100% free software - and that's your choice - but not everyone agrees with you. Even for people who do agree with you, there's still some value in *knowing* when you're using binary blobs.

  • by trims (10010) on Friday November 28 2008, @10:37PM (#25921295) Homepage

    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

      • Except that, by saying "you can't talk about proprietary software", you're taking away freedom. It's called censorship.

        Proponents of free / libre software shouldn't act like they're afraid of proprietary software. It just makes us look stupid and weak. The grandparent poster is exactly right. It's the same with the GPLv2 vs. GPLv3 wars - GPLv3 is "necessary" because of TiVO? Because of lard-arses who want to watch TV? Fuck that.

        Freedom includes freedom of speech. If a free distro wants to include instructions on how to install a proprietary OS alongside it, that doesn't make them suddenly "non-free". Or are we now against "information wants to be free" this week?

        • by MrHanky (141717) on Saturday November 29 2008, @08:47AM (#25924231) Homepage Journal

          I can't believe a totally illogical comment like yours is "+5, insightful". There's no censorship to not recommending a distro as "free" software when said distro itself recommends non-free software. It's only a matter of policy for whom and what the FSF wants to recommend. That's no more censorship than if Amnesty stated they would not recommend a political party that recommends torture. OH BUT THAT'S AN ATTACK ON FREEDUM OF SPEACH! No, it's not, idiot.

          Fuck, this site is so full of morons that it makes me sick.

  • by foom (29095) on Friday November 28 2008, @10:46PM (#25921359) Homepage

    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?

  • by sunderland56 (621843) on Friday November 28 2008, @10:48PM (#25921375)
    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.
  • by stox (131684) on Friday November 28 2008, @11:37PM (#25921693) Homepage

    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?