Difference between revisions of "Collection:Device drivers and firmware"

From Free Software Directory
Jump to: navigation, search
(Standalone firmwares that run on hardware and on GNU/Linux too: improve english)
(Firmwares that interact with Linux drivers (and possibly applications as well): USB WiFi: Also add carl1970)
Line 62: Line 62:
 
** Wifi
 
** Wifi
 
*** USB wifi
 
*** USB wifi
 +
**** [[carl9170fw]]
 
**** [[firmware-ath9k-htc]]: ath9k_htc is a kernel driver. "Open firmware for this driver is also available in the firmware-ath9k-htc package starting from Buster. " - https://wiki.debian.org/ath9k_htc
 
**** [[firmware-ath9k-htc]]: ath9k_htc is a kernel driver. "Open firmware for this driver is also available in the firmware-ath9k-htc package starting from Buster. " - https://wiki.debian.org/ath9k_htc
 
* Phones and smartphones
 
* Phones and smartphones

Revision as of 22:12, 20 April 2023

Firmware is a class of software, which runs directly on the hardware while device drivers help make different devices work with a given operating system.

This collection lists notable device drivers and firmware that isn't already shipped as part of Linux-libre. In other words, things that users might have to specifically go and download separately from what they already have.

What to do with free software that interacts with nonfree software ?

Sometimes free drivers (like a printer driver) or hardware specific software (like free software that can talk to specific printers to remove ink cartridge limitations) interact with hardware that run nonfree firmwares or operating systems (like printers). It is OK to list such software as long as the nonfree software it interact with is out of the bonds of the operating system and that the free software that interact with it doesn't ship nonfree software.

For instance if we take Libreboot or any of the free GNU/Linux distributions or other free distribution(s), they all interact in some way with hardware that run nonfree firmwares as most mass storage devices (hard disks, SSDs, microSD cards, SD cards, USB mass storage keys, etc) run a nonfree firmware. And while most storage devices have standard interfaces, Linux-libre and Libreboot also interact with software that do not implement standards like the firmware that runs on the embedded controller and that handles the keyboard, suspend-to-ram, voltage ramps, etc.

In all theses case the distributions, Libreboot or Linux-libre are not involved at all in the distribution of that nonfree software and that software doesn't run in Libreboot, Linux-libre or the distributions as it typically runs in separate chips. In some cases (like with keyboards) it's really hard to know if the hardware is running some nonfree software or if it doesn't run software at all. And in most cases given enough efforts the nonfree software could also be replaced with free software (for instance by having people reverse engineer the nonfree software and write documentation, and other people implement a free software equivalent based on the hardware documentation).

Device drivers

