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.
Contents
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" }}}
?Firmware per avvio da rete.
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)
/lib/firmware/`uname -r` - Firmware fornito da un pacchetto, specifico per un kernel
/lib/firmware/ - Firmware fornito da un pacchetto, valido per tutti i kernel
/usr/local/lib/firmware - Posizione per firmware installato manualmente
/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) |
Trovato su macchine IBM-PC più vecchie, in genere la maggior parte dei server e PC regolari prodotti prima del 2011 - (wikipedia) |
|
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