Debian e firmware: differenze tra le versioni
S3v (discussione | contributi) mNessun oggetto della modifica |
S3v (discussione | contributi) mNessun oggetto della modifica |
||
Riga 20: | Riga 20: | ||
<pre># update-initramfs -u -k all</pre> | <pre># update-initramfs -u -k all</pre> | ||
oppure: | oppure: | ||
<pre>$ dmesg | | <pre>$ dmesg | egrep -i "firmware|fw"</pre> | ||
Ad esempio: | Ad esempio: | ||
<pre> | <pre> | ||
Riga 46: | Riga 46: | ||
[ 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. | ||
Altro metodo è quello 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: | Altro metodo è quello 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: | ||
Riga 56: | Riga 56: | ||
== 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 105: | Riga 105: | ||
Ad esempio: | Ad esempio: | ||
<pre> | <pre> | ||
# dpkg -i firmware- | # dpkg -i firmware-realtek_0.36+wheezy.1_all.deb | ||
</pre> | </pre> | ||
== Pacchetti firmware == | == Pacchetti firmware == | ||
La lista dei [[pacchetti]] contenenti firmware può essere visualizzata in [http://packages.debian.org/search?suite=all§ion=all&searchon=names&keywords=firmware questa pagina]. | La lista dei [[pacchetti]] contenenti firmware può essere visualizzata in [http://packages.debian.org/search?suite=all§ion=all&searchon=names&keywords=firmware questa pagina]. | ||
* '''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>. | ||
Riga 131: | Riga 131: | ||
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 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 | 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 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''). | ||
{{Autori | {{Autori |
Versione delle 21:32, 10 gen 2014
![]() Tutte le versioni supportate di Debian |
Introduzione
![]() |
ATTENZIONE: questa guida tratta software a sorgente chiuso e potenzialmente non conforme alle Debian Free Software Guidelines. Considerare la possibilità di ricorrere a programmi aderenti ai principi del Free Software. |
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.
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.
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.
Prima di iniziare
La prima esigenza da soddisfare è sapere esattamente quale hardware è presente sulla propria macchina. Per far questo è possibile avvalersi di strumenti grafici o testuali che ricavano informazioni sull'hardware di sistema oppure eseguire i comandi:
uname -a
lspci
lsusb
lscpu
che in genere sono sufficienti per fornire le informazioni di cui si ha bisogno.
Periferiche che hanno bisogno di firmware
Per individuare le periferiche che necessitano di firmware, si possono utilizzare i comandi:
# update-initramfs -u -k all
oppure:
$ dmesg | egrep -i "firmware|fw"
Ad esempio:
# update-initramfs -u -k all update-initramfs: Generating /boot/initrd.img-3.2.0-4-amd64 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
il comando rigenera il l'initramfs e ci informa del fatto che il modulo "r8169" (che gestisce la scheda di rete) ha bisogno di firmware.
Allo stesso modo il comando:
$ dmesg | egrep -i "firmware|fw" [ 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.603745] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) [ 6.612709] platform microcode: firmware: agent aborted loading intel-ucode/06-36-01 (not found?) [ 7.106563] psmouse serio2: elantech: assuming hardware version 3 (with firmware version 0x450f00) [ 20.866395] r8169 0000:03:00.0: firmware: agent aborted loading rtl_nic/rtl8105e-1.fw (not found?) [ 20.871348] r8169 0000:03:00.0 eth0: unable to load firmware patch rtl_nic/rtl8105e-1.fw (-2)
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.
Altro metodo è quello guardare il contenuto della directory /run/udev/firmware-missing/
in cui udev
inserisce informazioni riguardanti il firmware mancante durante il riconoscimento delle periferiche:
$ ls /run/udev/firmware-missing/ intel-ucode\x2f06-36-01 rtl_nic\x2frtl8105e-1.fw
Quali pacchetti installare
Ci sono diverse strade.
1) Utilizzare un motore di ricerca specificando la periferica hardware individuata attraverso il comando "lspci" o "lsusb".
Ad esempio per cercare firmware per la propria scheda di rete:
$ lspci .. 02:00.0 Network controller: Atheros Communications Inc. AR9485 Wireless Network Adapter (rev 01) ...
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".
2) Cercare i pacchetti adatti in base alle informazioni fornite dai precedenti comandi. Ad esempio la stringa:
r8169 0000:03:00.0: firmware: agent aborted loading rtl_nic/rtl8105e-1.fw (not found?)
informa del fatto che non viene trovato il file /lib/firmware/rtl_nic/rtl8105e-1.fw
. A questo punto basta cercare il pacchetto a cui appartiene:
$ apt-file update && apt-file search rtl8105e-1.fw ... firmware-realtek: /lib/firmware/rtl_nic/rtl8105e-1.fw
cioè "firmware-realtek". Allo stesso modo:
$ apt-file update && apt-file search intel-ucode ... intel-microcode: /lib/firmware/intel-ucode/06-0f-02 ...
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.
Installare il firmware
Individuato il pacchetto contenente il firmware di cui si ha bisogno, basta installarlo dai repository con il classico:
# apt-get install nomepacchetto
Ad esempio:
# apt-get install firmware-realtek
Prestare attenzione alla sezione di cui il pacchetto fa parte. Se questo appartiene alla sezione non-free, bisognerà abilitarla nel file /etc/apt/sources-list
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 relativo all'architettura della macchina su cui deve essere installato (amd64, i386, etc.).
Le pagine da cui prelevare i pacchetti .deb sono quelle classiche. Ad esempio, questa è la pagina relativa al pacchetto "firmware-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.
Una volta prelevato il pacchetto .deb, quest'ultimo va installato con dpkg:
# dpkg -i nomepacchetto.deb
Ad esempio:
# dpkg -i firmware-realtek_0.36+wheezy.1_all.deb
Pacchetti firmware
La lista dei pacchetti contenenti firmware può essere visualizzata in questa pagina.
- firmware-linux-free
firmware conforme alle DFSG; è contenuto nelle sezione main. - firmware-linux-nonfree
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
metapacchetto che installa i pacchetti firmware-linux-free e firmware-linux-nonfree. Appartiene alla sezionenon-free
. - firmware-atheros, firmware-intelwimax, firmware-b43-installer, firmware-ipw2x00, etc.
Pacchetti anch'essi non free contenenti firmware diversi da quelli presenti infirmware-linux-nonfree
; sono suddivisi per tipo di hardware di riferimento. - intel-microcode e amd64-microcode
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
Può accadere che i produttori di hardware rilascino del firmware più aggiornato per le proprie periferiche. Questo firmware, se disponibile per distribuzioni GNU/Linux, va prelevato dalle rispettive homepage dei produttori e installato come normale pacchetto (se presente in formato .deb) oppure utilizzando l'installer fornito (tipicamente è uno script .run o .sh).
Prestare particolare attenzione alla versione del kernel per cui questo firmware è stato scritto, alla licenza che lo accompagna e al formato con cui viene distribuito. Le note di installazione sono sempre visibili in un file README, o con nome simile, presente all'interno del pacchetto stesso.
Spesso l'installazione di questo firmware non è strettamente indispensabile in quanto viene incluso nei successivi aggiornamenti dei pacchetti di firmware Debian.
Seguire questa strada soltanto nel caso in cui tutti gli altri metodi portino all'impossibilità di far funzionare il proprio hardware.
Firmware durante l'installazione
Durante l'installazione di Debian può accadere che l'installer produca un messaggio simile a questo:
![Installer firmware.png](/images/thumb/2/26/Installer_firmware.png/700px-Installer_firmware.png)
lamentando l'impossibilità di far funzionare determinate periferiche senza che l'utente abbia il firmware adatto.
Questo 'problema' può essere risolto prelevando uno dei due file (.zip o .tar.gz) da 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/
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.
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 trovare nell'impossibilità di terminare correttamente l'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).
Guida scritta da: S3v 16:31, 10 gen 2014 (CET) | ![]() |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |