#language it <> ---- {{{#!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. <
> Per informazioni sui rilasci più vecchi, vedere [[#older|"Rilasci più vecchi"]] più avanti in questa pagina. }}} <> = Cosa è il firmware? = ##Il paragrafo qui sotto è una citazione da 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]])-~. 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. [[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. <> == 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. DebianBug:740503). In questa situazione passare in console (`Ctrl+Alt+F2`) e usare manualmente [[DebianMan:8/mount|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 [[DebianInstaller/Preseed|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 [[DebianPkg:dosfstools|mkfs.vfat]] e [[DebianPkg:dosfstools|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'[[Installation+Archive+USBStick#firmware|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" }}} * [[it/DebianInstaller/NetbootFirmware|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 === 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 == [[DebianPkg:udev]] in Debian Jessie e successive controlla solamente una directory per trovare i file del firmware: {{{/lib/firmware}}}. Vedere il [[DebianBug:729252|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 [[DebianPkg:udev]]) 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 1. {{{/usr/lib/hotplug/firmware}}} - Firmware fornito da un pacchetto, valido per tutti i kernel = Elenco dei firmware in Debian = {{{#!wiki note 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:Extensible_Firmware_Interface|wikipedia]]) || || [[it/BIOS|BIOS]] || Trovato su macchine ''IBM-PC'' più vecchie, in genere la maggior parte dei server e PC regolari prodotti prima del 2011 - ([[WikiPedia:BIOS|wikipedia]]) || || [[it/OpenFirmware|OpenFirmware]] || noto anche come [[OpenBoot]], trovato su sistemi Sun SPARC, IBM Power, Apple Macintosh basati su PowerPC, IEEE 1275-1994, ... ([[WikiPedia:Open_Firmware|wikipedia]]) || || Coreboot (LinuxBIOS) || Può essere usato su [[https://doc.coreboot.org/mainboard/|alcune schede]] e [[https://doc.coreboot.org/mainboard/index.html#emulation|testato in emulatori]] - ([[WikiPedia:Coreboot|wikipedia]]) || || PMON2000 || Trovato sul [[DebianYeeloong|Lemote Yeeloong]] e dispositivi embedded. || = Aggiornare il firmware = Il firmware può essere [[Firmware/Updates|aggiornato]] usando vari metodi. ---- CategoryPermalink | CategoryHardware | CategoryProprietarySoftware