Firmwares that interact with Linux drivers (and possibly applications as well)

  • Computers
  • Misc
    • Firmware-linux-free
      • AV7110 DVB card firmware (av7110/bootcode.bin)
      • Atheros AR9170 free firmware for use with carl9170 (carl9170fw)
      • 3Com Megahertz 3CCFEM556 CIS fix (cis/3CCFEM556.cis)
      • 3Com Megahertz 3CXEM556 CIS fix (cis/3CXEM556.cis)
      • Advantech COMpad-32/85 CIS fix (cis/COMpad2.cis)
      • Advantech COMpad-32/85B-4 CIS fix (cis/COMpad4.cis)
      • NSC DP83903 PCMCIA Ethernet card CIS fix (cis/DP83903.cis)
      • Allied Telesis LA-PCM CIS fix (cis/LA-PCM.cis)
      • MultiTech PCMCIA 56K DataFax CIS fix (cis/MT5634ZLX.cis)
      • NDC PCMCIA Ethernet card CIS fix (cis/NE2K.cis)
      • EN2218-LAN/MODEM CIS fix (cis/PCMLM28.cis)
      • PreMax PE-200 CIS fix (cis/PE-200.cis)
      • LanPro EP-4000A CIS fix (cis/PE520.cis)
      • RS-COM 2P CIS fix (cis/RS-COM-2P.cis)
      • Sierra Aircard 555 CIS fix (cis/SW_555_SER.cis)
      • Sierra Wireless AC710/AC750 CIS fix (cis/SW_7xx_SER.cis)
      • Sierra Wireless AC850/AC860 CIS fix (cis/SW_8xx_SER.cis)
      • Tamarack PCMCIA Ethernet card CIS fix (cis/tamarack.cis)
      • Atari Falcon DSP56001 firmware (dsp56k/bootstrap.bin)
      • Intel C600 SAS/SATA controller default parameters, version 1.3 (isci/isci_firmware.bin)
      • Keyspan USA-19 firmware (keyspan_pda/keyspan_pda.fw)
      • Xircom PGSDB9/Entrega PortGear firmware (keyspan_pda/xircom_pgs.fw)
      • USB-DUX firmware (usbdux_firmware.bin)
      • USB-DUXfast firmware (usbduxfast_firmware.bin)
      • USB-DUXsigma firmware (usbduxsigma_firmware.bin)
    • Linux-libre-firmware
      • a56
      • aica
      • as31
      • ath9k_htc
      • atusb
      • av7110
      • b43-tools
      • carl9170fw
      • cis-tools
      • cis
      • dsp56k
      • ihex2fw
      • isci
      • keyspan_pda
      • openfwwf
      • usbdux
  • Network equipment
  • Phones and smartphones
    • Modem firmwares
      • Pinephone Modem SDK: The Pinephone modem is similar to a smartphone on a chip: It uses a Qualcomm system on a chip that has modem cores and also a core that runs a GNU/Linux distribution that is responsible for interfacing with a host computer (here the Allwinner A64 that runs GNU/Linux). The first issue is that this project uses distributions that are not FSDG compliant (yocto). The second issue is that it requires nonfree modem firmwares to work (probably the "ADSP Firmware"). So if it somehow reuses that (and that the distribution was FSDG compliant) it might work, but if it ships the nonfree firmwares it is problematic.

Boot software

  • GRUB: It can run on some Lemote computers and replace completely the stock bootloader. It can also run in various contexts like with a BIOS, UEFI, with Coreboot, Libreboot, in emulators, etc.
  • Libreboot
  • u-boot (/!\ contains some nonfree software, wait for u-boot-libre to be released by libreboot.at).

Firmwares that interact with GNU/Linux applications

  • Flash programmers:
  • GPG Tokens
    • Gnuk: Firmware that talks to gpg (indirectly through the ccid and the smartcard GNU/Linux stack). It can also be compiled to run on GNU/Linux.
  • Logic analyzers:
  • Modem firmwares
    • OsmocomBB: A free firmware that can run on some feature phones and the modem of the Openmoko GTA01 and GTA02. It requires part of the stack (the mobile application) to run as a GNU/Linux application.
  • SIM card tracers
    • Simtrace 1 firmware: runs on a microcontroller and talks to the simtrace 1 software that runs on GNU/Linux.
    • Simtrace 2 firmware: runs on a microcontroller and talks to the simtrace 2 software that runs on GNU/Linux.

Standalone firmwares that run on hardware and on GNU/Linux too

These firmwares can (potentially) run on GNU/Linux. This could be done with an emulator or the firmware could be ported to run directly on GNU/Linux too. In both cases this is usually done for testing but it also potentially opens new use cases like for calculators firmwares.

This makes them easier to review as we can just review them like a normal GNU/Linux application.

If they run on GNU/Linux through an emulator, the emulator can be treated like a dependency.

It is then easy to review the emulator first, and if it's free and that it works with the standalone firmware, also review the firmware later on.

  • Calculators
    • KnightOS: Free operating systems for some calcultors. It may also run in emulators in GNU/Linux, so it could be added in this way. It needs to be reviewed.

Standalone firmwares

It might be better to check on the mailing list or on IRC if they are OK to add before adding them as they don't have anything to do with GNU/Linux anymore.

  • Soldering iron
    • IsonOS: Soldering iron operating system. Should be under the GPLv3. There is probably no emulator for that. It needs to be reviewed.

See also



Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.