Translation(s): English - Français - Italiano


Il termine Firmware si riferisce a software embedded che controlla i dispositivi elettronici. Non esistono confini ben definiti tra il firmware e il software, in quanto entrambi i termini coprono una parte dello stesso codice. In genere il termine firmware ha a che fare con operazioni a basso livello su di un dispositivo, senza le quali esso sarebbe del tutto non funzionale... (si legga su Wikipedia).

Firmware di dispositivi/driver

Molti dispositivi richiedono un firmware per funzionare. Storicamente, i firmware venivano incorporati nella ROM o nella memoria Flash del dispositivo, ma sempre più spesso il firmware deve essere caricato nel dispositivo dal driver durante l'inizializzazione.

Alcuni di questi firmware sono liberi e open-source, e alcuni di essi sono non-free; è quindi necessario aggiungere i componenti non-free e contrib al file /etc/apt/sources.list. Per maggiori informazioni, vedere sources.list(5) e Nozioni base sugli archivi Debian (Debian Reference).

Firmware durante l'installazione

In alcuni casi l'installatore rileva la necessità di firmware non-free e richiede all'utente di renderlo disponibile per il programma in modo da completare l'installazione, per un esempio vedere ipw2200; in altri casi ciò non avviene (601475).

Prima di iniziare il processo di installazione su hardware non conosciuto, un suggerimento è quello di scaricare l'archivio del firmware per l'installazione e tenerlo disponibile su un dispositivo di archiviazione rimovibile. Quando l'installatore parte trova automaticamente l'archivio dei firmware sul supporto rimovibile e lo installa se necessario all'hardware. Il collegamento per scaricare il firmware per Debian è http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/.

Ci sono altrimenti versioni alternative delle immagini CD "netinst" che includono tutti i pacchetti dei firmware non-free, si veda http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

Una volta che la rete è configurata, l'installatore Debian può prelevare il firmware dai repository Debian.

Posizione del firmware

I firmware vengono memorizzati nei seguenti posti (vedere i file /lib/udev/hotplug.functions e /lib/udev/firmware.agent di udev)

  1. /lib/firmware/`uname -r` - Firmware fornito da un pacchetto, specifico per un kernel

  2. /lib/firmware/ - Firmware fornito da un pacchetto, valido per tutti i kernel

  3. /usr/local/lib/firmware - Posizione per firmware installato manualmente

  4. /usr/lib/hotplug/firmware - Firmware fornito da un pacchetto, valido per tutti i kernel

Elenco dei firmware nel kernel Linux

Per scoprire quale pacchetto fornisce un dato firmware si può usare questa pagina:
http://www.debian.org/distrib/packages#search_contents

Ecco un elenco dei moduli di Linux che richiedono un firmware per funzionare, generato automaticamente dal kernel Linux 2.6.32-5-686 (Debian 2.6.32-39) di Squeeze. Alcuni file di firmware sono pacchettizzati per Debian, ad esempio firmware-linux-nonfree.

Nota: l'elenco può non essere completo (in quanto il nome del firmware non è estraibile in modo affidabile).

3c359.ko

3Com 3C359 Velocity XL Token Ring Adapter Driver

3com/3C359.bin

acenic.ko

AceNIC/3C985/GA620 Gigabit Ethernet driver

acenic/tg1.bin
acenic/tg2.bin

advansys.ko

(none)

advansys/3550.bin
advansys/38C0800.bin
advansys/38C1600.bin
advansys/mcode.bin

aic94xx.ko

Adaptec aic94xx SAS/SATA driver

aic94xx-seq.fw

ambassador.ko

Madge ATM Ambassador driver

atmsar11.fw

ar9170usb.ko

Atheros AR9170 802.11n USB wireless

ar9170-1.fw
ar9170-2.fw
ar9170.fw

at76c50x-usb.ko

Atmel at76x USB Wireless LAN Driver

atmel_at76c503-i3861.bin
atmel_at76c503-i3863.bin
atmel_at76c503-rfmd-acc.bin
atmel_at76c503-rfmd.bin
atmel_at76c505amx-rfmd.bin
atmel_at76c505a-rfmd2958.bin
atmel_at76c505-rfmd2958.bin
atmel_at76c505-rfmd.bin

