I heard Richard Stallman say that Ubuntu contains non-free blobs. Why does it have such blobs and what functions do these non-free blobs and system components do that free software can't? Does Canonical include these to keep control of Ubuntu project?

Are there any distros that don't include such non-free firmware blobs by default?


Stallman is correct. The Linux kernel includes several pieces of nonfree firmware for peripheral devices. This firmware is not stored on the device; it must be copied to the device every time it boots. Without the "blobs," the device can't be used. The advantage of downloading firmware to the device is that it allows updating the device by simply updating the firmware on the computer.

The problem with these "blobs" is that they are just that--a chunk of binary distributed by the manufacturer. The knowledge to run the devices is often kept proprietary. Richard Stallman and other free software advocates object to this because they are not provided the source code used to create the binaries. Most distributions, including the official Linux kernel, still ship these blobs because they vastly improve compatibility with devices (there's not an open alternative to them), and because it's "just" firmware.

(Side note: some people note that if you advocate for open firmware then you're only a couple steps away from advocating for open HDL diagrams for FPGAs, which would compromise companies' hardware intellectual property. However, note that firmware can still be malicious; for example, cellular modem firmware has unrestricted network access and pretty broad access to the system as well. That's one justification for the absolutist stance of "no non-free software.")

There are many distros that create "truly libre" Linux distributions. One of the more popular ones is called Trisquel. They're based on Ubuntu, and have a thorough deblobbing process. The FSF uses this distro when they want to hand out Live CDs. The one that I last heard of Stallman using is called GNewSense; it's based on Ubuntu and Debian. Anything that the FSF endorses will be totally blob-free.

  • 6
    Ubuntu has had an option to not install those binary components for some time now. During installation choose the "free software only" option and you get the benefit of running Ubuntu, while not using binary "blobs".
    – popey
    Dec 7 '13 at 19:23
  • What control do these firmware blobs have over the system? Can they connect to the internet? Can a backdoor be introduced by the vendor in these blobs?
    – Ufoguy
    Dec 8 '13 at 7:52
  • 3
    @popey I think this is not actually in regards to the Kernel but just software in the repos (proprietary drivers, codecs and so on)
    – ljrk
    Jul 25 '15 at 9:10
  • @larkey: Are you sure?
    – Ini
    Jan 19 '20 at 11:41
  • @Ini Yes, pretty sure. You won't be able to accidentally install proprietary stuff from the repos or additional kernel modules/fw. But the default Ubuntu kernel (actually even from upstream at kernel.org) still contains some non-GPL binary blobs. Linux-libre is a deblobbed kernel where even those bits are removed. Cf. en.m.wikipedia.org/wiki/Linux-libre
    – ljrk
    Jan 19 '20 at 22:59

Does Canonical include these to keep control of Ubuntu project?

I think this is demonstrably untrue. It is hardware that requires these blobs, and so it is the users who are in control of what hardware they purchase, not Canonical. If a user chooses to use only hardware that has free software drivers, then no blobs will be used.

Therefore it isn't anything to do with Canonical "keeping control", since users have the choice of using Ubuntu without using any binary blobs. This means that Canonical have no specific control in this area that they could exert anyway.

The blobs are only shipped for the convenience of users who have already made a non-free hardware choice.

(Disclosure: I work for Canonical. This answer reflects my own personal view; I cannot speak for my employer in this area.)

  • Refreshing to hear someone from Canonical talk about Ubuntu rather than us run of the mill arm chair quarterbacks. Jun 13 '18 at 12:41

Check wikipedia:

In the context of open source software, a binary blob is a closed source binary-only driver without publicly available source code. The term usually refers to a closed-source kernel module loaded into the kernel of an open source operating system

What do these do what free software can't? Nothing in theory. But in practice a hardware company doesn't want to release an open-source driver for their hardware, because it would give hints to their rivals about the hardware design. So e.g. Nvidia and AMD doesn't release open-source drivers. No problem, you might say, the community does it, we have the nouveau and radeon open-source drivers. Yes, but we all know that those drivers have quite a few problems e.g. with power management and hardware acceleration and some others. Why? Because only the hardware manufacturer knows the correct design of their hardware, the community can only guess about how the hardware works internally. So the problem is that until the hardware specifications are closed and kept in secret the community can't make proper open-source alternatives.

Distros without such blobs? I don't know, but check out this and this page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.