Free drivers, firmware, and hardware designs
Therefore, drivers, firmware, and hardware that can be fully used with free software are crucial to the operation of free systems.
In 2015, Richard Stallman discussed the need for free hardware designs. What we want most is for manufacturers to publish designs for hardware under free licenses. But the minimum is to publish key technical specifications sufficient to write free drivers for their hardware. If they won't cooperate at all, then we'll have to reverse engineer the needed support.
Ways to help
Support companies selling hardware that supports free software, who have earned the FSF's Respects Your Freedom certification and apply for certification if you sell hardware that you feel meets the criteria.
If you are a developer with driver hacking experience, here are a few specific needs that may be good starting points for work within this broad category:
- Video processing units (VPUs) are often the last hurdle to a fully free system on a chip (SoC). By replacing these nonfree dependencies, we can make low-power devices that respect users' freedoms. The Coda9 VPU requires proprietary firmware, which is preventing the Freescale iMX6 from coming entirely with free software. For more information about this visit Rhombus Tech's page about the processor.
- The Freedreno project aims to implement a free software driver for Qualcomm's Adreno graphics hardware. You can contribute. Note that Adreno requires nonfree firmware independent of the driver.
- The Vivante GC line of chipsets provide 3D rendering for some mobile devices such as laptops. This includes the GPUs used in the i.MX6 and i.MX8 chipsets. Get involved with the Etnaviv project here.
- You can help the Radeon project develop a replacement for the nonfree firmware in AMD graphics cards.
- You can support Nouveau, a project creating free replacements for proprietary drivers for nVidia cards.
- Lima and Panfrost are free software drivers for ARM Mali GPUs. You can help.
- Many Wi-Fi chipsets have free software drivers for GNU/Linux but require proprietary firmware blobs loaded at run-time. Developers with experience with wireless firmware may consider freeing these firmwares, such as the firmware from Broadcom and Marvell SDIO chips.
This is just one item on the Free Software Foundation's High Priority Projects list. There is also a Reverse Engineering Task List -- anyone can add a useful reverse engineering task here, regardless of priority level.