atmel.ko

Support for Atmel at76c50x 802.11 wireless ethernet cards.

atmel_at76c502_3com.bin
atmel_at76c502_3com-wpa.bin
atmel_at76c502.bin
atmel_at76c502d.bin
atmel_at76c502d-wpa.bin
atmel_at76c502e.bin
atmel_at76c502e-wpa.bin
atmel_at76c502-wpa.bin
atmel_at76c504_2958.bin
atmel_at76c504_2958-wpa.bin
atmel_at76c504a_2958.bin
atmel_at76c504a_2958-wpa.bin
atmel_at76c504.bin
atmel_at76c504-wpa.bin
atmel_at76c506.bin
atmel_at76c506-wpa.bin

b43.ko

Broadcom B43 wireless driver

FW13

b43legacy.ko

Broadcom B43legacy wireless driver

FW10

bcm203x.ko

Broadcom Blutonium firmware driver ver 1.2

BCM2033-FW.bin
BCM2033-MD.hex

bfa.ko

Brocade Fibre Channel HBA Driver fcpim

cbfw.bin
ctfw.bin

bfusb.ko

BlueFRITZ! USB driver ver 1.2

bfubase.frm

bna.ko

Brocade 10G PCIe Ethernet driver

ctfw_cna.bin

bnx2.ko

Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver

bnx2/bnx2-mips-06-5.0.0.j3.fw
bnx2/bnx2-mips-09-5.0.0.j3.fw
bnx2/bnx2-rv2p-06-5.0.0.j3.fw
bnx2/bnx2-rv2p-09-5.0.0.j3.fw
bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw

bnx2x.ko

Broadcom NetXtreme II BCM57710/57711/57711E Driver

bnx2x-e1-5.0.21.0.fw
bnx2x-e1h-5.0.21.0.fw

bt3c_cs.ko

Bluetooth driver for the 3Com Bluetooth PCMCIA card

BT3CPCC.bin

btmrvl_sdio.ko

Marvell BT-over-SDIO driver ver 1.0

sd8688.bin
sd8688_helper.bin

cassini.ko

Sun Cassini(+) ethernet driver

sun/cassini.bin

cxgb3.ko

Chelsio T3 Network Driver

cxgb3/ael2005_opt_edc.bin
cxgb3/ael2005_twx_edc.bin
cxgb3/ael2020_twx_edc.bin
cxgb3/t3b_psram-1.1.0.bin
cxgb3/t3c_psram-1.1.0.bin
cxgb3/t3fw-7.4.0.bin

cyclades.ko

(none)

cyzfirm.bin

dvb-ttpci.ko

driver for the SAA7146 based AV110 PCI DVB cards by Siemens, Technotrend, Hauppauge

av7110/bootcode.bin

dvb-ttusb-budget.ko

TTUSB DVB Driver

ttusb-budget/dspbootcode.bin

e100.ko

Intel(R) PRO/100 Network Driver

e100/d101m_ucode.bin
e100/d101s_ucode.bin
e100/d102e_ucode.bin

emi26.ko

Emagic EMI 2|6 firmware loader.

emi26/bitstream.fw
emi26/firmware.fw
emi26/loader.fw

emi62.ko

Emagic EMI 6|2m firmware loader.

emi62/bitstream.fw
emi62/loader.fw
emi62/spdif.fw

fore_200e.ko

FORE Systems 200E-series ATM driver - version 0.3e

pca200e_ecd.bin2

i2400m-sdio.ko

Intel 2400M WiMAX networking for SDIO

i2400m-fw-sdio-1.3.sbcf

i2400m-usb.ko

Intel 2400M WiMAX networking for USB

i2400m-fw-usb-1.3.sbcf
i2400m-fw-usb-1.4.sbcf

io_edgeport.ko

Edgeport USB Serial Driver

edgeport/boot2.fw
edgeport/boot.fw
edgeport/down2.fw
edgeport/down.fw

io_ti.ko

Edgeport USB Serial Driver

edgeport/down3.bin

ip2.ko

Computone IntelliPort Plus Driver

intelliport2.bin

ipw2100.ko

Intel(R) PRO/Wireless 2100 Network Driver

