Linux Kernel Developers are leveraging GPU vendors into Doing the Right Thing
The Linux kernel is mostly free as in freedom but there are proprietary closed-source binary firmware blobs used for GPU drivers, network drivers and other drivers. These binary blobs are inherently evil. Distributions like Guix use a "libre" kernel without them at a price: No binary GPU-blob means no hardware video decoding, no OpenGL, no Vulkan, no nothing. And WIFI drivers can't even connect you to a wireless network if you do not submit to the binary blobs.
The binary blob firmware requirement is specially problematic for third party drivers like the free nouveau driver for NVidia GPus. It is slow and mostly useless due to NVidia's firmware restrictions.
Senior Linux Kernel developer Paul Kocialkowski is making an initiative to improve the situation for freedom-loving software users. He is specifically trying to get GPU vendors on the ARM platform to use native implementations leveraging the kernels media interface instead of closed binary blobs. He wrote this in an e-mail outlying how to proceed in order to reach this goal on May 12th:
"This would probably be the general feeling of the industry, but the situation is turning anyway, now that we have already started exposing this for Allwinner and Rockchip, that things are already reversed for Tegra and there are docs about more platforms (e.g. the i.MX8 decoder).
So maybe companies need to understand that this is the proper way to do things at this point and re-think their approach. Right now, Linux as a project is in a situation where it has leverage over these entities to push them to do the right thing, by setting a high level of standards like it has often done in the past. So I see an opportunity to push against non-free firmware and bad software design in general, which will overall be beneficial in the long run."
The kernel team has the leverage and they are willing to use it. It will be interesting to see if this translates into less binary blobs required by GPU drivers.
published 2019-05-18 - last edited 2019-06-17