Differences between revisions 6 and 7
Revision 6 as of 2009-09-05 10:03:04
Size: 17969
Editor: FranklinPiat
Comment: minor improvement
Revision 7 as of 2009-09-06 09:18:32
Size: 19071
Editor: FranklinPiat
Comment: Improve, and prepare for "Computer firmware" section
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
##language en

Many devices require a firmware to operate. In most case, that firmware is built-into the device's ROM or Flash memory, but for some devices, that firmware has to be loaded into the device by the driver.

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}}} component to {{{/etc/apt/sources.list}}}).

== Location of the firmwares ==
Most of those firmware are available in {{{non-free}}} or {{{contrib}}} components (see [[DebianMan:5/sources.list|sources.list(5)]], or [[http://www.debian.org/doc/manuals/apt-howto/ch-basico.html|apt-howto]]).
#language en

##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]])-~.

<<TableOfContents(3)>>

== 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 [[DebianMan:5/sources.list|sources.list(5)]], or [[http://www.debian.org/doc/manuals/apt-howto/ch-basico.html|apt-howto]]).).

=== Location of the firmwares ===
Line 11: Line 15:
 * {{{/usr/lib/hotplug/firmware}}} - Firmware provided by a package, valid for all kernels
 * {{{/lib/firmware/`uname -r`/lib/firmware}}} - Firmware provided by a package, specific for a kernel - new in DebianSqueeze.
 * {{{/usr/local/lib/firmware}}} - Location for manually installed firmware.


== List of firmware in linux Kernel ==

List of modules that requires non-free firmware, with the associated module name.
 1. {{{/lib/firmware/}}} - Firmware provided by a package, valid for all kernels - up-to DebianLenny.
 1. {{{/usr/local/lib/firmware}}} - Location for manually installed firmware.
 1. {{{/usr/lib/hotplug/firmware}}} - Firmware provided by a package, valid for all kernels
 1. {{{/lib/firmware/`uname -r`/lib/firmware}}} - Firmware provided by a package, specific for a kernel - new in DebianSqueeze??.

=== List of firmware in linux kernel ===

{{{#!wiki note
To find which package provide a given firmware file, you can use this search page:<<BR>>
[[http://www.debian.org/distrib/packages#search_contents]]
}}}
Here's a list of Linux modules that requires a firmware to operate, generated automatically from [[DebianLenny|Lenny]]'s linux 2.6.26-686 kernel.


Note: this list may not be complete (because the firmware name can't be extracted reliably).
Line 25: Line 35:
##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:]]*\(.*\)# * [http://packages.debian.org/file:\1 /var/firmware/\1]#' ; done ##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:]]*\(.*\)# * [http://packages.debian.org/file:\1 /var/firmware/\1]#' ; done
Line 35: Line 45:
=== microcode.ko === ==== microcode.ko ====
Line 41: Line 51:
=== bcm203x.ko === ==== bcm203x.ko ====
Line 51: Line 61:
=== bfusb.ko === ==== bfusb.ko ====
Line 59: Line 69:
=== bt3c_cs.ko === ==== bt3c_cs.ko ====
Line 67: Line 77:
=== ip2.ko === ==== ip2.ko ====
Line 73: Line 83:
=== ip2.ko === ==== ip2.ko ====
Line 79: Line 89:
=== dell_rbu.ko === ==== dell_rbu.ko ====
Line 85: Line 95:
=== tuner-xc2028.ko === ==== tuner-xc2028.ko ====
Line 91: Line 101:
=== xc5000.ko === ==== xc5000.ko ====
Line 97: Line 107:
=== b2c2-flexcop.ko === ==== b2c2-flexcop.ko ====
Line 103: Line 113:
=== dvb-bt8xx.ko === ==== dvb-bt8xx.ko ====
Line 109: Line 119:
=== dvb-usb-gp8psk.ko === ==== dvb-usb-gp8psk.ko ====
Line 115: Line 125:
=== dvb-usb.ko === ==== dvb-usb.ko ====
Line 121: Line 131:
=== dvb-usb-opera.ko === ==== dvb-usb-opera.ko ====
Line 127: Line 137:
=== bcm3510.ko === ==== bcm3510.ko ====
Line 133: Line 143:
=== nxt200x.ko === ==== nxt200x.ko ====
Line 139: Line 149:
=== or51132.ko === ==== or51132.ko ====
Line 145: Line 155:
=== or51211.ko === ==== or51211.ko ====
Line 151: Line 161:
=== sp8870.ko === ==== sp8870.ko ====
Line 157: Line 167:
=== sp887x.ko === ==== sp887x.ko ====
Line 163: Line 173:
=== tda10048.ko === ==== tda10048.ko ====
Line 169: Line 179:
=== tda1004x.ko === ==== tda1004x.ko ====
Line 175: Line 185:
=== pluto2.ko === ==== pluto2.ko ====
Line 181: Line 191:
=== budget-av.ko === ==== budget-av.ko ====
Line 187: Line 197:
=== budget-ci.ko === ==== budget-ci.ko ====
Line 193: Line 203:
=== dvb-ttpci.ko === ==== dvb-ttpci.ko ====
Line 199: Line 209:
=== ttusb_dec.ko === ==== ttusb_dec.ko ====
Line 205: Line 215:
=== bttv.ko === ==== bttv.ko ====
Line 211: Line 221:
=== cx18.ko === ==== cx18.ko ====
Line 217: Line 227:
=== cx23885.ko === ==== cx23885.ko ====
Line 223: Line 233:
=== cx23885.ko === ==== cx23885.ko ====
Line 229: Line 239:
=== cx25840.ko === ==== cx25840.ko ====
Line 235: Line 245:
=== cx88-blackbird.ko === ==== cx88-blackbird.ko ====
Line 241: Line 251:
=== ivtv.ko === ==== ivtv.ko ====
Line 247: Line 257:
=== pvrusb2.ko === ==== pvrusb2.ko ====
Line 253: Line 263:
=== acenic.ko === ==== acenic.ko ====
Line 263: Line 273:
=== bnx2.ko === ==== bnx2.ko ====
Line 273: Line 283:
=== cxgb3.ko === ==== cxgb3.ko ====
Line 279: Line 289:
=== irda-usb.ko === ==== irda-usb.ko ====
Line 285: Line 295:
=== myri10ge.ko === ==== myri10ge.ko ====
Line 291: Line 301:
=== at76_usb.ko === ==== at76_usb.ko ====
Line 297: Line 307:
=== atmel.ko === ==== atmel.ko ====
Line 303: Line 313:
=== b43.ko === ==== b43.ko ====
Line 311: Line 321:
=== b43legacy.ko === ==== b43legacy.ko ====
Line 319: Line 329:
=== ipw2100.ko === ==== ipw2100.ko ====
Line 325: Line 335:
=== ipw2200.ko === ==== ipw2200.ko ====
Line 331: Line 341:
=== iwl3945.ko === ==== iwl3945.ko ====
Line 337: Line 347:
=== iwl4965.ko === ==== iwl4965.ko ====
Line 343: Line 353:
=== libertas_cs.ko === ==== libertas_cs.ko ====
Line 349: Line 359:
=== libertas_sdio.ko === ==== libertas_sdio.ko ====
Line 355: Line 365:
=== usb8xxx.ko === ==== usb8xxx.ko ====
Line 361: Line 371:
=== p54pci.ko === ==== p54pci.ko ====
Line 367: Line 377:
=== p54usb.ko === ==== p54usb.ko ====
Line 373: Line 383:
=== rt2x00lib.ko === ==== rt2x00lib.ko ====
Line 379: Line 389:
=== rt61pci.ko === ==== rt61pci.ko ====
Line 391: Line 401:
=== rt73usb.ko === ==== rt73usb.ko ====
Line 399: Line 409:
=== spectrum_cs.ko === ==== spectrum_cs.ko ====
Line 405: Line 415:
=== zd1201.ko === ==== zd1201.ko ====
Line 411: Line 421:
=== zd1211rw.ko === ==== zd1211rw.ko ====
Line 417: Line 427:
=== pcmcia.ko === ==== pcmcia.ko ====
Line 423: Line 433:
=== aic94xx.ko === ==== aic94xx.ko ====
Line 431: Line 441:
=== ipr.ko === ==== ipr.ko ====
Line 437: Line 447:
=== libsas.ko === ==== libsas.ko ====
Line 443: Line 453:
=== qla2xxx.ko === ==== qla2xxx.ko ====
Line 461: Line 471:
=== cxacru.ko === ==== cxacru.ko ====
Line 467: Line 477:
=== speedtch.ko === ==== speedtch.ko ====
Line 473: Line 483:
=== ueagle-atm.ko === ==== ueagle-atm.ko ====
Line 479: Line 489:
=== keyspan.ko === ==== keyspan.ko ====
Line 509: Line 519:
=== snd-vx-lib.ko === ==== snd-vx-lib.ko ====
Line 541: Line 551:
=== snd-wavefront.ko === ==== snd-wavefront.ko ====
Line 549: Line 559:
=== pss.ko === ==== pss.ko ====
Line 555: Line 565:
=== snd-darla20.ko === ==== snd-darla20.ko ====
Line 563: Line 573:
=== snd-darla24.ko === ==== snd-darla24.ko ====
Line 571: Line 581:
=== snd-echo3g.ko === ==== snd-echo3g.ko ====
Line 583: Line 593:
=== snd-gina20.ko === ==== snd-gina20.ko ====
Line 591: Line 601:
=== snd-gina24.ko === ==== snd-gina24.ko ====
Line 607: Line 617:
=== snd-indigodj.ko === ==== snd-indigodj.ko ====
Line 617: Line 627:
=== snd-indigoio.ko === ==== snd-indigoio.ko ====
Line 627: Line 637:
=== snd-indigo.ko === ==== snd-indigo.ko ====
Line 637: Line 647:
=== snd-layla20.ko === ==== snd-layla20.ko ====
Line 647: Line 657:
=== snd-layla24.ko === ==== snd-layla24.ko ====
Line 663: Line 673:
=== snd-mia.ko === ==== snd-mia.ko ====
Line 673: Line 683:
=== snd-mona.ko === ==== snd-mona.ko ====
Line 695: Line 705:
=== snd-emu10k1.ko === ==== snd-emu10k1.ko ====
Line 713: Line 723:
=== snd-korg1212.ko === ==== snd-korg1212.ko ====
Line 721: Line 731:
=== snd-mixart.ko === ==== snd-mixart.ko ====
Line 733: Line 743:
=== snd-pcxhr.ko === ==== snd-pcxhr.ko ====
Line 749: Line 759:
=== snd-riptide.ko === ==== snd-riptide.ko ====
Line 757: Line 767:
=== snd-hdsp.ko === ==== snd-hdsp.ko ====
Line 763: Line 773:
=== snd-maestro3.ko === ==== snd-maestro3.ko ====
Line 773: Line 783:
=== snd-ymfpci.ko === ==== snd-ymfpci.ko ====

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).).

Location of the firmwares

The firmware are stored in the following places (see udev's /lib/udev/hotplug.functions)

  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`/lib/firmware - 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-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

bfusb.ko

BlueFRITZ! USB driver ver 1.1

bt3c_cs.ko

Bluetooth driver for the 3Com Bluetooth PCMCIA card

ip2.ko

Computone ?IntelliPort Plus Driver

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

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

bnx2.ko

Broadcom ?NetXtreme II BCM5706/5708 Driver

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

b43legacy.ko

Broadcom B43legacy wireless driver

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.

rt73usb.ko

Ralink RT73 USB Wireless LAN driver.

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

ipr.ko

IBM Power RAID SCSI Adapter Driver

libsas.ko

SAS Transport Layer

qla2xxx.ko

QLogic Fibre Channel HBA Driver

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

snd-vx-lib.ko

Common routines for Digigram VX drivers

snd-wavefront.ko

Turtle Beach Wavefront

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

snd-darla24.ko

Echoaudio Darla24 soundcards driver

snd-echo3g.ko

Echoaudio Echo3G soundcards driver

snd-gina20.ko

Echoaudio Gina20 soundcards driver

snd-gina24.ko

Echoaudio Gina24 soundcards driver

snd-indigodj.ko

Echoaudio Indigo DJ soundcards driver

snd-indigoio.ko

Echoaudio Indigo IO soundcards driver

snd-indigo.ko

Echoaudio Indigo soundcards driver

snd-layla20.ko

Echoaudio Layla20 soundcards driver

snd-layla24.ko

Echoaudio Layla24 soundcards driver

snd-mia.ko

Echoaudio Mia soundcards driver

snd-mona.ko

Echoaudio Mona soundcards driver

snd-emu10k1.ko

EMU10K1

snd-korg1212.ko

korg1212

snd-mixart.ko

Digigram miXart

snd-pcxhr.ko

Digigram pcxhr 0.8.4

snd-riptide.ko

riptide

snd-hdsp.ko

RME Hammerfall DSP

snd-maestro3.ko

ESS Maestro3 PCI

snd-ymfpci.ko

Yamaha DS-1 PCI


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