ipw2100-1.3.fw
ipw2100-1.3-i.fw
ipw2100-1.3-p.fw

ipw2200.ko

Intel(R) PRO/Wireless 2200/2915 Network Driver

ipw2200-bss.fw
ipw2200-ibss.fw
ipw2200-sniffer.fw

isight_firmware.ko

(none)

isight.fw

iwl3945.ko

Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux

iwlwifi-3945-2.ucode

iwlagn.ko

Intel(R) Wireless WiFi Link AGN driver for Linux

iwlwifi-4965-2.ucode
iwlwifi-5000-2.ucode
iwlwifi-5150-2.ucode
iwlwifi-6000-4.ucode
iwlwifi-6050-4.ucode

iwmc3200wifi.ko

(none)

iwmc3200wifi-calib-sdio.bin
iwmc3200wifi-lmac-sdio.bin
iwmc3200wifi-umac-sdio.bin

jr3_pci.ko

Comedi low-level driver

comedi/jr3pci.idm

kaweth.ko

KL5USB101 USB Ethernet driver

kaweth/new_code.bin
kaweth/new_code_fix.bin
kaweth/trigger_code.bin
kaweth/trigger_code_fix.bin

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

keyspan_pda.ko

USB Keyspan PDA Converter driver

keyspan_pda/keyspan_pda.fw
keyspan_pda/xircom_pgs.fw

libertas_cs.ko

Driver for Marvell 83xx compact flash WLAN cards

libertas_cs_helper.fw

libertas_sdio.ko

Libertas SDIO WLAN Driver

sd8385.bin
sd8385_helper.bin
sd8686.bin
sd8686_helper.bin
sd8688.bin
sd8688_helper.bin

libertas_spi.ko

Libertas SPI WLAN Driver

libertas/gspi8385.bin
libertas/gspi8385_hlp.bin
libertas/gspi8686.bin
libertas/gspi8686_hlp.bin

libertas_tf_usb.ko

8388 USB WLAN Thinfirm Driver

lbtf_usb.bin

mga.ko

Matrox G200/G400

matrox/g200_warp.fw
matrox/g400_warp.fw

mwl8k.ko

Marvell TOPDOG(R) 802.11 Wireless Network Driver

mwl8k/fmimage_8687.fw
mwl8k/helper_8687.fw

myri10ge.ko

Myricom 10G driver (10GbE)

myri10ge_ethp_z8e.dat
myri10ge_eth_z8e.dat
myri10ge_rss_ethp_z8e.dat
myri10ge_rss_eth_z8e.dat

netxen_nic.ko

NetXen Multi port (1/10) Gigabit Network Driver

nx3fwct.bin
nx3fwmn.bin
nxromimg.bin
phanfw.bin

orinoco.ko

Driver for Lucent Orinoco, Prism II based and similar wireless cards

agere_ap_fw.bin
agere_sta_fw.bin
prism_ap_fw.bin
prism_sta_fw.bin
symbol_sp24t_prim_fw
symbol_sp24t_sec_fw

p54pci.ko

Prism54 PCI wireless driver

isl3886pci

p54spi.ko

(none)

3826.arm

p54usb.ko

Prism54 USB wireless driver

isl3886usb
isl3887usb

pcnet_cs.ko

NE2000 compatible PCMCIA ethernet driver

cis/DP83903.cis
cis/LA-PCM.cis
cis/NE2K.cis
cis/PCMLM28.cis
cis/PE-200.cis
cis/tamarack.cis
PE520.cis

prism2_usb.ko

(none)

prism2_ru.fw

qla1280.ko

Qlogic ISP SCSI (qla1x80/qla1x160) driver

qlogic/1040.bin
qlogic/12160.bin
qlogic/1280.bin

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
ql8100_fw.bin

qlcnic.ko

QLogic 1/10 GbE Converged/Intelligent Ethernet Driver

phanfw.bin

r128.ko

ATI Rage 128

r128/r128_cce.bin

r8169.ko

RealTek RTL-8169 Gigabit Ethernet driver

rtl_nic/rtl8105e-1.fw
rtl_nic/rtl8168d-1.fw
rtl_nic/rtl8168d-2.fw
rtl_nic/rtl8168e-1.fw
rtl_nic/rtl8168e-2.fw

