Differences between revisions 14 and 15
Revision 14 as of 2010-11-24 18:05:56
Size: 18274
Editor: ?michaelpapet
Comment:
Revision 15 as of 2010-11-24 18:06:54
Size: 18275
Editor: ?michaelpapet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
There are currently cases (ex. Broadcom NIC firmware) when the installer will not prompt you for the non-free firmware and something like network configuration may fail silently. There are other cases when 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 IPW220 on the Debian Wiki. [[http://wiki.debian.org/ipw2200]] There are currently cases (ex. Broadcom NIC firmware) when the installer will not prompt you for the non-free firmware and something like network configuration may fail silently. There are other cases when 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 on the Debian Wiki. [[http://wiki.debian.org/ipw2200]]

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 /etc/apt/sources.list, see sources.list(5), or apt-howto).).

Firmware during the installation

There are currently cases (ex. Broadcom NIC firmware) when the installer will not prompt you for the non-free firmware and something like network configuration may fail silently. There are other cases when 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 on the Debian Wiki. http://wiki.debian.org/ipw2200

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 automagically find the firmware tarball on the removable storage and have the firmware available 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/.

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)

  1. /lib/firmware/ - Firmware provided by a package, valid for all kernels - up-to DebianLenny.

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

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

  4. /lib/firmware/`uname -r` - Firmware provided by a package, specific for a kernel - new in DebianSqueeze??.

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's a list of Linux modules that requires a firmware to operate, generated automatically from Lenny's linux 2.6.26-2-686 kernel.

