amdgpu is considered "open source", but how is it considered worthy of deblobbing by the Linux Libre kernel?

3 replies [Last post]
t3g
t3g
Offline
Joined: 05/15/2011

I'm not trolling, just actually really curious about this one. AMD's amdgpu kernel driver is considered an "open source" version of their driver, and many improvements are in store for the 4.7 kernel like Polaris support. According to the Linux Libre kernel, it is considered non-free and therefore deblobbed.

How does this violate the free software guidelines? Is it like the upcoming Nouveau drivers for Nvidia where the code itself is "open source" but in reality it requires non-free code (additional firmware or a key or whatever) from the vendor in order to work?

jxself
Offline
Joined: 09/13/2010

"it requires non-free code (additional firmware or a key or whatever) from the vendor in order to work?"

Yep. If you do a diff of Linux and Linux-libre you can see the actual changes. One of them below. Goodbye binary firmware!

/* Firmware Names */
-#define FIRMWARE_TONGA "amdgpu/tonga_uvd.bin"
-#define FIRMWARE_CARRIZO "amdgpu/carrizo_uvd.bin"
-#define FIRMWARE_FIJI "amdgpu/fiji_uvd.bin"
-#define FIRMWARE_STONEY "amdgpu/stoney_uvd.bin"
+#define FIRMWARE_TONGA "/*(DEBLOBBED)*/"
+#define FIRMWARE_CARRIZO "/*(DEBLOBBED)*/"
+#define FIRMWARE_FIJI "/*(DEBLOBBED)*/"
+#define FIRMWARE_STONEY "/*(DEBLOBBED)*/"

t3g
t3g
Offline
Joined: 05/15/2011

I've always wondered how Linus and the kernel team could get away from inserting closed off and non-free bits into a GPL kernel, which should make everything free due to the nature of the GPL. Does binary firmware somehow get a free pass because it's firmware and not traditional software?

jstoddard
Offline
Joined: 05/01/2016

It's the creator of the software (or, more precisely, the owner of the copyright) that gets to enforce the license, not the users. And a copyright license isn't automatically enforced; the owner of the "rights" has to sue the infringer. Additionally, that rights-holder can't infringe his own copyright, so the license doesn't matter in his case.

In the case of the Linux kernel, to enforce the GPL you'd have to decide who's going to be sued (All Linux users? All Linux developers? Only certain developers, say, Linus?), and you'd have to find an affected copyright holder to file the lawsuit. There are many, many contributors to the Linux kernel, so maybe you could find one. But if you only find one or two who represent a small portion of the code, the other kernel developers would just rewrite the parts of the kernel based on their contributions. No big deal at all.

You're not likely to find enough contributors willing to file a lawsuit to represent a significant part of the kernel, especially since most probably are less interested in software freedom than the open source ideals of pragmatism and getting as many users as possible. They simply won't be interested in pursuing a lawsuit that might be counterproductive to their ends.

Without someone (who owns the copyright to a large portion of the kernel) who is willing to sue, there's really no legal mechanism to force binary firmware out of the kernel. So the kernel gets a free pass not because of any distinction between firmware and software, but because nobody who might have standing to sue is interested in trying to enforce the GPL.