r8192_pci.ko

Linux driver for Realtek RTL819x WiFi cards

RTL8192E/boot.img
RTL8192E/data.img
RTL8192E/main.img

r8192s_usb.ko

Linux driver for Realtek RTL8192 USB WiFi cards

RTL8192SU/rtl8192sfw.bin

radeon.ko

ATI Radeon

radeon/R100_cp.bin
radeon/R100_cp.bin
radeon/R200_cp.bin
radeon/R200_cp.bin
radeon/R300_cp.bin
radeon/R300_cp.bin
radeon/R420_cp.bin
radeon/R420_cp.bin
radeon/R520_cp.bin
radeon/R520_cp.bin
radeon/R600_me.bin
radeon/R600_me.bin
radeon/R600_pfp.bin
radeon/R600_pfp.bin
radeon/R600_rlc.bin
radeon/R700_rlc.bin
radeon/RS600_cp.bin
radeon/RS600_cp.bin
radeon/RS690_cp.bin
radeon/RS690_cp.bin
radeon/RS780_me.bin
radeon/RS780_me.bin
radeon/RS780_pfp.bin
radeon/RS780_pfp.bin
radeon/RV610_me.bin
radeon/RV610_me.bin
radeon/RV610_pfp.bin
radeon/RV610_pfp.bin
radeon/RV620_me.bin
radeon/RV620_me.bin
radeon/RV620_pfp.bin
radeon/RV620_pfp.bin
radeon/RV630_me.bin
radeon/RV630_me.bin
radeon/RV630_pfp.bin
radeon/RV630_pfp.bin
radeon/RV635_me.bin
radeon/RV635_me.bin
radeon/RV635_pfp.bin
radeon/RV635_pfp.bin
radeon/RV670_me.bin
radeon/RV670_me.bin
radeon/RV670_pfp.bin
radeon/RV670_pfp.bin
radeon/RV710_me.bin
radeon/RV710_me.bin
radeon/RV710_pfp.bin
radeon/RV710_pfp.bin
radeon/RV730_me.bin
radeon/RV730_me.bin
radeon/RV730_pfp.bin
radeon/RV730_pfp.bin
radeon/RV770_me.bin
radeon/RV770_me.bin
radeon/RV770_pfp.bin
radeon/RV770_pfp.bin

rt2800usb.ko

Ralink RT2800 USB Wireless LAN driver.

rt2870.bin

rt2860sta.ko

RT2860/RT3090 Wireless Lan Linux Driver

rt2860.bin
rt3090.bin

rt2870sta.ko

RT2870/RT3070 Wireless Lan Linux Driver

rt2870.bin
rt3070.bin
rt3071.bin

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

smc91c92_cs.ko

SMC 91c92 series PCMCIA ethernet driver

ositech/Xilinx7OD.bin

snd-cs46xx.ko

Cirrus Logic Sound Fusion CS46XX

cs46xx/cs46xx-old.fw

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-emu10k1.ko

EMU10K1

emu/audio_dock.fw
emu/emu0404.fw
emu/emu1010b.fw
emu/emu1010_notebook.fw
emu/hana.fw
emu/micro_dock.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-indigodjx.ko

Echoaudio Indigo DJx soundcards driver

ea/indigo_djx_dsp.fw
ea/loader_dsp.fw

snd-indigoio.ko

Echoaudio Indigo IO soundcards driver

ea/indigo_io_dsp.fw
ea/loader_dsp.fw

snd-indigoiox.ko

Echoaudio Indigo IOx soundcards driver

ea/indigo_iox_dsp.fw
ea/loader_dsp.fw

snd-indigo.ko

Echoaudio Indigo soundcards driver

ea/indigo_dsp.fw
ea/loader_dsp.fw

snd-korg1212.ko

korg1212

korg/k1212.dsp

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-maestro3.ko

ESS Maestro3 PCI

ess/maestro3_assp_kernel.fw
ess/maestro3_assp_minisrc.fw

snd-mia.ko

Echoaudio Mia soundcards driver

ea/loader_dsp.fw
ea/mia_dsp.fw

snd-mixart.ko

