Differences between revisions 1 and 78 (spanning 77 versions)
Revision 1 as of 2008-10-28 23:39:40
Size: 10736
Editor: FranklinPiat
Comment: Initial page.
Revision 78 as of 2021-01-13 02:02:09
Size: 5440
Editor: PaulWise
Comment: heading cleanup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
##language en #language en
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[es/Firmware|Español]] - [[fr/firmware|Français]] - [[it/Firmware|Italiano]]-~
----
##The paragraph below is an abstract (citation) of Wikipedia's Firmware page.
Firmware refers to embedded software which controls electronic devices. Well-defined boundaries between firmware and software do not exist, as both terms cover some of the same code. Typically, the term firmware deals with low-level operations in a device, without which the device would be completely non-functional ~-(read more on [[WikiPedia:Firmware|Wikipedia]])-~.
Line 3: Line 7:
= Firmware = <<TableOfContents(3)>>
Line 5: Line 9:
List of modules that requires non-free firmware, with the associated module name. == Devices/Drivers Firmware ==
Line 7: Line 11:
Most of those firmware are available in {{{non-free}}} or {{{contrib}}} sections. Many devices require a firmware to operate. Historically, firmware were built-into the device's ROM or Flash memory, but more and more often, the firmware has to be loaded into the device by the driver during the device initialization.
Line 9: Line 13:
##This is list built with :
##find /lib/modules/2.6.26-1-686/ -type f -name '*.ko' | while read m ; do modinfo $m | grep -E '^(firmware:|depends:.*firmware)' | sed -e "s#.*#$m#" ; done | sort -u > /tmp/modules
##cat /tmp/modules | while read m ; do s=${m##*/} ; modinfo $m | grep -E '^(description|firmware)' | sort | sed -e "s#^description:[[:blank:]]*\(.*\)#\n=== $s ===\n''\1''#" -e 's#^firmware:[[:blank:]]*# * /var/firmware/#' ; done
Some of these firmware are free and open-source, and some of them are [[https://www.debian.org/doc/debian-policy/ch-archive#s-non-free|non-free]], which means that you need to add the {{{non-free}}} and {{{contrib}}} components to your [[SourcesList|APT sources]].
Line 13: Line 15:
## DO NOT UPDATE THIS LIST MANUALLY (use the command above).
Line 15: Line 16:
=== microcode.ko ===
''Intel CPU (IA-32) Microcode Update Driver''
=== Firmware during the installation ===
Line 18: Line 18:
=== bcm203x.ko ===
''Broadcom Blutonium firmware driver ver 1.1''
 * /var/firmware/BCM2033-FW.bin
 * /var/firmware/BCM2033-MD.hex
In some cases the installer detects the need for non-free firmware and prompts the user to make the firmware available to the installer to complete the installation. This can happen, for example, with wireless network cards which often require non-free firmware to function (see [[ipw2200]] for an example).
Line 23: Line 20:
=== bfusb.ko ===
''BlueFRITZ! USB driver ver 1.1''
 * /var/firmware/bfubase.frm
==== Installation images with firmware ====
Line 27: Line 22:
=== bt3c_cs.ko ===
''Bluetooth driver for the 3Com Bluetooth PCMCIA card''
 * /var/firmware/BT3CPCC.bin
An easy method is to use an '''installer image''' that includes all non-free firmware packages directly. See [[http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/]]
Line 31: Line 24:
=== ip2.ko ===
''Computone IntelliPort Plus Driver''
==== Firmware on removable media ====
Line 34: Line 26:
=== ip2.ko ===
''Computone IntelliPort Plus Driver''
You can also '''download the firmware archive''' for your platform and unpack it into a directory named `firmware` in the root of a removable storage device (USB/CD drive). You can find firmware downloads for your Debian version at [[http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/]]. When the installer starts, it will automatically find the firmware files in the directory on the removable storage and, if needed, install the required firmware.
Line 37: Line 28:
=== dell_rbu.ko ===
''Driver for updating BIOS image on DELL systems''
In some cases, firmware supplied on removable media may not be detected automatically (e.g. DebianBug:740503). In these situations, drop to the console (`Ctrl+alt+F2`) and manually [[DebianMan:8/mount|mount(8)]] your removable storage on a temporary directory (e.g. `/media`).
Line 40: Line 30:
=== tuner-xc2028.ko ===
''Xceive xc2028/xc3028 tuner driver''
 * [[DebianInstaller/NetbootFirmware|NetbootFirmware]] - Firmware for Netbooting.
Line 43: Line 32:
=== xc5000.ko ===
''Xceive xc5000 silicon tuner driver''
Once the network is configured, Debian-Installer can fetch firmware from Debian repositories.
Line 46: Line 34:
=== b2c2-flexcop.ko ===
''B2C2 FlexcopII/II(b)/III digital TV receiver chip''
=== Location of firmware files ===
Line 49: Line 36:
=== dvb-bt8xx.ko ===
''Bt8xx based DVB adapter driver''
==== Debian 8 "Jessie" and newer ====
Line 52: Line 38:
=== dvb-usb-gp8psk.ko ===
''Driver for Genpix 8psk-to-USB2 DVB-S''
[[DebianPkg:udev]] used in Debian Jessie and later, only checks one directory for firmware files: {{{/lib/firmware}}}. See [[DebianBug:729252]] for details.
Line 55: Line 40:
=== dvb-usb.ko ===
''A library module containing commonly used USB and DVB function USB DVB devices''
==== Debian 7 "Wheezy", Debian 6.0 "Squeeze" ====
Line 58: Line 42:
=== dvb-usb-opera.ko ===
''Driver for Opera1 DVB-S device''
Firmware is sourced from the following places (see [[DebianPkg:udev]]'s {{{/lib/udev/hotplug.functions}}} and {{{/lib/udev/firmware.agent}}})
 1. {{{/lib/firmware/$(uname -r)}}} - Firmware provided by a package, specific for a kernel.
 1. {{{/lib/firmware/}}} - Firmware provided by a package, valid for all kernels.
 1. {{{/usr/local/lib/firmware}}} - Location for manually installed firmware.
 1. {{{/usr/lib/hotplug/firmware}}} - Firmware provided by a package, valid for all kernels
Line 61: Line 48:
=== bcm3510.ko ===
''Broadcom BCM3510 ATSC (8VSB/16VSB & ITU J83 AnnexB FEC QAM64/256) demodulator driver''
=== List of firmware in Linux kernel ===
Line 64: Line 50:
=== nxt200x.ko ===
''NXT200X (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulator Driver''
{{{#!wiki note
To find which package provides a given firmware file, you can use this search page:<<BR>>
[[https://www.debian.org/distrib/packages#search_contents]]
}}}
Line 67: Line 55:
=== or51132.ko ===
''OR51132 ATSC [pcHDTV HD-3000] (8VSB & ITU J83 AnnexB FEC QAM64/256) Demodulator Driver''
[[Firmware/List]] lists all firmware distributed along Debian Linux kernel images.
Line 70: Line 57:
=== or51211.ko ===
''Oren OR51211 VSB [pcHDTV HD-2000] Demodulator Driver''
Line 73: Line 58:
=== sp8870.ko ===
''Spase SP8870 DVB-T Demodulator driver''
Line 76: Line 59:
=== sp887x.ko ===
''Spase sp887x DVB-T demodulator driver''
== Computer Firmware ==
Line 79: Line 61:
=== tda10048.ko ===
''NXP TDA10048HN DVB-T Demodulator driver''
|| EFI/[[UEFI]] || Found on most modern x86 PCs and servers, along with some ARM boards - ([[WikiPedia:Extensible_Firmware_Interface|wikipedia]]) ||
|| [[BIOS]] || Found on older "IBM-PC" machines, generally most regular PCs and servers that were manufactured before 2011 - ([[WikiPedia:BIOS|wikipedia]]) ||
|| [[OpenFirmware]] || also known as [[OpenBoot]], Found on Sun SPARC systems, IBM Power, PowerPC-based Apple Macintosh, IEEE 1275-1994... ([[WikiPedia:Open_Firmware|wikipedia]]) ||
|| Coreboot (LinuxBIOS) || Found on very few PC motheboards. Can be tested under QEMU http://www.coreboot.org/QEMU - ([[WikiPedia:Coreboot|wikipedia]]) ||
|| PMON2000 || Found on the [[DebianYeeloong|Lemote Yeeloong]] and embedded devices ||
Line 82: Line 67:
=== tda1004x.ko ===
''Philips TDA10045H & TDA10046H DVB-T Demodulator''
== Updating firmware ==
Line 85: Line 69:
=== pluto2.ko ===
''Pluto2 driver''
Firmware can be [[Firmware/Updates|updated]] using various methods.
Line 88: Line 71:
=== budget-av.ko ===
''driver for the SAA7146 based so-called budget PCI DVB w/ analog input and CI-module (e.g. the KNC cards)''
== Open firmware ==
Line 91: Line 73:
=== budget-ci.ko ===
''driver for the SAA7146 based so-called budget PCI DVB cards w/ CI-module produced by Siemens, Technotrend, Hauppauge''
There are a number of projects creating various kinds of [[/Open|open firmware]], including for booting, WiFi and audio.
Line 94: Line 75:
=== dvb-ttpci.ko ===
''driver for the SAA7146 based AV110 PCI DVB cards by Siemens, Technotrend, Hauppauge''

=== ttusb_dec.ko ===
''TechnoTrend/Hauppauge DEC USB''

=== bttv.ko ===
''bttv - v4l/v4l2 driver module for bt848/878 based cards''

=== cx18.ko ===
''CX23418 driver''

=== cx23885.ko ===
''Driver for cx23885 based TV cards''

=== cx23885.ko ===
''v4l2 driver module for cx23885 based TV cards''

=== cx25840.ko ===
''Conexant CX25840 audio/video decoder driver''

=== cx88-blackbird.ko ===
''driver for cx2388x/cx23416 based mpeg encoder cards''

=== ivtv.ko ===
''CX23415/CX23416 driver''

=== pvrusb2.ko ===
''Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner''

=== acenic.ko ===
''AceNIC/3C985/GA620 Gigabit Ethernet driver''
 * /var/firmware/acenic_tg1.bin
 * /var/firmware/acenic_tg2.bin

=== bnx2.ko ===
''Broadcom NetXtreme II BCM5706/5708 Driver''
 * /var/firmware/bnx2-06-4.0.5.fw
 * /var/firmware/bnx2-09-4.0.5.fw

=== cxgb3.ko ===
''Chelsio T3 Network Driver''

=== irda-usb.ko ===
''IrDA-USB Dongle Driver''

=== myri10ge.ko ===
''Myricom 10G driver (10GbE)''

=== at76_usb.ko ===
''Atmel at76x USB Wireless LAN Driver''

=== atmel.ko ===
''Support for Atmel at76c50x 802.11 wireless ethernet cards.''

=== b43.ko ===
''Broadcom B43 wireless driver''
 * /var/firmware/FW13

=== b43legacy.ko ===
''Broadcom B43legacy wireless driver''
 * /var/firmware/FW10

=== ipw2100.ko ===
''Intel(R) PRO/Wireless 2100 Network Driver''

=== ipw2200.ko ===
''Intel(R) PRO/Wireless 2200/2915 Network Driver''

=== iwl3945.ko ===
''Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux''

=== iwl4965.ko ===
''Intel(R) Wireless WiFi Link 4965AGN driver for Linux''

=== libertas_cs.ko ===
''Driver for Marvell 83xx compact flash WLAN cards''

=== libertas_sdio.ko ===
''Libertas SDIO WLAN Driver''

=== usb8xxx.ko ===
''8388 USB WLAN Driver''

=== p54pci.ko ===
''Prism54 PCI wireless driver''

=== p54usb.ko ===
''Prism54 USB wireless driver''

=== rt2x00lib.ko ===
''rt2x00 library''

=== rt61pci.ko ===
''Ralink RT61 PCI & PCMCIA Wireless LAN driver.''
 * /var/firmware/rt2561.bin
 * /var/firmware/rt2561s.bin
 * /var/firmware/rt2661.bin

=== rt73usb.ko ===
''Ralink RT73 USB Wireless LAN driver.''
 * /var/firmware/rt73.bin

=== spectrum_cs.ko ===
''Driver for Symbol Spectrum24 Trilogy cards with firmware downloader''

=== zd1201.ko ===
''Driver for ZyDAS ZD1201 based USB Wireless adapters''

=== zd1211rw.ko ===
''USB driver for devices with the ZD1211 chip.''

=== pcmcia.ko ===
''PCMCIA Driver Services''

=== aic94xx.ko ===
''Adaptec aic94xx SAS/SATA driver''
 * /var/firmware/aic94xx-seq.fw

=== ipr.ko ===
''IBM Power RAID SCSI Adapter Driver''

=== libsas.ko ===
''SAS Transport Layer''

=== qla2xxx.ko ===
''QLogic Fibre Channel HBA Driver''
 * /var/firmware/ql2100_fw.bin
 * /var/firmware/ql2200_fw.bin
 * /var/firmware/ql2300_fw.bin
 * /var/firmware/ql2322_fw.bin
 * /var/firmware/ql2400_fw.bin
 * /var/firmware/ql2500_fw.bin

=== cxacru.ko ===
''Conexant AccessRunner ADSL USB modem driver''

=== speedtch.ko ===
''Alcatel SpeedTouch USB driver version 1.10''

=== ueagle-atm.ko ===
''ADI 930/Eagle USB ADSL Modem driver''

=== keyspan.ko ===
''Keyspan USB to Serial Converter Driver''
 * /var/firmware/keyspan/mpr.fw
 * /var/firmware/keyspan/usa18x.fw
 * /var/firmware/keyspan/usa19.fw
 * /var/firmware/keyspan/usa19qi.fw
 * /var/firmware/keyspan/usa19qw.fw
 * /var/firmware/keyspan/usa19w.fw
 * /var/firmware/keyspan/usa28.fw
 * /var/firmware/keyspan/usa28xa.fw
 * /var/firmware/keyspan/usa28xb.fw
 * /var/firmware/keyspan/usa28x.fw
 * /var/firmware/keyspan/usa49w.fw
 * /var/firmware/keyspan/usa49wlc.fw

=== snd-vx-lib.ko ===
''Common routines for Digigram VX drivers''
 * /var/firmware/vx/bd56002.boot
 * /var/firmware/vx/bd563s3.boot
 * /var/firmware/vx/bd563v2.boot
 * /var/firmware/vx/bx_1_vp4.b56
 * /var/firmware/vx/bx_1_vxp.b56
 * /var/firmware/vx/l_1_v22.d56
 * /var/firmware/vx/l_1_vp4.d56
 * /var/firmware/vx/l_1_vx2.d56
 * /var/firmware/vx/l_1_vxp.d56
 * /var/firmware/vx/x1_1_vp4.xlx
 * /var/firmware/vx/x1_1_vx2.xlx
 * /var/firmware/vx/x1_1_vxp.xlx
 * /var/firmware/vx/x1_2_v22.xlx

=== snd-wavefront.ko ===
''Turtle Beach Wavefront''
 * /var/firmware/wavefront.os

=== pss.ko ===
''Module for PSS sound cards (based on AD1848, ADSP-2115 and ESC614). This module includes control of output amplifier and synth volume of the Beethoven ADSP-16 card (this may work with other PSS cards).''

=== snd-darla20.ko ===
''Echoaudio Darla20 soundcards driver''
 * /var/firmware/ea/darla20_dsp.fw

=== snd-darla24.ko ===
''Echoaudio Darla24 soundcards driver''
 * /var/firmware/ea/darla24_dsp.fw

=== snd-echo3g.ko ===
''Echoaudio Echo3G soundcards driver''
 * /var/firmware/ea/3g_asic.fw
 * /var/firmware/ea/echo3g_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-gina20.ko ===
''Echoaudio Gina20 soundcards driver''
 * /var/firmware/ea/gina20_dsp.fw

=== snd-gina24.ko ===
''Echoaudio Gina24 soundcards driver''
 * /var/firmware/ea/gina24_301_asic.fw
 * /var/firmware/ea/gina24_301_dsp.fw
 * /var/firmware/ea/gina24_361_asic.fw
 * /var/firmware/ea/gina24_361_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-indigodj.ko ===
''Echoaudio Indigo DJ soundcards driver''
 * /var/firmware/ea/indigo_dj_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-indigoio.ko ===
''Echoaudio Indigo IO soundcards driver''
 * /var/firmware/ea/indigo_io_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-indigo.ko ===
''Echoaudio Indigo soundcards driver''
 * /var/firmware/ea/indigo_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-layla20.ko ===
''Echoaudio Layla20 soundcards driver''
 * /var/firmware/ea/layla20_asic.fw
 * /var/firmware/ea/layla20_dsp.fw

=== snd-layla24.ko ===
''Echoaudio Layla24 soundcards driver''
 * /var/firmware/ea/layla24_1_asic.fw
 * /var/firmware/ea/layla24_2A_asic.fw
 * /var/firmware/ea/layla24_2S_asic.fw
 * /var/firmware/ea/layla24_dsp.fw
 * /var/firmware/ea/loader_dsp.fw

=== snd-mia.ko ===
''Echoaudio Mia soundcards driver''
 * /var/firmware/ea/loader_dsp.fw
 * /var/firmware/ea/mia_dsp.fw

=== snd-mona.ko ===
''Echoaudio Mona soundcards driver''
 * /var/firmware/ea/loader_dsp.fw
 * /var/firmware/ea/mona_2_asic.fw
 * /var/firmware/ea/mona_301_1_asic_48.fw
 * /var/firmware/ea/mona_301_1_asic_96.fw
 * /var/firmware/ea/mona_301_dsp.fw
 * /var/firmware/ea/mona_361_1_asic_48.fw
 * /var/firmware/ea/mona_361_1_asic_96.fw
 * /var/firmware/ea/mona_361_dsp.fw

=== snd-emu10k1.ko ===
''EMU10K1''
 * /var/firmware/emu/audio_dock.fw
 * /var/firmware/emu/emu0404.fw
 * /var/firmware/emu/emu1010b.fw
 * /var/firmware/emu/emu1010_notebook.fw
 * /var/firmware/emu/hana.fw
 * /var/firmware/emu/micro_dock.fw

=== snd-korg1212.ko ===
''korg1212''
 * /var/firmware/korg/k1212.dsp

=== snd-mixart.ko ===
''Digigram miXart''
 * /var/firmware/mixart/miXart8AES.xlx
 * /var/firmware/mixart/miXart8.elf
 * /var/firmware/mixart/miXart8.xlx

=== snd-pcxhr.ko ===
''Digigram pcxhr 0.8.4''
 * /var/firmware/pcxhr/b321_512.b56
 * /var/firmware/pcxhr/d321_512.d56
 * /var/firmware/pcxhr/e321_512.e56
 * /var/firmware/pcxhr/xc_1_882.dat
 * /var/firmware/pcxhr/xi_1_882.dat

=== snd-riptide.ko ===
''riptide''
 * /var/firmware/riptide.hex

=== snd-hdsp.ko ===
''RME Hammerfall DSP''

=== snd-maestro3.ko ===
''ESS Maestro3 PCI''
 * /var/firmware/ess/maestro3_assp_kernel.fw
 * /var/firmware/ess/maestro3_assp_minisrc.fw

=== snd-ymfpci.ko ===
''Yamaha DS-1 PCI''
 * /var/firmware/yamaha/ds1_ctrl.fw
 * /var/firmware/yamaha/ds1_dsp.fw
 * /var/firmware/yamaha/ds1e_ctrl.fw

------
This page is mostly meant to expose module/firmware. It should be improved to list the matching package names.
----
## This page is referenced from http://www.debian.org/News/2011/20110205a
## This page is referenced from http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/
## This page is referenced from the Debian builds of the Linux kernel
## https://salsa.debian.org/kernel-team/linux/raw/master/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch
## https://sources.debian.org/src/linux/latest/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch
CategoryPermalink | CategoryHardware | CategoryProprietarySoftware

Translation(s): English - Español - Français - Italiano


Firmware refers to embedded software which controls electronic devices. Well-defined boundaries between firmware and software do not exist, as both terms cover some of the same code. Typically, the term firmware deals with low-level operations in a device, without which the device would be completely non-functional (read more on Wikipedia).

Devices/Drivers Firmware

Many devices require a firmware to operate. Historically, firmware were built-into the device's ROM or Flash memory, but more and more often, the firmware has to be loaded into the device by the driver during the device initialization.

Some of these firmware are free and open-source, and some of them are non-free, which means that you need to add the non-free and contrib components to your APT sources.

Firmware during the installation

In some cases the installer detects the need for non-free firmware and prompts the user to make the firmware available to the installer to complete the installation. This can happen, for example, with wireless network cards which often require non-free firmware to function (see ipw2200 for an example).

Installation images with firmware

An easy method is to use an installer image that includes all non-free firmware packages directly. See http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

Firmware on removable media

You can also download the firmware archive for your platform and unpack it into a directory named firmware in the root of a removable storage device (USB/CD drive). You can find firmware downloads for your Debian version at http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/. When the installer starts, it will automatically find the firmware files in the directory on the removable storage and, if needed, install the required firmware.

In some cases, firmware supplied on removable media may not be detected automatically (e.g. 740503). In these situations, drop to the console (Ctrl+alt+F2) and manually mount(8) your removable storage on a temporary directory (e.g. /media).

Once the network is configured, Debian-Installer can fetch firmware from Debian repositories.

Location of firmware files

Debian 8 "Jessie" and newer

udev used in Debian Jessie and later, only checks one directory for firmware files: /lib/firmware. See 729252 for details.

Debian 7 "Wheezy", Debian 6.0 "Squeeze"

Firmware is sourced from the following places (see udev's /lib/udev/hotplug.functions and /lib/udev/firmware.agent)

  1. /lib/firmware/$(uname -r) - Firmware provided by a package, specific for a kernel.

  2. /lib/firmware/ - Firmware provided by a package, valid for all kernels.

  3. /usr/local/lib/firmware - Location for manually installed firmware.

  4. /usr/lib/hotplug/firmware - Firmware provided by a package, valid for all kernels

List of firmware in Linux kernel

To find which package provides a given firmware file, you can use this search page:
https://www.debian.org/distrib/packages#search_contents

Firmware/List lists all firmware distributed along Debian Linux kernel images.

Computer Firmware

EFI/UEFI

Found on most modern x86 PCs and servers, along with some ARM boards - (wikipedia)

BIOS

Found on older "IBM-PC" machines, generally most regular PCs and servers that were manufactured before 2011 - (wikipedia)

OpenFirmware

also known as OpenBoot, Found on Sun SPARC systems, IBM Power, PowerPC-based Apple Macintosh, IEEE 1275-1994... (wikipedia)

Coreboot (LinuxBIOS)

Found on very few PC motheboards. Can be tested under QEMU http://www.coreboot.org/QEMU - (wikipedia)

PMON2000

Found on the Lemote Yeeloong and embedded devices

Updating firmware

Firmware can be updated using various methods.

Open firmware

There are a number of projects creating various kinds of open firmware, including for booting, WiFi and audio.


CategoryPermalink | CategoryHardware | CategoryProprietarySoftware