Differences between revisions 28 and 29
Revision 28 as of 2017-12-10 18:19:58
Size: 6993
Comment: sync with english master
Revision 29 as of 2020-03-23 12:02:01
Size: 7445
Comment: sync with English master v.63
Deletions are marked like this. Additions are marked like this.
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}}}. 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). Alcuni di questi firmware sono liberi e open-source, e alcuni di essi sono [[https://www.debian.org/doc/debian-policy/ch-archive#s-non-free|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 30: Line 30:
Line 46: Line 47:
[[http://www.debian.org/distrib/packages#search_contents]] [[https://www.debian.org/distrib/packages#search_contents]]
Line 49: Line 50:
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]]. Ecco un elenco dei moduli di Linux che richiedono un firmware per funzionare, generato automaticamente dal kernel Linux '''4.9.0-5-amd64''' (Debian 4.9.65-3+deb9u2) di [[it/DebianStretch|stretch]]. Alcuni file di firmware sono pacchettizzati per Debian, ad esempio [[DebianPkg:firmware-linux-nonfree]].
Line 53: Line 54:
##This is list built with :
##
##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
##
## 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
##
##
Questo elenco può essere creato con lo [[#firmware-script|script sottostante]]:
Line 61: Line 56:
## DO NOT UPDATE THIS LIST MANUALLY (use the command above).
## DO NOT UPDATE THIS LIST MANUALLY (usare il comando stottostante).
Line 66: Line 60:

<<Anchor(firmware-script)>>
{{{
#!/bin/sh
dir="$(find /lib/modules/ -mindepth 1 -maxdepth 1 -print0 | sort -zr | head -zn1)"
find "$dir" -type f -name '*.ko' |
while read -r m ; do
 /sbin/modinfo "$m" |
 grep -E '^(firmware:|depends:.*firmware)' |
 sed -e "s#.*#$m#"
done |
sort -u |
while read -r 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
}}}
Line 75: Line 102:

== Aggiornare il firmware ==

Il firmware può essere [[Firmware/Updates|aggiornato]] usando [[DebianPackage:fwupd]] o vari metodi specifici per i produttori.
Line 76: Line 107:
CategoryHardware

Translation(s): 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. Ciò può succedere, ad esempio, con le schede di rete wireless che spesso richiedono firmware non libero per funzionare (per un esempio vedere ipw2200).

Un suggerimento, specialmente se si sta installando hardware con cui non si ha familiarità, è quello di scaricare l'archivio del firmware per la propria piattaforma e spacchettarlo in una directory di nome "firmware" nella directory radice di un dispositivo di archiviazione rimovibile (USB/CD). Quando l'installatore parte trova automaticamente i file nella directory del firmware sul supporto rimovibile e, se necessario, installa il firmware per l'hardware in uso. I collegamenti per scaricare il firmware per la propria versione di Debian sono in http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/.

Il firmware fornito su supporti rimovibili può in alcuni casi non essere rilevato (es. 740503). In questa situazione passare in console e montare manualmente (vedere mount(8)) il proprio dispositivo rimovibile in una directory temporanea (es. "/media").

In alternativa si può usare una delle compilazioni di immagini parallele dell'installatore che includono direttamente anche tutti i pacchetti del firmware non-free. Ci sono immagini di CD "netinst" e anche immagini DVD dell'installatore; vedere 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"

La recente versione di udev usata in Jessie controlla solamente una directory per trovare i file del firmware. Vedere il ?bug n.DebianBug:729252 per i dettagli. I file del firmware devono essere installati in:

  • /lib/firmware

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:
https://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 4.9.0-5-amd64 (Debian 4.9.65-3+deb9u2) di stretch. 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).

Questo elenco può essere creato con lo script sottostante:

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

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

Translation(s): English - Español - Français - 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).

Devices/Drivers Firmware

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 almost all of them are non-free, which means that you need to add the non-free and contrib components to your APT sources.

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/unofficial/non-free/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.

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 Linux kernel

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 all firmware distributed along Debian Linux kernel images.

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.

Open firmware

There are a number of projects creating various kinds of open firmware, including for booting, WiFi and audio.


CategoryPermalink | CategoryHardware | CategoryProprietarySoftware

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

dir="$(find /lib/modules/ -mindepth 1 -maxdepth 1 -print0 | sort -zr | head -zn1)"
find "$dir" -type f -name '*.ko' |
while read -r m ; do
 /sbin/modinfo "$m" |
 grep -E '^(firmware:|depends:.*firmware)' |
 sed -e "s#.*#$m#"
done |
sort -u |
while read -r 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

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.

Aggiornare il firmware

Il firmware può essere aggiornato usando fwupd o vari metodi specifici per i produttori.


CategoryHardware