Debian e firmware: differenze tra le versioni

m
dmesg può richiedere privilegi di amministrazione (a partire da Stretch, a seconda del kernel installato)
mNessun oggetto della modifica
m (dmesg può richiedere privilegi di amministrazione (a partire da Stretch, a seconda del kernel installato))
 
(22 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Non-free}}
{{Versioni compatibili}}
{{Versioni compatibili}}
== Introduzione ==
== Introduzione ==
{{Non-free}}
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>$ dmesg | grep -i "firmware|fw"</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 | egrep -i "firmware|fw"
# 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 e in più ci informa che è stata individuata dal sistema anche la mancanza del firmware per il microcodice della CPU.
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 individuta attraverso il comando "lspci" o "lsusb".<br/>
'''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 si ricerca "Atheros Communications Inc. AR9485 Wireless Network Adapter (rev 01)" (inserire gli apici) magari accompagnata da altre parole chiave come "Debian", "package" o "Firmware".
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)''' Cercare i pacchetti adatti in base alle informazioni fornite dai precedenti comandi. Ad esempio la stringa:
'''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:
<pre>
 
$ 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
</pre>
cioè "firmware-realtek".
cioè "firmware-realtek".
Allo stesso modo:
Allo stesso modo:
Riga 76: Riga 85:
  ...
  ...


'''3)''' Guardando 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,
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>.
<pre>
$ ls /run/udev/firmware-missing/
intel-ucode\x2f06-36-01  rtl_nic\x2frtl8105e-1.fw
</pre>
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 [http://www.debian.org/distrib/packages.it.html#search_contents questa pagina].


== 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-list</code> e poi eseguire un "apt-get update" per rigenerare la lista dei pacchetti.
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]] in formato [[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 [[Wheezy]], bisogna prelevare il pacchetto nella sua versione contenuta in "Wheezy" e deve essere relatvo all'architettura della macchina su cui deve essere installato (amd64, i386, etc.).<br/>
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, [http://packages.debian.org/wheezy/firmware-realtek questa] è la pagina relativa al pacchetto "firware-realtek" per "Wheezy"; 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]].
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-realtek.deb
# 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 ==
La lista dei [[pacchetti]] contenenti firmware può essere visualizzata in [http://packages.debian.org/search?suite=all&section=all&searchon=names&keywords=firmware questa pagina].
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 [[DFSG]]; è contenuto nelle [[sezione]] [[main]].
* '''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 due file (.zip o .tar.gz) da [http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/ qui] per poi copiarli su una pendrive, oppure ricorrendo all'installazione di Debian attraverso questa immagine contenente firmware non-free: http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/ <br/>
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/>
Nel caso in cui si stia installando una [[netinst]] o una mini.iso e si abbia la necessità di firmware per la propria scheda ethernet o wireless (che permettono il collegamento alla Rete necessario per scaricare i pacchetti di cui si ha bisogno), è sempre obbligatorio copiare i file di cui sopra su una pendrive (o altro supporto rimovibile) altrimenti ci si potrebbe trovere 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]]).
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&section=all&searchon=names&keywords=firmware Ricerca pacchetti firmware]<br/>


{{Autori
{{Autori
Riga 135: Riga 148:
}}
}}


[[Categoria:Ottimizzazione del sistema]][[Categoria:Schede wireless]]
[[Categoria:Ottimizzazione del sistema]][[Categoria:Schede Wireless]]
3 581

contributi