3 581
contributi
S3v (discussione | contributi) (nuova pagina) |
m (dmesg può richiedere privilegi di amministrazione (a partire da Stretch, a seconda del kernel installato)) |
||
(23 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Non-free}} | |||
{{Versioni compatibili}} | {{Versioni compatibili}} | ||
== Introduzione == | == Introduzione == | ||
Uno dei problemi più diffusi in cui si imbattono gli utenti che installano Debian è quello di far funzionare correttamente le periferiche hardware e, spesso, uno dei motivi principali per cui questo accade è la mancanza di [[firmware]] adatto alla propria periferica.<br/> | Uno dei problemi più diffusi in cui si imbattono gli utenti che installano Debian è quello di far funzionare correttamente le periferiche hardware e, spesso, uno dei motivi principali per cui questo accade è la mancanza di [[firmware]] adatto alla propria periferica.<br/> | ||
Debian, a partire da "Squeeze", ha eliminato tutto il firmware non libero dal [[kernel]] e lo ha inserito in pacchetti separati la cui installazione è demandata all'utente finale. Questo è dovuto al fatto che quasi tutto il firmware è accompagnato da licenze non aderenti alle [[DFSG]] ed è, pertanto, escluso dalla distribuzione ufficiale. | Debian, a partire da "Squeeze", ha eliminato tutto il firmware non libero dal [[kernel]] e lo ha inserito in [[pacchetto|pacchetti]] separati la cui installazione è demandata all'utente finale. Questo è dovuto al fatto che quasi tutto il firmware è accompagnato da licenze non aderenti alle [[DFSG]] ed è, pertanto, escluso dalla distribuzione ufficiale. | ||
In questa guida verrà spiegato come capire se il proprio hardware ha bisogno di firmware per poter funzionare e quali pacchetti installare in base alla propria (o alle proprie) periferiche. | In questa guida verrà spiegato come capire se il proprio hardware ha bisogno di firmware per poter funzionare e quali pacchetti installare in base alla propria (o alle proprie) periferiche. | ||
Riga 14: | Riga 16: | ||
* <code>lscpu</code> | * <code>lscpu</code> | ||
che in genere sono sufficienti per fornire le informazioni di cui si ha bisogno. | che in genere sono sufficienti per fornire le informazioni di cui si ha bisogno. | ||
{{Box|Periferica non trovata|Se attraverso i precedenti comandi non si riesce a risalire al modello della propria periferica, è altamente probabile che il sistema non riesca a rilevare hardware particolarmente recente.<br/>In questo caso prelevare una versione più recente del kernel, possibilmente dai [[Il repository Backports|backports]] se si sta utilizzando una [[stable]].}} | |||
== Periferiche che hanno bisogno di firmware == | == Periferiche che hanno bisogno di firmware == | ||
Riga 19: | Riga 23: | ||
<pre># update-initramfs -u -k all</pre> | <pre># update-initramfs -u -k all</pre> | ||
oppure: | oppure: | ||
<pre> | <pre># dmesg | grep -Ei "firmware|fw"</pre> | ||
Ad esempio: | Ad esempio: | ||
<pre> | <pre> | ||
Riga 36: | Riga 40: | ||
Allo stesso modo il comando: | Allo stesso modo il comando: | ||
<pre> | <pre> | ||
# dmesg | grep -Ei "firmware|fw" | |||
[ 6.588840] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) | [ 6.588840] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) | ||
[ 6.595326] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) | [ 6.595326] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) | ||
Riga 45: | Riga 49: | ||
[ 20.871348] r8169 0000:03:00.0 eth0: unable to load firmware patch rtl_nic/rtl8105e-1.fw (-2) | [ 20.871348] r8169 0000:03:00.0 eth0: unable to load firmware patch rtl_nic/rtl8105e-1.fw (-2) | ||
</pre> | </pre> | ||
ci darà più o meno le stesse informazioni | ci darà più o meno le stesse informazioni oltre al fatto che è stata individuata dal sistema anche la mancanza del firmware per il microcodice della CPU. | ||
Un ulteriore metodo consiste nel guardare il contenuto della directory <code>/run/udev/firmware-missing/</code> in cui <code>udev</code> inserisce informazioni riguardanti il firmware mancante durante il riconoscimento delle periferiche: | |||
<pre> | |||
$ ls /run/udev/firmware-missing/ | |||
intel-ucode\x2f06-36-01 rtl_nic\x2frtl8105e-1.fw | |||
</pre> | |||
== Quali pacchetti installare == | == Quali pacchetti installare == | ||
Ci sono diverse strade.<br/> | Ci sono diverse strade.<br/> | ||
'''1)''' Utilizzare un motore di ricerca specificando la periferica hardware | '''1)''' Utilizzare un motore di ricerca specificando la periferica hardware individuata attraverso il comando "lspci" o "lsusb".<br/> | ||
Ad esempio per cercare firmware per la propria scheda di rete: | Ad esempio per cercare firmware per la propria scheda di rete: | ||
<pre> | <pre> | ||
Riga 57: | Riga 67: | ||
... | ... | ||
</pre> | </pre> | ||
e specificare la stringa | e specificare la stringa di ricerca "Atheros Communications Inc. AR9485 Wireless Network Adapter (rev 01)" (inserire gli apici) magari accompagnata da altre parole chiave come "Debian", "package" o "Firmware". | ||
'''2)''' | '''2)''' Utilizzare [[Apt-file:_ricerca_all'interno_dei_pacchetti|apt-file]] per cercare i pacchetti adatti in base alle informazioni fornite dai precedenti comandi. Ad esempio la stringa: | ||
<pre> | <pre> | ||
r8169 0000:03:00.0: firmware: agent aborted loading rtl_nic/rtl8105e-1.fw (not found?) | r8169 0000:03:00.0: firmware: agent aborted loading rtl_nic/rtl8105e-1.fw (not found?) | ||
</pre> | </pre> | ||
informa del fatto che non viene trovato il file <code>/lib/firmware/rtl_nic/rtl8105e-1.fw</code> . A questo punto basta cercare il pacchetto a cui appartiene: | informa del fatto che non viene trovato il file <code>/lib/firmware/rtl_nic/rtl8105e-1.fw</code> . A questo punto basta cercare il pacchetto a cui appartiene: | ||
$ apt-file update && apt-file search rtl8105e-1.fw | $ apt-file update && apt-file search rtl8105e-1.fw | ||
... | ... | ||
firmware-realtek: /lib/firmware/rtl_nic/rtl8105e-1.fw | '''firmware-realtek''': /lib/firmware/rtl_nic/rtl8105e-1.fw | ||
cioè "firmware-realtek". | cioè "firmware-realtek". | ||
Allo stesso modo: | Allo stesso modo: | ||
Riga 76: | Riga 85: | ||
... | ... | ||
Nel caso in cui i precedenti metodi non possano essere applicati, o perché la connessione alla Rete è assente o perché non si ha a disposizione un terminale con cui interfacciarsi con Debian, la ricerca del firmware mancante può essere comunque eseguita utilizzando questa pagina<sup>[[#Collegamenti esterni | [4]]]</sup>. | |||
Nel caso in cui i precedenti metodi non possano essere applicati, o perché la connessione alla Rete è assente o perché non si ha a disposizione un terminale con cui interfacciarsi con Debian, la ricerca del firmware mancante può essere comunque eseguita utilizzando [ | |||
== Installare il firmware == | == Installare il firmware == | ||
Riga 92: | Riga 96: | ||
# apt-get install firmware-realtek | # apt-get install firmware-realtek | ||
</pre> | </pre> | ||
Prestare attenzione alla [[sezione]] di cui il pacchetto fa parte. Se questo appartiene alla sezione [[non-free]], bisognerà abilitarla nel file <code>/etc/apt/sources | Prestare attenzione alla [[sezione]] di cui il pacchetto fa parte. Se questo appartiene alla sezione [[non-free]], bisognerà abilitarla nel file <code>/etc/apt/sources.list</code> e poi eseguire un "apt-get update" per rigenerare la lista dei pacchetti. | ||
Se non si ha a disposizione una connessione funzionante alla Rete, l'unica soluzione è prelevare il [[pacchetto | Se non si ha a disposizione una connessione funzionante alla Rete, l'unica soluzione è prelevare il [[pacchetto|pacchetto deb]] e trasferirlo alla macchina su cui deve essere installato. Il pacchetto da prelevare deve appartenere alla stessa versione di Debian che si sta utilizzando, cioè, se si sta utilizzando [[Stretch]], bisogna prelevare il pacchetto nella sua versione contenuta in "Stretch" e deve essere relativo all'[[architettura]] della macchina su cui deve essere installato (amd64, i386, etc.).<br/> | ||
Le pagine da cui prelevare i pacchetti .deb sono quelle classiche. Ad esempio, [ | Le pagine da cui prelevare i pacchetti .deb sono quelle classiche. Ad esempio, questa<sup>[[#Collegamenti esterni | [3]]]</sup> è la pagina relativa al pacchetto "firmware-realtek" per "Stretch"; il download si avvia dopo aver scelto l'architettura della propria macchina (oppure "all" se il pacchetto è valido per tutte le architetture) e poi il [[mirror]].<br/> | ||
[[Image:Firmware1.png|350px|link=|center]] | |||
Una volta prelevato il pacchetto .deb, quest'ultimo va installato con [[dpkg]]: | Una volta prelevato il pacchetto .deb, quest'ultimo va installato con [[dpkg]]: | ||
Riga 103: | Riga 108: | ||
Ad esempio: | Ad esempio: | ||
<pre> | <pre> | ||
# dpkg -i firmware- | # dpkg -i firmware-realtek_20161130-3_all.deb | ||
</pre> | </pre> | ||
Una strada alternativa è utilizzare [[Gdebi]] nel caso si abbiano problemi di [[dipendenze]] che non si vogliono risolvere manualmente. | |||
== Pacchetti firmware == | == Pacchetti firmware == | ||
Una lista parziale dei [[pacchetto|pacchetti]] contenenti firmware può essere visualizzata in questa pagina<sup>[[#Collegamenti esterni | [5]]]</sup>. | |||
* '''firmware-linux-free'''<br/>firmware conforme alle | * '''firmware-linux-free'''<br/>firmware conforme alle DFSG; è contenuto nelle [[sezione]] [[main]]. | ||
* '''firmware-linux-nonfree'''<br/>firmware non conforme alle [[DFSG]]; è contenuto nella sezione [[non-free]] e contiene firmware per varie periferiche (ad esempio per le schede ATI Radeon) che non è incluso in un pacchetto specifico. | * '''firmware-linux-nonfree'''<br/>firmware non conforme alle [[DFSG]]; è contenuto nella sezione [[non-free]] e contiene firmware per varie periferiche (ad esempio per le schede ATI Radeon) che non è incluso in un pacchetto specifico. | ||
* '''firmware-linux'''<br/>[[metapacchetto]] che installa i pacchetti ''firmware-linux-free'' e ''firmware-linux-nonfree''. Appartiene alla sezione <code>non-free</code>. | * '''firmware-linux'''<br/>[[metapacchetto]] che installa i pacchetti ''firmware-linux-free'' e ''firmware-linux-nonfree''. Appartiene alla sezione <code>non-free</code>. | ||
* '''firmware-atheros''', '''firmware-intelwimax''', '''firmware-b43-installer''', '''firmware-ipw2x00''', '''etc.'''<br/>Pacchetti anch'essi non free contenenti firmware diversi da quelli presenti in firmware-linux-nonfree; sono suddivisi per tipo di hardware di riferimento. | * '''firmware-atheros''', '''firmware-intelwimax''', '''firmware-b43-installer''', '''firmware-ipw2x00''', '''etc.'''<br/>Pacchetti anch'essi non free contenenti firmware diversi da quelli presenti in <code>firmware-linux-nonfree</code>; sono suddivisi per tipo di hardware di riferimento. | ||
* '''intel-microcode''' e '''amd64-microcode'''<br/>firmware rilasciato dai produttori per aggiornare o correggere il microcodice dei processori Intel o AMD. In genere questo firmware è a sorgente chiuso. | * '''intel-microcode''' e '''amd64-microcode'''<br/>firmware rilasciato dai produttori per aggiornare o correggere il [[microcodice]] dei processori Intel o AMD. In genere questo firmware è a sorgente chiuso. | ||
== Firmware non presente nei repository == | == Firmware non presente nei repository == | ||
Riga 122: | Riga 128: | ||
== Firmware durante l'installazione == | == Firmware durante l'installazione == | ||
Durante l'installazione di Debian può accadere che l'installer produca un messaggio simile a questo: | Durante l'installazione di Debian può accadere che l'installer produca un messaggio simile a questo:<br/> | ||
[[File | [[File:Installer_firmware.png|700px|link=|center]]<br/> | ||
lamentando l'impossibilità di far funzionare determinate periferiche senza che l'utente abbia il firmware adatto.<br/> | lamentando l'impossibilità di far funzionare determinate periferiche senza che l'utente abbia il firmware adatto.<br/> | ||
Questo 'problema' può essere risolto prelevando uno dei | Questo 'problema' può essere risolto prelevando uno dei tre file (.zip, .tar.gz o cpio.gz) da questo indirizzo<sup>[[#Collegamenti esterni | [1]]]</sup> per poi copiarlo su una pendrive, oppure ricorrendo all'installazione di Debian attraverso questa immagine contenente firmware non-free<sup>[[#Collegamenti esterni | [2]]]</sup><br/> | ||
L'immagine non appartiene alla distribuzione ufficiale Debian in quanto ha al suo interno del firmware distribuito con licenza non conforme alle [[DFSG]]. | L'immagine non appartiene alla distribuzione ufficiale Debian in quanto ha al suo interno del firmware distribuito con licenza non conforme alle [[DFSG]]. | ||
Nel caso l'individuazione del firmware copiato su pendrive fallisca, è sempre possibile, nel caso in cui l'[[installer]] lo permetta, ignorare il messaggio e proseguire fino al termine dell'installazione di Debian. A questo punto installare il firmware necessario con i metodi elencati in precedenza.<br/> | Nel caso l'individuazione del firmware copiato su pendrive fallisca, è sempre possibile, nel caso in cui l'[[installer]] lo permetta, ignorare il messaggio e proseguire fino al termine dell'installazione di Debian. A questo punto installare il firmware necessario con i metodi elencati in precedenza.<br/> | ||
Se si sta procedendo all'installazione di Debian attraverso una [[netinst]] o una mini.iso e si ha la necessità di firmware per la propria scheda Ethernet cablata o wireless (che permettono il collegamento alla Rete necessario per scaricare i pacchetti di cui si ha bisogno), è sempre obbligatorio copiare uno dei tre file di cui sopra su una pendrive (o altro supporto rimovibile) altrimenti ci si potrebbe trovare nell'impossibilità di terminare correttamente l'[[Installare Debian|installazione di Debian]] (se si sta usando una mini.iso) o nelle condizioni di terminare con successo l'installazione ma di far partire Debian senza un'interfaccia grafica (nel caso si stia utilizzando una ''netinst''). | |||
== Collegamenti esterni == | |||
[1] [https://cdimage.debian.org/cdimage/unofficial/non-free/firmware/ Indirizzo dei tre file contenenti firmware]<br/> | |||
[2] [https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/ Immagine con firmware]<br/> | |||
[3] [https://packages.debian.org/stretch/firmware-realtek Pacchett .deb per firmware Realtek]<br/> | |||
[4] [https://www.debian.org/distrib/packages.it.html#search_contents Ricerca tra i pacchetti Debian]<br/> | |||
[5] [https://packages.debian.org/search?suite=all§ion=all&searchon=names&keywords=firmware Ricerca pacchetti firmware]<br/> | |||
{{Autori | {{Autori | ||
Riga 135: | Riga 148: | ||
}} | }} | ||
[[Categoria:Ottimizzazione del sistema]][[Categoria:Schede | [[Categoria:Ottimizzazione del sistema]][[Categoria:Schede Wireless]] |
contributi