Differences between revisions 1 and 26 (spanning 25 versions)
Revision 1 as of 2010-12-27 15:15:38
Size: 5679
Editor: ?skizzhg
Comment: first italian translation
Revision 26 as of 2015-12-28 18:03:14
Size: 6306
Comment: missing comma
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
||<tablestyle="width: 100%;" style="border: 0px hidden">~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[Firmware|English]] - Italiano-~||<style="text-align: right;border: 0px hidden"> (!) [[/Discussion|Discussion]]|| ~-[[DebianWiki/EditorGuide#translation|Traduzioni]]: [[Firmware|English]] - [[es/Firmware|Español]] - [[fr/firmware|Français]] - Italiano-~
Line 5: Line 5:
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 ha a che fare con operazioni di basso livello in un dispositivo, senza che esso sia del tutto non funzionale ... ~-(si legga su [[WikiPedia:Firmware|Wikipedia]])-~. 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 può leggere di più su [[WikiPedia:it:Firmware|Wikipedia]])-~.
Line 9: Line 9:
== Firmware dei dispositivi, driver ==
Molti dispositivi richiedono un firmware per funzionare. Storicamente, i firmware furono incorporati nella ROM del dispositivo o nella memoria Flash, ma sempre più spesso il firmware deve essere caricato nel dispositivo dal driver durante l'inizializzazione.
== 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.
Line 12: Line 12:
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}}}, vedere [[DebianMan:5/sources.list|sources.list(5)]] o [[http://www.debian.org/doc/manuals/apt-howto/ch-basico.html|apt-howto]]). 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 [[DebianMan:5/sources.list|sources.list(5)]] e [[http://www.debian.org/doc/manuals/debian-reference/ch02.it.html#_debian_archive_basics|Nozioni base sugli archivi Debian]] (Debian Reference).
Line 15: Line 15:
Attualmente ci sono casi (come il firmware delle schede Broadcom) in cui l'installatore non richiede il firmware non-free e qualcosa come la configurazione di rete può non andare a buon fine senza notificarlo. Ci sono altri casi in cui 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 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]].
Line 17: Line 17:
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 storage rimovibile. Quando l'installatore parte troverà automaticamente l'archivio dei firmware sul supporto rimovibile rendendolo disponibile all'hardware se necessario. Il link al download del firmware è [[http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/]]. Prima di iniziare il processo di installazione su hardware non conosciuto, un suggerimento è quello di scaricare l'archivio del firmware per l'installazione, spacchettarlo in una directory di nome "firmware" nella directory radice di un dispositivo di archiviazione rimovibile. Quando l'installatore parte trova automaticamente i file nella directory del 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/]].

Il firmware fornito su supporti rimovibili può in alcuni casi non essere rilevato (es. DebianBug:740503). Come soluzione, passare in console e montarlo manualmente in /media.
Line 21: Line 23:
 * [[DebianInstaller/NetbootFirmware|Firmware per avvio da rete]].  * [[it/DebianInstaller/NetbootFirmware|Firmware per avvio da rete]].
Line 23: Line 25:
Una volta che la rete è configurata, il Debian-Installer può prelevare il firmware dai repository Debian. Una volta che la rete è configurata, l'installatore Debian può prelevare il firmware dai repository Debian.
Line 25: Line 27:
=== Posizione del firmwares ===
I firmware vengono memorizzati nei seguenti luoghi (vedere i file {{{/lib/udev/hotplug.functions}}} e {{{/lib/udev/firmware.agent}}} di [[DebianPkg:udev]])
=== Posizione del firmware ===
==== Debian 8 "Jessie", Debian 7 "Wheezy", Debian 6.0 "Squeeze" =
===
Il firmware viene cercato e caricato dalle seguenti posizioni (vedere {{{/lib/udev/hotplug.functions}}} e {{{/lib/udev/firmware.agent}}} di [[DebianPkg:udev]])
Line 28: Line 31:
 1. {{{/lib/firmware/}}} - Firmware fornito da un pacchetto, valido per tutti i kernel superiori a [[it/DebianLenny|Debian Lenny]].
 1. {{{/usr/local/lib/firmware}}} - Posizione per firmware installato manualmente.
 1. {{{/lib/firmware/`uname -r`}}} - Firmware fornito da un pacchetto, specifico per un kernel
 1. {{{/lib/firmware/}}} - Firmware fornito da un pacchetto, valido per tutti i kernel
 1. {{{/usr/local/lib/firmware
}}} - Posizione per firmware installato manualmente
Line 31: Line 35:
 1. {{{/lib/firmware/`uname -r`}}} - Firmware fornito da un pacchetto, specifico per un kernel, novità in [[it/DebianSqueeze|Debian Squeeze]]??
