Slashdot Mirror


Debian Removes Binary-only Firmware From Kernel

mbanck writes "The Debian Linux kernel maintainer has announced that he will remove firmware from GPL'd drivers which obviously lack source code in its preferred form (i.e. something more appropriate than a hexdump inside a char[]), in accordance with the release manager's decision. The alternatives are user-space loading of the firmware via hotplug's request_firmware() API or making the vendors aware of the issue. How do the other distributions handle this?"

11 of 121 comments (clear)

  1. This only hurts Debian. by mind21_98 · · Score: 1, Informative

    Although removing any possible licensing issues is a good thing, this will only hurt Debian. People simply expect their hardware to work, without having to jump through massive hoops. Requiring full source code only makes certain hardware harder to get working, and does not contribute to the adoption of Linux. Now that RedHat is mostly focusing on the enterprise market, there has to be another distro to take its place (Fedora is still in its infancy), and Debian will soon not become that distro.

    1. Re:This only hurts Debian. by squiggleslash · · Score: 3, Informative
      Doesn't this limit the programing languages that can be used to develop the code? I mean you can only include a finite number of compilers.
      Not really, you ONLY have to include source. You're not forbidden from including a binary (or "compiled version") in addition to the source, and indeed GCC, which uses a Bison generated grammar file, is one example of this - it comes with both source and post-Bisoned file so that you don't have problems should you not already have Bison.

      Debian would be happy with firmware updaters as long as the source to the firmware is available and code to compile the firmware and update the module's binary with that firmware is available. The problem, at the moment, is that rarely is the firmware available.

      --
      You are not alone. This is not normal. None of this is normal.
    2. Re:This only hurts Debian. by hummassa · · Score: 2, Informative

      Yeah, we Debianers usually screen our hardware before shopping...

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  2. tg3 Driver Affected by semaj · · Score: 5, Informative

    One of the drivers I use - the tg3 Gigabit Ethernet driver - is affected by this. The driver currently contains non-free firmware that is uploaded to the card in a couple of cases.

    An interesting thing about this driver is that it appears to work (to the extent that most people need) without the firmware. There has been some attempt on the linux-kernel mailing list to make the firmware part of the kernel optional. That way Debian can just turn that option off and presumably remove the associated firmware from their kernel. Anyone who needs the bug fixes/features provided by the firmware can use a non-Debian kernel.

    Not everyone's in favour of this idea though. There's more about it on the mailing list if anyone's interested.

    --
    Meep meep
  3. Re:What if that's the "best" way by Bronster · · Score: 2, Informative

    GCC, for example, requires bison to compile it. GCC ships with both the source grammer files and the compiled grammer file.

    Which is fine. There's nothing wrong with shipping the output file so long as the original source is shipped as well. Of course it's still not strictly GPL compatible if you can't freely obtain the entire toolchain required to build it (and have that provided on request) but such is life.

    Most people don't need to use the source, but if there's a bug you need to fix then that source needs to be available so you can fix it.

  4. Re:Let me see if I've got this... by luferbu · · Score: 5, Informative

    This has been already discused in the past, in fact, Richard Stallman published an article where he states that the Linux kernel is in violation with the GPL because of the firmware included without source code, see the article at here

  5. Re:Let me see if I've got this... by squiggleslash · · Score: 3, Informative
    The GPL offers no restrictions on what code you can put into the GPL'd project. If you were putting the kernel into a non-GPL product, then that's definitely a GPL violation, but not the other way around. So, if you are allowed to put the firmware binary code into the kernel, through fair-use, a license, whatever, then it's fine to do that. If you're not licensed to do it somehow you're (to use the popular vernacular) stealing. This is probably where the dynamic-pulling of the firmware comes in. If you own the device in question, and pull the firmware right out of it, there's no question that's your right as owner of the device.
    Erm, probably not.

    If you redistribute a GPL'd program that you yourself do not hold the rights to, you must release full source code. You can't say "Well, I never had source code to this module that I added, therefore I'm not releasing the source for that", it has to be everything.

    The reason I say "you yourself do not hold the rights to" is that a copyright holder, obviously, is not bound by their own license. But you and I and even Linus these days are bound by the GPL wrt Linux, because the copyright on Linux is shared amongst a large number of parties.

    Now, everything thus hinges on the redistribution part. If an end user grabs a module with a binary portion, inserts it into their kernel, and limits their use of it to that, then that's fine.

    If I find all the copyright holders to Linux, buy the rights, and then release Squigglix under the GPL, with a binary portion, then that's fine too, because I'm not bound by the GPL.

    If someone tries to redistribute Squigglix under the GPL (ie they're not asking me first, they're just looking at the COPYING file and agreeing to the conditions), then they're violating the GPL, because they're not releasing full source.

    If someone tries to redistribute Squigglix with my permission (ie they've asked me first, or there's a thing tacked on to the COPYING file allowing the source to be withheld for code I passed on to them in binary form only), then they're not violating the license, because the modified license allows them to do so.

    If someone tries to redistribute Squigglix under the GPL (ie they're not asking me first, they're just looking at the COPYING file and agreeing to the conditions), but before they do they remove the binary-only portion, then they're respecting the GPL, because they're not releasing full source.

    The GPL is very clear about this: If you redistribute and are doing so only because the GPL allows you to, you must include source. If you don't include source, even if you never had it you are violating that license.

    Linus's COPYING file does include a get-out in that user-land software does not have to be GPL'd, which is why Debian's saying it's ok to have a firmware binary that's loaded by a user-land program. But the kernel itself really is GPL, and it has to be distributed under the normal conditions of the GPL. Anyone currently shipping those drivers that include substantial binary-only source-unavailable portions, such as those with binary-only firmware code, is violating the license if they're shipping it with the rest of Linux.

    --
    You are not alone. This is not normal. None of this is normal.
  6. that decision strikes me as bad... by hak1du · · Score: 1, Informative

    Firmware is not "linked" with the kernel driver. Why would it be a problem for the kernel driver to load it?

    Sorry, but I think this is a bad decision. Yes, it would be nice to have sources for more firmware available, but that doesn't strike me as a battle worth fighting right now and it doesn't strike me as something that the GPL requires. And Debian hardware support is iffy enough as it is relative to other distributions.

  7. Re:Debian developers discussing dropping non-free by tordia · · Score: 2, Informative
    In fact the Debian developers held a vote on this very topic (dropping non-free). The vote would have needed a two-thirds majority to pass.

    It didn't even garner a simple majority.

    Even if the vote passed you still would have been able to install non-free software on your debian machine, you just wouldn't be able to install it from debian or a debian mirror. Kind of like the blackdown java packages right now.

    --

    Frogs are primitive animals - so the occasional extra toe is not that unusual. But this is very unusual.

  8. Re:To be that exacting... by Bystander · · Score: 2, Informative

    You need to learn about the various types of intellectual property recognized in law. Product names can be protected through trademarks, specific expressions of ideas can be protected through copyrights, and ideas themselves can only be protected through patents. Each type of intellectual property has its own set of laws and regulations which govern it. Issues involving the GPL fall under the category of copyrights.

    In your comment you use the word information, which by itself has no legal meaning. Assuming you intended to ask about the expression of a program through its code, or an artistic expression of a corporate logo, then the answer is that the redistribution of such expressions can be restricted through copyrights. The owner of the copyright gets to decide conditions under which their work may be distributed to others. If anyone fails to honor those conditions, they have no legal right to continue distributing the copyrighted material. The GPL establishes a simple set of conditions under which software covered by a GPL license may be distributed, and everyone has the option of either abiding by those conditions or not incorporating software covered by the GPL in their products.

    Debian's position is that including software components in the kernel without making available their source code violates the GPL requirements of other components in the kernel. Given this interpretation, their only available options are to stop distributing the GPL parts of the kernel, or stop distributing the non-GPL-compliant components. Not surprisingly, Debian has decided to strictly adhere to GPL requirements with regards to the kernel it distributes.

  9. Re:To be that exacting... by Bystander · · Score: 2, Informative

    It's hard to get what your point is when you consistently blur the real distinctions between the different types of intellectual property. You said "While pentium is a trademark, the graphic logo is copyrighted. Neither is free to modify and redistribute and thus a violation of 'free software' "

    For one thing, the word "Pentium" and the Intel graphic logo are both trademarks for Intel. No software license, especially the GPL, gives anyone the right to modify or use someone else's trademark. Also, there is no restriction on redistribution of a trademark, so long as it is made clear who owns the trademark and there is no confusion elicited in viewers about what it is representing. Your example plainly does not show an example of a violation of the GPL.

    Second, there is no single definition of the term "free software" as you use it. There are only specific licenses, each of which has its own conditions, which fall under the wide umbrella of free and/or open source software. Before you can discuss a violation, you have to specify exactly which license you believe is being violated.

    Third, you ignore the plain difference between a binary file representing executable code (even if it runs only on an embedded processor within a device) and a binary file representing a static image. The binary executable represents a program, which during the course of its execution may effect the state of the computer system within which it runs. It will likely effect the state of the kernel which contains the driver which accesses the firmware. Without the natural expression of this firmware, its source code, it is difficult to really understand what those effects will be under all conditions. The static image file would have no indeterminate effects on the system. Contrary to your unsupported assertion otherwise, since the graphic image is fully described by the binary contents of the file, that file can be considered a definitive source format.