Note: this list may not be complete (because the firmware name can't be extracted reliably).

microcode.ko

Intel CPU (IA-32) Microcode Update Driver

bcm203x.ko

Broadcom Blutonium firmware driver ver 1.1

BCM2033-FW.bin
BCM2033-MD.hex

bfusb.ko

BlueFRITZ! USB driver ver 1.1

bfubase.frm

bt3c_cs.ko

Bluetooth driver for the 3Com Bluetooth PCMCIA card

BT3CPCC.bin

ip2.ko

Computone IntelliPort Plus Driver

dell_rbu.ko

Driver for updating BIOS image on DELL systems

tuner-xc2028.ko

Xceive xc2028/xc3028 tuner driver

xc5000.ko

Xceive xc5000 silicon tuner driver

b2c2-flexcop.ko

B2C2 FlexcopII/II(b)/III digital TV receiver chip

dvb-bt8xx.ko

Bt8xx based DVB adapter driver

dvb-usb-gp8psk.ko

Driver for Genpix 8psk-to-USB2 DVB-S

dvb-usb.ko

A library module containing commonly used USB and DVB function USB DVB devices

dvb-usb-opera.ko

Driver for Opera1 DVB-S device

bcm3510.ko

Broadcom BCM3510 ATSC (8VSB/16VSB & ITU J83 AnnexB FEC QAM64/256) demodulator driver

nxt200x.ko

NXT200X (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulator Driver

or51132.ko

OR51132 ATSC [pcHDTV HD-3000] (8VSB & ITU J83 AnnexB FEC QAM64/256) Demodulator Driver

or51211.ko

Oren OR51211 VSB [pcHDTV HD-2000] Demodulator Driver

sp8870.ko

Spase SP8870 DVB-T Demodulator driver

sp887x.ko

Spase sp887x DVB-T demodulator driver

tda10048.ko

NXP TDA10048HN DVB-T Demodulator driver

tda1004x.ko

Philips TDA10045H & TDA10046H DVB-T Demodulator

pluto2.ko

Pluto2 driver

budget-av.ko

driver for the SAA7146 based so-called budget PCI DVB w/ analog input and CI-module (e.g. the KNC cards)

budget-ci.ko

driver for the SAA7146 based so-called budget PCI DVB cards w/ CI-module produced by Siemens, Technotrend, Hauppauge

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

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

acenic_tg1.bin
acenic_tg2.bin

bnx2.ko

Broadcom NetXtreme II BCM5706/5708 Driver

bnx2-06-4.0.5.fw
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

FW13

b43legacy.ko

Broadcom B43legacy wireless driver

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.

rt2561.bin
rt2561s.bin
rt2661.bin

rt73usb.ko

Ralink RT73 USB Wireless LAN driver.

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

aic94xx-seq.fw

ipr.ko

IBM Power RAID SCSI Adapter Driver

libsas.ko

SAS Transport Layer

qla2xxx.ko

QLogic Fibre Channel HBA Driver

ql2100_fw.bin
ql2200_fw.bin
ql2300_fw.bin
ql2322_fw.bin
ql2400_fw.bin
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

keyspan/mpr.fw
keyspan/usa18x.fw
keyspan/usa19.fw
keyspan/usa19qi.fw
keyspan/usa19qw.fw
keyspan/usa19w.fw
keyspan/usa28.fw
keyspan/usa28xa.fw
keyspan/usa28xb.fw
keyspan/usa28x.fw
keyspan/usa49w.fw
keyspan/usa49wlc.fw

snd-vx-lib.ko

Common routines for Digigram VX drivers

vx/bd56002.boot
vx/bd563s3.boot
vx/bd563v2.boot
vx/bx_1_vp4.b56
vx/bx_1_vxp.b56
vx/l_1_v22.d56
vx/l_1_vp4.d56
vx/l_1_vx2.d56
vx/l_1_vxp.d56
vx/x1_1_vp4.xlx
vx/x1_1_vx2.xlx
vx/x1_1_vxp.xlx
vx/x1_2_v22.xlx

snd-wavefront.ko

Turtle Beach Wavefront

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

ea/darla20_dsp.fw

snd-darla24.ko

Echoaudio Darla24 soundcards driver

ea/darla24_dsp.fw

snd-echo3g.ko

Echoaudio Echo3G soundcards driver

ea/3g_asic.fw
ea/echo3g_dsp.fw
ea/loader_dsp.fw

snd-gina20.ko

Echoaudio Gina20 soundcards driver

ea/gina20_dsp.fw

snd-gina24.ko

Echoaudio Gina24 soundcards driver

ea/gina24_301_asic.fw
ea/gina24_301_dsp.fw
ea/gina24_361_asic.fw
ea/gina24_361_dsp.fw
ea/loader_dsp.fw

snd-indigodj.ko

Echoaudio Indigo DJ soundcards driver

ea/indigo_dj_dsp.fw
ea/loader_dsp.fw

snd-indigoio.ko

Echoaudio Indigo IO soundcards driver

ea/indigo_io_dsp.fw
ea/loader_dsp.fw

snd-indigo.ko

Echoaudio Indigo soundcards driver

ea/indigo_dsp.fw
ea/loader_dsp.fw

snd-layla20.ko

Echoaudio Layla20 soundcards driver

ea/layla20_asic.fw
ea/layla20_dsp.fw

snd-layla24.ko

Echoaudio Layla24 soundcards driver

ea/layla24_1_asic.fw
ea/layla24_2A_asic.fw
ea/layla24_2S_asic.fw
ea/layla24_dsp.fw
ea/loader_dsp.fw

snd-mia.ko

Echoaudio Mia soundcards driver

ea/loader_dsp.fw
ea/mia_dsp.fw

snd-mona.ko

Echoaudio Mona soundcards driver

ea/loader_dsp.fw
ea/mona_2_asic.fw
ea/mona_301_1_asic_48.fw
ea/mona_301_1_asic_96.fw
ea/mona_301_dsp.fw
ea/mona_361_1_asic_48.fw
ea/mona_361_1_asic_96.fw
ea/mona_361_dsp.fw

snd-emu10k1.ko

EM!?U10K1

emu/audio_dock.fw
emu/emu0404.fw
emu/emu1010b.fw
emu/emu1010_notebook.fw
emu/hana.fw
emu/micro_dock.fw

snd-korg1212.ko

korg1212

korg/k1212.dsp

snd-mixart.ko

Digigram miXart

mixart/miXart8AES.xlx
mixart/miXart8.elf
mixart/miXart8.xlx

snd-pcxhr.ko

Digigram pcxhr 0.8.4

pcxhr/b321_512.b56
pcxhr/d321_512.d56
pcxhr/e321_512.e56
pcxhr/xc_1_882.dat
pcxhr/xi_1_882.dat

snd-riptide.ko

riptide

riptide.hex

snd-hdsp.ko

RME Hammerfall DSP

snd-maestro3.ko

ESS Maestro3 PCI

ess/maestro3_assp_kernel.fw
ess/maestro3_assp_minisrc.fw

snd-ymfpci.ko

Yamaha DS-1 PCI

yamaha/ds1_ctrl.fw
yamaha/ds1_dsp.fw
yamaha/ds1e_ctrl.fw

This paragraph is mostly meant to expose module/firmware. It should be improved to list the matching package names.

Computer Firmware

BIOS
(wikipedia)

Found on so called IBM-PC compatible computers

OpenFirmware
also known as OpenBoot
(wikipedia)

Found on:
* Sun SPARC systems,
* IBM Power,
* PowerPC-based Apple Macintosh,
* IEEE 1275-1994,
...

EFI
(wikipedia)

Found on:
* ia64 (Itanium) systems,
* some ia32/amd64 systems (Intel based Macintosh, some Dell Servers..),
* some XScale based systems

Coreboot (LinuxBIOS)
(wikipedia)

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