Line 40: Line 43:
Ecco un elenco dei moduli di Linux che richiedono un firmware per funzionare, generato automaticamente dal kernel '''2.6.26-2-686''' di [[it/DebianLenny|Lenny]]. Ecco un elenco dei moduli di Linux che richiedono un firmware per funzionare, generato automaticamente dal kernel Linux '''3.2.0-4-686-pae''' (Debian 3.2.41-2) di [[it/DebianWheezy|Wheezy]]. Alcuni file di firmware sono pacchettizzati per Debian, ad esempio [[DebianPkg:firmware-linux-nonfree]].
Line 42: Line 45:
Nota: l'elenco può non essere completo (in quanto il nome del firmware non è estraibile correttamente). Nota: l'elenco può non essere completo (in quanto il nome del firmware non è estraibile in modo affidabile).
Line 46: Line 49:
##find /lib/modules/2.6.26-2-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 ##find /lib/modules/3.2.0-4-686-pae/ -type f -name '*.ko' | while read m ; do /sbin/modinfo $m | grep -E '^(firmware:|depends:.*firmware)' | sed -e "s#.*#$m#" ; done | sort -u > /tmp/modules
Line 48: Line 51:
## cat /tmp/modules | while read m ; do s=${m##*/} ; modinfo $m | grep -E '^(description|firmware)' | sort | sed -e '2,0s/^description:.*//' -e '/^description:/s/\([A-Z][a-z0-9]\+\)\{2,\}/!\0/g' -e "s#^description:[[:blank:]]*\(.*\)#||$s||''\1''||#" -e 's#^firmware:[[:blank:]]*\(.*\)#[[http://packages.debian.org/file:\1|\1]]<<BR>>#' | tr -d '\n' | sed -e 's/<<BR>>$//' -e 's/$/||\n/' ; done > /tmp/modules.mm ## cat /tmp/modules | while read m ; do s=${m##*/} ; (/sbin/modinfo $m | (grep -E '^description' || echo 'description: (none)') ; /sbin/modinfo $m | grep -E '^firmware') | sort | sed -e '2,0s/^description:.*//' -e '/^description:/s/\([A-Z][a-z0-9]\+\)\{2,\}/!\0/g' -e "s#^description:[[:blank:]]*\(.*\)#||$s||''\1''||#" -e 's#^firmware:[[:blank:]]*\(.*\)#[[DebianPkg:file:\1|\1]]<<BR>>#' | tr -d '\n' | sed -e 's/<<BR>>$//' -e 's/$/||\n/' ; done | sort > /tmp/modules.mm
Line 61: Line 64:
|| [[it/BIOS|BIOS]]<<BR>>~-([[WikiPedia:BIOS|wikipedia]])-~ || Trovato su computer cosiddetti ''IBM-PC'' compatibili ||
|| [[it/OpenFirmware|OpenFirmware]] <<BR>>noto anche come [[OpenBoot]]<<BR>>~-([[WikiPedia:Open_Firmware|wikipedia]])-~ ||Trovato su: <<BR>> * sistemi Sun SPARC,<<BR>> * IBM Power,<<BR>> * Apple Macintosh basati su PowerPC, <<BR>> * IEEE 1275-1994,<<BR>>... ||
|| EFI<<BR>>~-([[WikiPedia:Extensible_Firmware_Interface|wikipedia]])-~ || Trovato su:<<BR>> * sistemi ia64 (Itanium),<<BR>> * alcuni sistemi ia32/amd64 (Macintosh basati su Intel, alcuni server Dell..),<<BR>> * alcuni sistemi basati su [[WikiPedia:XScale]]||
|| Coreboot (LinuxBIOS)<<BR>>~-([[WikiPedia:Coreboot|wikipedia]])-~ || Trovato su poche schede madri.<<BR>> Può essere provato con QEMU http://www.coreboot.org/QEMU ||
|| [[it/BIOS|BIOS]]<<BR>>~-([[https://secure.wikimedia.org/wikipedia/it/wiki/BIOS|wikipedia]])-~ || Trovato su computer cosiddetti ''IBM-PC'' compatibili ||
|| [[it/OpenFirmware|OpenFirmware]] <<BR>>noto anche come [[OpenBoot]]<<BR>>~-([[https://secure.wikimedia.org/wikipedia/it/wiki/Open_Firmware|wikipedia]])-~ ||Trovato su: <<BR>> * sistemi Sun SPARC,<<BR>> * IBM Power,<<BR>> * Apple Macintosh basati su PowerPC, <<BR>> * IEEE 1275-1994,<<BR>>... ||
|| EFI<<BR>>~-([[https://secure.wikimedia.org/wikipedia/it/wiki/Extensible_Firmware_Interface|wikipedia]])-~ || Trovato su:<<BR>> * sistemi ia64 (Itanium),<<BR>> * alcuni sistemi ia32/amd64 (Macintosh basati su Intel, alcuni server Dell..),<<BR>> * alcuni sistemi basati su [[https://secure.wikimedia.org/wikipedia/it/wiki/XScale|XScale]]||
|| Coreboot (LinuxBIOS)<<BR>>~-([[https://secure.wikimedia.org/wikipedia/it/wiki/Coreboot|wikipedia]])-~ || Trovato su poche schede madri.<<BR>> Può essere provato con QEMU http://www.coreboot.org/QEMU ||
|| PMON2000<<BR>>~-([[http://www.pmon2000.com/|homepage]])-~ || Trovato sul [[DebianYeeloong|Lemote Yeeloong]] e dispositivi embedded. ||
----

Traduzioni: English - Español - 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 può leggere di più 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.

Prima di iniziare il processo di installazione su hardware non conosciuto, un suggerimento è quello di scaricare l'archivio del firmware per l'installazione, spacchettarlo in una directory di nome "firmware" nella directory radice di un dispositivo di archiviazione rimovibile. Quando l'installatore parte trova automaticamente i file nella directory del 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/.

Il firmware fornito su supporti rimovibili può in alcuni casi non essere rilevato (es. 740503). Come soluzione, passare in console e montarlo manualmente in /media.

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

Debian 8 "Jessie", Debian 7 "Wheezy", Debian 6.0 "Squeeze"

Il firmware viene cercato e caricato dalle seguenti posizioni (vedere /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 3.2.0-4-686-pae (Debian 3.2.41-2) di Wheezy. 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).

Include: Nothing found for "^##TAG:LIST_START"!

Include: Nothing found for "^##TAG:LIST_END"!

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


The Debian project took the decision in October 2022 to create a new repository component non-free-firmware, and include its content on installation media for the upcoming Debian 12 release (bookworm) to make things easier for our users. This change was implemented in time for the bookworm alpha 2 release of debian-installer in February 2023, and all d-i releases and daily and weekly images since then all include firmware.
For information for older releases, see "Older releases" further down this page.

What is firmware?

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

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

A few firmware images are Free Software and Open Source but unfortunately almost all of them are non-free, which means that Debian cannot include them as normal in the archive under main or contrib.

Using non-free firmware on a Debian system

Debian 12 (bookworm) and later

For Debian 12 onwards, all the packaged non-free firmware binaries that Debian can distribute have been moved to a new component in the Debian archive, called non-free-firmware. If you're upgrading from an older release of Debian and you need these firmware binaries, you should update the apt sources.list on your system to use this new component. If you only had the non-free component enabled on your system to allow you to install firmware, you can safely remove that now.

Debian's installation and live images now include all of those firmware packages. The system should automatically detect, load and install the firmware available for your devices, where possible. There are a small number of cases where Debian can't do this, typically because of not being allowed to distribute the needed firmware binaries.

If you are booting the Debian installer over the network, that will not include all the firmware packages in the initramfs. This is a deliberate choice due to the extra space needed for all the firmware here. Many/most users will already need to modify the initramfs when setting up netboot, so an extra step here is reasonable. Adding the firmware blobs to your initramfs is easy: simply grab the appropriate cpio archive for your target release from https://cdimage.debian.org/cdimage/firmware/ and append it directly to the initramfs file.

How to disable detection and use of non-free firmware

From Debian 12, the installer will automatically check for needed firmware blobs and add them as required. If you would prefer it not to, add

firmware=never

to the installer boot parameters as described in the installation guide

Older releases

For Debian 11 (bullseye) and older, Debian did not include firmware on official installation and live images. The following sections should help you if you need firmware there.

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 https://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 https://cdimage.debian.org/cdimage/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).

Firmware on removable media and preseeding

It is also possible to bypass the installer's searching and installation process by preseeding and providing the firmware files directly to the kernel:

  • The needed firmware files are assumed to be in a directory named firmware on a FAT partition formatted with mkfs.vfat and labelled FIRMWARE.

  • The following addition is made to the installer's kernel command line. It is a single command but has been broken here for readability. Press TAB when the installation choice is highlighted to make the command line visible. A variation on this technique is presented elsewhere.

Installation+Archive+USBStick
preseed/early_command="modprobe vfat ; sleep 2 ;
mount /dev/disk/by-label/FIRMWARE /media ;
cp -a /media/firmware /lib"

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

Firmware after installation

The isenkram and other tools can prompt to install the appropriate firmware and other hardware support packages when the hardware is plugged in. This mostly relies on packages declaring via AppStream what hardware they support. This might not work for all firmware, so read on for another solution.

If you still see missing firmware console messages when the initramfs is updated (for example whenever a kernel update is applied):

W: Possible missing firmware /lib/firmware/i915/skl_guc_62.0.0.bin for module i915

Then you can use apt-file or the Debian package contents search to look for the package that contains the firmware files, install it and then update the initramfs:

$ apt-file search skl_guc_62.0.0.bin
firmware-misc-nonfree: /lib/firmware/i915/skl_guc_62.0.0.bin
$ sudo apt install firmware-misc-nonfree
$ sudo update-initramfs -c -k all

Firmware missing from Debian

If the missing firmware is not available in Debian or if you still see missing firmware console messages even when you have the right firmware-* package installed, you can download and install the firmware from the linux-firmware repository, e.g. for i915 firmware:

mkdir firmware
cd firmware
wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -c -k all

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 Debian

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 firmware distributed by Debian.

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)

Can be used on some boards and tested under emulators - (wikipedia)

PMON2000

Found on the Lemote Yeeloong and embedded devices

Updating firmware

Firmware can be updated using various methods.


CategoryPermalink | CategoryHardware | CategoryProprietarySoftware

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.