Digigram miXart

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

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-pcxhr.ko

Digigram pcxhr 0.9.6

pcxhr/dspb1222e.b56
pcxhr/dspb1222hr.b56
pcxhr/dspb882e.b56
pcxhr/dspb882hr.b56
pcxhr/dspb924.b56
pcxhr/dspd1222.d56
pcxhr/dspd222.d56
pcxhr/dspd882.d56
pcxhr/dspe882.e56
pcxhr/dspe924.e56
pcxhr/xlxc1222e.dat
pcxhr/xlxc1222hr.dat
pcxhr/xlxc222.dat
pcxhr/xlxc882e.dat
pcxhr/xlxc882hr.dat
pcxhr/xlxc924.dat
pcxhr/xlxint.dat

snd-riptide.ko

riptide

riptide.hex

snd-sb16-csp.ko

ALSA driver for SB16 Creative Signal Processor

sb16/alaw_main.csp
sb16/ima_adpcm_capture.csp
sb16/ima_adpcm_init.csp
sb16/ima_adpcm_playback.csp
sb16/mulaw_main.csp

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
yamaha/yss225_registers.bin

snd-ymfpci.ko

Yamaha DS-1 PCI

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

solos-pci.ko

Solos PCI driver

solos-db-FPGA.bin
solos-Firmware.bin
solos-FPGA.bin

speedfax.ko

(none)

isdn/ISAR.BIN

starfire.ko

Adaptec Starfire Ethernet driver

adaptec/starfire_rx.bin
adaptec/starfire_tx.bin

tehuti.ko

Tehuti Networks(R) Network Driver

tehuti/bdx.bin

tg3.ko

Broadcom Tigon3 ethernet driver

tigon/tg3.bin
tigon/tg3_tso5.bin
tigon/tg3_tso.bin

ti_usb_3410_5052.ko

TI USB 3410/5052 Serial Driver

mts_cdma.fw
mts_edge.fw
mts_gsm.fw
ti_3410.fw
ti_5052.fw

tms380tr.ko

(none)

tms380tr.bin

typhoon.ko

3Com Typhoon Family (3C990, 3CR990, and variants)

3com/typhoon.bin

usb8xxx.ko

8388 USB WLAN Driver

usb8388.bin

vicam.ko

ViCam WebCam Driver

vicam/firmware.fw

vt6656_stage.ko

VIA Networking Wireless LAN USB Driver

vntwusb.fw

whiteheat.ko

USB ConnectTech WhiteHEAT driver

whiteheat.fw
whiteheat_loader.fw

wl1251.ko

TI wl1251 Wireles LAN Driver Core

wl1251-fw.bin

wl1271.ko

(none)

wl1271-fw.bin

yam.ko

Yam amateur radio modem driver

yam/1200.bin
yam/9600.bin

zd1201.ko

Driver for ZyDAS ZD1201 based USB Wireless adapters

zd1201-ap.fw
zd1201.fw

zd1211rw.ko

USB driver for devices with the ZD1211 chip.

zd1211/zd1211b_ub
zd1211/zd1211b_uphr
zd1211/zd1211b_ur
zd1211/zd1211_ub
zd1211/zd1211_uphr
zd1211/zd1211_ur

Questo paragrafo ha principalmente lo scopo di esporre moduli e firmware, dovrebbe essere migliorato per elencare i nomi dei pacchetti corrispondenti.

Firmware dei computer

BIOS
(wikipedia)

Trovato su computer cosiddetti IBM-PC compatibili

OpenFirmware
noto anche come OpenBoot
(wikipedia)

Trovato su:
* sistemi Sun SPARC,
* IBM Power,
* Apple Macintosh basati su PowerPC,
* IEEE 1275-1994,
...

EFI
(wikipedia)

Trovato su:
* sistemi ia64 (Itanium),
* alcuni sistemi ia32/amd64 (Macintosh basati su Intel, alcuni server Dell..),
* alcuni sistemi basati su XScale

Coreboot (LinuxBIOS)
(wikipedia)

Trovato su poche schede madri.
Può essere provato con QEMU http://www.coreboot.org/QEMU

PMON2000
(homepage)

Trovato sul Lemote Yeeloong e dispositivi embedded.