Differences between revisions 31 and 32
Revision 31 as of 2022-01-19 10:51:23
Size: 6739
Comment: sync with English master v.86
Revision 32 as of 2023-05-22 08:18:45
Size: 11005
Comment: sync with English master v.104
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:

{{{#!wiki important
Il progetto Debian nell'ottobre 2022 [[https://lists.debian.org/debian-devel-announce/2022/10/msg00001.html|ha preso la decisione]]
di creare una nuova componente `non-free-firmware` del repository e di includere il suo contenuto nei supporti di installazione per il futuro rilascio Debian 12 (''bookworm''), per rendere le cose più semplici per i suoi utenti. Questa modifica è stata implementata in tempo per il rilascio '''bookworm alpha 2''' del debian-installer nel febbraio 2023 e tutti i rilasci del d-i e le immagini giornaliere e settimanali da allora includono il firmware.
<<BR>>
Per informazioni sui rilasci più vecchi, vedere [[#older|"Rilasci più vecchi"]] più avanti in questa pagina.
}}}

<<TableOfContents(3)>>

= Cosa è il firmware? =
Line 7: Line 19:
<<TableOfContents(3)>>

== Firmware di dispositivi/driver ==
Line 12: Line 21:
[[#open|Alcune]] immagini del firmware sono Free Software e Open Source, ma la maggior parte è [[https://www.debian.org/doc/debian-policy/ch-archive#s-non-free|non-free]]; è quindi necessario aggiungere i componenti {{{non-free}}} e {{{contrib}}} alle proprie [[it/SourcesList|fonti di APT]]. [[Firmware/Open|Alcune]] immagini del firmware sono Free Software e Open Source, ma sfortunatamente la maggior parte è [[https://www.debian.org/doc/debian-policy/ch-archive#s-non-free|non-free]], il che significa che Debian non può includerle nei normali archivi '''main''' o '''contrib'''.

= Usare firmware non libero in un sistema Debian =

== Debian 12 (bookworm) e successive ==

Da Debian 12 in avanti, tutti i binari di firmware non libero pacchettizzati che Debian può distribuire sono stati spostati in una nuova componente dell'archivio Debian chiamata '''non-free-firmware'''.
Se si sta aggiornando da un rilascio più vecchio di Debian e si ha necessità di questi binari del firmware, si dovrebbe aggiornare '''sources.list'''
di apt nel proprio sistema in modo che utilizzi questa nuova componente. Se si aveva abilitata la componente '''non-free''' nel proprio sistema solamente per essere in grado di installare il firmware, la si può rimuovere senza problemi.

L'installazione di Debian e le immagini live includono ora tutti i pacchetti del firmware. Il sistema dovrebbe automaticamente rilevare, caricare e installare il firmware disponibile per i dispositivi dell'utente, quando possibile. Esiste un ''piccolo''
numero di casi in cui Debian non può farlo, tipicamente perché non le è permesso di distribuire i binari necessari del firmware.

Se si sta avviando l'installatore Debian da rete, allora ciò
'''non''' include tutti i pacchetti del firmware nell'initramfs. Questa è una scelta deliberata a causa dello spazio aggiuntivo necessario per tutto il firmware. Molti, se non la maggior parte degli utenti, dovranno già modificare l'initramfs quando impostano l'avvio da rete, quindi un passo da fare in più è ragionevole. Aggiungere i blob del firmware all'initramfs è facile: basta prendere l'archivio cpio corretto per il proprio rilascio desiderato da
[[https://cdimage.debian.org/cdimage/firmware/]] e aggiungerlo direttamente al file initramfs.

<<Anchor(older)>>
== Rilasci più vecchi ==

Per '''Debian 11 (bullseye) e precedenti ''', Debian non includeva il firmware nelle immagini di installazione e live ufficiali. Le sezioni che seguono
dovrebbero aiutare se si ha bisogno di firmware in esse.
Line 24: Line 54:
Si può anche '''scaricare l'archivio del firmware''' per la propria piattaforma, specialmente se si sta installando hardware con cui non si ha familiarità, 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 [[https://cdimage.debian.org/cdimage/unofficial/non-free/firmware/]]. L'installatore all'avvio trova automaticamente i file del firmware nella directory nel supporto rimovibile e, se necessario, installa il firmware richiesto. Si può anche '''scaricare l'archivio del firmware''' per la propria piattaforma, specialmente se si sta installando hardware con cui non si ha familiarità, 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 [[[[https://cdimage.debian.org/cdimage/firmware/]]]]. L'installatore all'avvio trova automaticamente i file del firmware nella directory nel supporto rimovibile e, se necessario, installa il firmware richiesto.
Line 46: Line 76:
=== Posizione dei file del firmware === === Firmware dopo l'installazione ===
Line 48: Line 78:
==== Debian 8 "Jessie" e successive ==== DebianPackage:isenkram e altri strumenti possono suggerire di installare il firmware appropriato e altri pacchetti di supporto per l'hardware quando viene collegato dell'hardware. Questo si [[USB/GadgetSetup|basa]] soprattutto sul fatto che i pacchetti dichiarino usando AppStream quale hardware supportano. Ciò potrebbe non funzionare per tutto il firmware, nel qual caso leggere sotto per un'altra soluzione.

Se si continuano a vedere messaggi in console riguardanti firmware mancante quando viene aggiornato l'initramfs (per esempio ogni volta che viene aggiornato il kernel):

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

allora si può usare [[apt-file]] o la [[https://www.debian.org/distrib/packages#search_contents|ricerca del contenuto dei pacchetti Debian]] per cercare il pacchetto che contiene i file del firmware, installarlo e aggiornare l'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 non presente in Debian =

Se il firmware mancante non è disponibile in Debian o se si continuano a vedere in console messaggi su firmware mancante anche dopo avere installato il pacchetto firmware-* corretto, si può scaricare e installare il firmware dal repository [[https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git|linux-firmware]], ad esempio per il firmware i915:

{{{
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
}}}

= Posizione dei file del firmware =

== Debian 8 "Jessie" e successive ==
Line 51: Line 112:
==== Debian 7 "Wheezy", Debian 6.0 "Squeeze" ==== == Debian 7 "Wheezy", Debian 6.0 "Squeeze" ==
Line 59: Line 120:
=== Elenco dei firmware nel kernel Linux === = Elenco dei firmware in Debian =
Line 66: Line 127:
[[Firmware/List]] elenca tutto il firmware distribuito insieme alle immagini Debian del kernel Linux.
[[Firmware/List]] elenca il firmware distribuito da Debian.
Line 70: Line 130:
== Firmware dei computer == = Firmware dei computer =
Line 78: Line 138:
== Aggiornare il firmware == = Aggiornare il firmware =
Line 82: Line 142:
<<Anchor(open)>>
== Firmware aperto ==
Line 85: Line 143:
Ci sono svariati progetti che creano diversi tipi di [[Firmware/Open|firmware aperto]], incluso per l'avvio, il WiFi e l'audio.


Il progetto Debian nell'ottobre 2022 ha preso la decisione di creare una nuova componente non-free-firmware del repository e di includere il suo contenuto nei supporti di installazione per il futuro rilascio Debian 12 (bookworm), per rendere le cose più semplici per i suoi utenti. Questa modifica è stata implementata in tempo per il rilascio bookworm alpha 2 del debian-installer nel febbraio 2023 e tutti i rilasci del d-i e le immagini giornaliere e settimanali da allora includono il firmware.
Per informazioni sui rilasci più vecchi, vedere "Rilasci più vecchi" più avanti in questa pagina.

Cosa è il firmware?

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

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

Alcune immagini del firmware sono Free Software e Open Source, ma sfortunatamente la maggior parte è non-free, il che significa che Debian non può includerle nei normali archivi main o contrib.

Usare firmware non libero in un sistema Debian

Debian 12 (bookworm) e successive

Da Debian 12 in avanti, tutti i binari di firmware non libero pacchettizzati che Debian può distribuire sono stati spostati in una nuova componente dell'archivio Debian chiamata non-free-firmware. Se si sta aggiornando da un rilascio più vecchio di Debian e si ha necessità di questi binari del firmware, si dovrebbe aggiornare sources.list di apt nel proprio sistema in modo che utilizzi questa nuova componente. Se si aveva abilitata la componente non-free nel proprio sistema solamente per essere in grado di installare il firmware, la si può rimuovere senza problemi.

L'installazione di Debian e le immagini live includono ora tutti i pacchetti del firmware. Il sistema dovrebbe automaticamente rilevare, caricare e installare il firmware disponibile per i dispositivi dell'utente, quando possibile. Esiste un piccolo numero di casi in cui Debian non può farlo, tipicamente perché non le è permesso di distribuire i binari necessari del firmware.

Se si sta avviando l'installatore Debian da rete, allora ciò non include tutti i pacchetti del firmware nell'initramfs. Questa è una scelta deliberata a causa dello spazio aggiuntivo necessario per tutto il firmware. Molti, se non la maggior parte degli utenti, dovranno già modificare l'initramfs quando impostano l'avvio da rete, quindi un passo da fare in più è ragionevole. Aggiungere i blob del firmware all'initramfs è facile: basta prendere l'archivio cpio corretto per il proprio rilascio desiderato da https://cdimage.debian.org/cdimage/firmware/ e aggiungerlo direttamente al file initramfs.

Rilasci più vecchi

Per Debian 11 (bullseye) e precedenti , Debian non includeva il firmware nelle immagini di installazione e live ufficiali. Le sezioni che seguono dovrebbero aiutare se si ha bisogno di firmware in esse.

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

Immagini di installazione del firmware

Un metodo facile è quello di usare un'immagine di installatore che includa direttamente tutti i pacchetti del firmware. Vedere https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

Firmware su supporti rimovibili

Si può anche scaricare l'archivio del firmware per la propria piattaforma, specialmente se si sta installando hardware con cui non si ha familiarità, 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 ?[[https://cdimage.debian.org/cdimage/firmware/]]. L'installatore all'avvio trova automaticamente i file del firmware nella directory nel supporto rimovibile e, se necessario, installa il firmware richiesto.

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

Firmware su supporti rimovibili e pressed

È anche possibile scavalcare il processo di ricerca e installazione dell'installatore usando i preseed e fornendo i file del firmware direttamente al kernel:

  • I file di firmware richiesti si presuppone siano in una directory chiamata firmware in una partizione FAT formattata con mkfs.vfat e etichettata FIRMWARE.

  • Viene aggiunto quanto segue alla riga di comando del kernel dell'installatore. È un singolo comando, ma qui è stato spezzato per ragioni di leggibilità. Premere Tab quando viene evidenziata la scelta di installazione per rendere visibile la riga di comando. Una variante di questa tecnica è descritta in un'altra pagina del wiki.

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

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

Firmware dopo l'installazione

isenkram e altri strumenti possono suggerire di installare il firmware appropriato e altri pacchetti di supporto per l'hardware quando viene collegato dell'hardware. Questo si basa soprattutto sul fatto che i pacchetti dichiarino usando AppStream quale hardware supportano. Ciò potrebbe non funzionare per tutto il firmware, nel qual caso leggere sotto per un'altra soluzione.

Se si continuano a vedere messaggi in console riguardanti firmware mancante quando viene aggiornato l'initramfs (per esempio ogni volta che viene aggiornato il kernel):

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

allora si può usare apt-file o la ricerca del contenuto dei pacchetti Debian per cercare il pacchetto che contiene i file del firmware, installarlo e aggiornare l'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 non presente in Debian

Se il firmware mancante non è disponibile in Debian o se si continuano a vedere in console messaggi su firmware mancante anche dopo avere installato il pacchetto firmware-* corretto, si può scaricare e installare il firmware dal repository linux-firmware, ad esempio per il firmware i915:

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

Posizione dei file del firmware

Debian 8 "Jessie" e successive

udev in Debian Jessie e successive controlla solamente una directory per trovare i file del firmware: /lib/firmware. Vedere il bug n.729252 per i dettagli.

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 in Debian

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

Firmware/List elenca il firmware distribuito da Debian.

Firmware dei computer

EFI/UEFI

Trovato nella maggior parte dei server e PC x86 moderni, oltre ad alcune schede ARM - (wikipedia)

BIOS

Trovato su macchine IBM-PC più vecchie, in genere la maggior parte dei server e PC regolari prodotti prima del 2011 - (wikipedia)

OpenFirmware

noto anche come OpenBoot, trovato su sistemi Sun SPARC, IBM Power, Apple Macintosh basati su PowerPC, IEEE 1275-1994, ... (wikipedia)

Coreboot (LinuxBIOS)

Può essere usato su alcune schede e testato in emulatori - (wikipedia)

PMON2000

Trovato sul Lemote Yeeloong e dispositivi embedded.

Aggiornare il firmware

Il firmware può essere aggiornato usando vari metodi.


CategoryPermalink | CategoryHardware | CategoryProprietarySoftware