Translation(s): English - 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).
Contents
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 /etc/apt/sources.list, see sources.list(5), or apt-howto).
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, see ipw2200 for an example. In other cases, it does not (601475).
Before starting the installation process on hardware unfamiliar to you, a suggestion is to download the firmware tarball for your installation and have it available on removable storage. When the installer starts, it will automatically find the firmware tarball on the removable storage install the firmware if needed for your hardware. The link to the firmware download for your Debian version is http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/.
Alternatively, there are now alternative versions of the "netinst" CD images being produced that also include all the non-free firmware packages directly - see http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/
NetbootFirmware - Firmware for Netbooting.
Once the network is configured, Debian-Installer can fetch firmware from Debian repositories.
Location of the firmwares
The firmware are stored in the following places (see udev's /lib/udev/hotplug.functions and /lib/udev/firmware.agent)
/lib/firmware/$(uname -r) - Firmware provided by a package, specific for a kernel.
/lib/firmware/ - Firmware provided by a package, valid for all kernels.
/usr/local/lib/firmware - Location for manually installed firmware.
/usr/lib/hotplug/firmware - Firmware provided by a package, valid for all kernels
List of firmware in Linux kernel
To find which package provide a given firmware file, you can use this search page:
http://www.debian.org/distrib/packages#search_contents
Here is a list of Linux modules requiring firmware to operate, generated automatically from Squeeze's linux 2.6.32-5-686 kernel. Some firmware files are packaged for Debian, e.g. firmware-linux-nonfree.
Note: this list may not be complete (because the firmware name can't be extracted reliably).
Module name |
Module description |
Firmware file |
3c359.ko |
3Com 3C359 Velocity XL Token Ring Adapter Driver |
|
acenic.ko |
AceNIC/3C985/GA620 Gigabit Ethernet driver |
|
aic94xx.ko |
Adaptec aic94xx SAS/SATA driver |
|
ambassador.ko |
Madge ATM Ambassador driver |
|
ar9170usb.ko |
||
at76c50x-usb.ko |
atmel_at76c503-i3861.bin |
|
atmel.ko |
Support for Atmel at76c50x 802.11 wireless ethernet cards. |
atmel_at76c502_3com.bin |
b43.ko |
Broadcom B43 wireless driver |
|
b43legacy.ko |
Broadcom B43legacy wireless driver |
|
bcm203x.ko |
Broadcom Blutonium firmware driver ver 1.2 |
|
bfa.ko |
Brocade Fibre Channel HBA Driver fcpim |
|
bfusb.ko |
BlueFRITZ! USB driver ver 1.2 |
|
bnx2.ko |
Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver |
bnx2/bnx2-mips-06-5.0.0.j3.fw |
bnx2x.ko |
Broadcom NetXtreme II BCM57710/57711/57711E Driver |
|
bt3c_cs.ko |
Bluetooth driver for the 3Com Bluetooth PCMCIA card |
|
btmrvl_sdio.ko |
Marvell BT-over-SDIO driver ver 1.0 |
|
cassini.ko |
Sun Cassini(+) ethernet driver |
|
cxgb3.ko |
Chelsio T3 Network Driver |
cxgb3/ael2005_opt_edc.bin |
3826.arm|| advansys/3550.bin
advansys/38C0800.bin
advansys/38C1600.bin
advansys/mcode.bin|| cyzfirm.bin|| isdn/ISAR.BIN|| isight.fw|| iwmc3200wifi-calib-sdio.bin
iwmc3200wifi-lmac-sdio.bin
iwmc3200wifi-umac-sdio.bin|| prism2_ru.fw|| tms380tr.bin|| wl1271-fw.bin||
dvb-ttpci.ko |
driver for the SAA7146 based AV110 PCI DVB cards by Siemens, Technotrend, Hauppauge |
|||||||||||||
dvb-ttusb-budget.ko |
TTUSB DVB Driver |
|||||||||||||
e100.ko |
Intel(R) PRO/100 Network Driver |
e100/d101m_ucode.bin |
||||||||||||
emi26.ko |
Emagic EMI 2|6 firmware loader. |
|||||||||||||
emi62.ko |
Emagic EMI 6|2m firmware loader. |
|||||||||||||
fore_200e.ko |
FORE Systems 200E-series ATM driver - version 0.3e |
|||||||||||||
i2400m-sdio.ko |
Intel 2400M WiMAX networking for SDIO |
|||||||||||||
i2400m-usb.ko |
Intel 2400M WiMAX networking for USB |
|||||||||||||
io_edgeport.ko |
Edgeport USB Serial Driver |
edgeport/boot2.fw |
||||||||||||
io_ti.ko |
Edgeport USB Serial Driver |
|||||||||||||
ip2.ko |
Computone IntelliPort Plus Driver |
|||||||||||||
ipw2100.ko |
||||||||||||||
ipw2200.ko |
||||||||||||||
iwl3945.ko |
?Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux |
|||||||||||||
iwlagn.ko |
iwlwifi-4965-2.ucode |
|||||||||||||
jr3_pci.ko |
Comedi low-level driver |
|||||||||||||
kaweth.ko |
KL5USB101 USB Ethernet driver |
kaweth/new_code.bin |
||||||||||||
keyspan.ko |
Keyspan USB to Serial Converter Driver |
keyspan/mpr.fw |
||||||||||||
keyspan_pda.ko |
USB Keyspan PDA Converter driver |
|||||||||||||
libertas_cs.ko |
||||||||||||||
libertas_sdio.ko |
sd8385.bin |
|||||||||||||
libertas_spi.ko |
libertas/gspi8385.bin |
|||||||||||||
libertas_tf_usb.ko |
||||||||||||||
mga.ko |
Matrox G200/G400 |
|||||||||||||
mwl8k.ko |
Marvell TOPDOG(R) 802.11 Wireless Network Driver |
|||||||||||||
myri10ge.ko |
Myricom 10G driver (10GbE) |
myri10ge_ethp_z8e.dat |
||||||||||||
netxen_nic.ko |
NetXen Multi port (1/10) Gigabit Network Driver |
|||||||||||||
orinoco.ko |
Driver for Lucent Orinoco, Prism II based and similar wireless cards |
agere_ap_fw.bin |
||||||||||||
p54pci.ko |
||||||||||||||
p54usb.ko |
||||||||||||||
pcnet_cs.ko |
NE2000 compatible PCMCIA ethernet driver |
cis/DP83903.cis |
||||||||||||
qla1280.ko |
Qlogic ISP SCSI (qla1x80/qla1x160) driver |
|||||||||||||
qla2xxx.ko |
QLogic Fibre Channel HBA Driver |
ql2100_fw.bin |
||||||||||||
qlcnic.ko |
QLogic 1/10 GbE Converged/Intelligent Ethernet Driver |
|||||||||||||
r128.ko |
ATI Rage 128 |
|||||||||||||
r8169.ko |
RealTek RTL-8169 Gigabit Ethernet driver |
|||||||||||||
r8192_pci.ko |
802.11 data/management/control stack |
r8192_pci.ko |
Host AP crypt: TKIP |
r8192_pci.ko |
Host AP crypt: WEP |
r8192_pci.ko |
Linux driver for Realtek RTL819x WiFi cards |
|||||||
r8192s_usb.ko |
802.11 data/management/control stack |
r8192s_usb.ko |
HostAP crypto |
r8192s_usb.ko |
Host AP crypt: TKIP |
r8192s_usb.ko |
Host AP crypt: WEP |
r8192s_usb.ko |
Linux driver for Realtek RTL8192 USB WiFi cards |
|||||
radeon.ko |
radeon/R100_cp.bin |
|||||||||||||
rt2800usb.ko |
Ralink RT2800 USB Wireless LAN driver. |
|||||||||||||
rt2860sta.ko |
||||||||||||||
rt2870sta.ko |
||||||||||||||
rt61pci.ko |
||||||||||||||
rt73usb.ko |
||||||||||||||
smc91c92_cs.ko |
SMC 91c92 series PCMCIA ethernet driver |
|||||||||||||
snd-cs46xx.ko |
||||||||||||||
snd-darla20.ko |
Echoaudio Darla20 soundcards driver |
|||||||||||||
snd-darla24.ko |
Echoaudio Darla24 soundcards driver |
|||||||||||||
snd-echo3g.ko |
Echoaudio Echo3G soundcards driver |
|||||||||||||
snd-emu10k1.ko |
EMU10K1 |
emu/audio_dock.fw |
||||||||||||
snd-gina20.ko |
Echoaudio Gina20 soundcards driver |
|||||||||||||
snd-gina24.ko |
Echoaudio Gina24 soundcards driver |
ea/gina24_301_asic.fw |
||||||||||||
snd-indigodj.ko |
Echoaudio Indigo DJ soundcards driver |
|||||||||||||
snd-indigodjx.ko |
Echoaudio Indigo DJx soundcards driver |
|||||||||||||
snd-indigoio.ko |
Echoaudio Indigo IO soundcards driver |
|||||||||||||
snd-indigoiox.ko |
Echoaudio Indigo IOx soundcards driver |
|||||||||||||
snd-indigo.ko |
Echoaudio Indigo soundcards driver |
|||||||||||||
snd-korg1212.ko |
||||||||||||||
snd-layla20.ko |
Echoaudio Layla20 soundcards driver |
|||||||||||||
snd-layla24.ko |
Echoaudio Layla24 soundcards driver |
ea/layla24_1_asic.fw |
||||||||||||
snd-maestro3.ko |
||||||||||||||
snd-mia.ko |
Echoaudio Mia soundcards driver |
|||||||||||||
snd-mixart.ko |
Digigram miXart |
|||||||||||||
snd-mona.ko |
Echoaudio Mona soundcards driver |
ea/loader_dsp.fw |
||||||||||||
snd-pcxhr.ko |
Digigram pcxhr 0.9.6 |
pcxhr/dspb1222e.b56 |
||||||||||||
snd-riptide.ko |
riptide |
|||||||||||||
snd-sb16-csp.ko |
ALSA driver for SB16 Creative Signal Processor |
sb16/alaw_main.csp |
||||||||||||
snd-vx-lib.ko |
Common routines for Digigram VX drivers |
vx/bd56002.boot |
||||||||||||
snd-wavefront.ko |
Turtle Beach Wavefront |
|||||||||||||
snd-ymfpci.ko |
||||||||||||||
solos-pci.ko |
Solos PCI driver |
|||||||||||||
starfire.ko |
Adaptec Starfire Ethernet driver |
|||||||||||||
tehuti.ko |
Tehuti Networks(R) Network Driver |
|||||||||||||
tg3.ko |
Broadcom Tigon3 ethernet driver |
|||||||||||||
ti_usb_3410_5052.ko |
TI USB 3410/5052 Serial Driver |
|||||||||||||
typhoon.ko |
3Com Typhoon Family (3C990, 3CR990, and variants) |
|||||||||||||
usb8xxx.ko |
||||||||||||||
vicam.ko |
ViCam WebCam Driver |
|||||||||||||
whiteheat.ko |
USB ConnectTech WhiteHEAT driver |
|||||||||||||
wl1251.ko |
TI wl1251 Wireles LAN Driver Core |
|||||||||||||
yam.ko |
Yam amateur radio modem driver |
|||||||||||||
zd1201.ko |
Driver for ZyDAS ZD1201 based USB Wireless adapters |
|||||||||||||
zd1211rw.ko |
zd1211/zd1211b_ub |
|||||||||||||
This paragraph is mostly meant to expose module/firmware. It should be improved to list the matching package names.
Computer Firmware
Found on so called IBM-PC compatible computers |
|
OpenFirmware |
Found on: |
EFI |
Found on: |
Coreboot (LinuxBIOS) |
Found on very few PC motheboards. |
