Differences between revisions 14 and 15
Revision 14 as of 2013-10-29 07:44:00
Size: 5822
Editor: GeoffSimmons
Comment: Sync with English master.
Revision 15 as of 2014-03-29 12:42:25
Size: 5822
Comment: sync with English master
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[DebianInstaller/NetbootFirmware|English]] - [[fr/DebianInstaller/NetbootFirmware|Français]] - Italiano -~ ~-[[DebianWiki/EditorGuide#translation|Traduzioni]]: [[DebianInstaller/NetbootFirmware|English]] - [[fr/DebianInstaller/NetbootFirmware|Français]] - Italiano -~
Line 48: Line 48:
=== Esempio n. 2 per Wheezy: aggiungere deb da firmware.tar.gz === === Esempio n. 2 per stable: aggiungere deb da firmware.tar.gz ===
Line 55: Line 55:
wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/wheezy/current/firmware.tar.gz wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/stable/current/firmware.tar.gz
Line 97: Line 97:
=== Esempio n. 2 per Squeeze: aggiungere i deb da firmware.tar.gz === === Esempio n. 2 per oldstable: aggiungere i deb da firmware.tar.gz ===
Line 104: Line 104:
wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/oldstable/current/firmware.tar.gz

Traduzioni: English - Français - Italiano


Avvio da rete e firmware

Questa pagina descrive come includere firmware non liberi nelle immagini Debian per l'avvio da rete.

Introduzione

Alcune schede di rete non hanno un firmware in ROM ma lo caricano piuttosto dal sistema operativo host; non è grosso problema finché non si realizza che gran parte dei firmware non è libera e non può essere inclusa nelle immagini standard del Debian-Installer.

La soluzione dell'installatore Debian proposta è di produrre udeb non liberi che contengano il firmware e modificare l'installatore per dare all'utente la possibilità di inserirli al momento dell'installazione stessa, scaricando da un archivio non-free (ad esempio attraverso la rete).

Il problema

Si può notare che questo approccio non funziona bene con le immagini per l'avvio da rete che hanno bisogno del firmware ethernet, e questo necessita di essere in initrd.gz prima dell'avvio del kernel; una soluzione è quella di costruire la propria immagine del Debian Installer. Ciò è possibile ed il processo di creazione del Debian Installer è descritto nella pagina wiki dell'Installatore Debian (d-i).

L'autore preferisce utilizzare un approccio diverso, basato sul fatto che il kernel Linux 2.6 utilizza initramfs piuttosto che initrd.

La soluzione: aggiungere il firmware ad initramfs

Initramfs è essenzialmente una concatenazione di archivi cpio compressi con gzip che vengono estratti in un ramdisk e usati dal kernel Linux come uno spazio utente anticipato. L'initrd.gz dell'installatore Debian è in realtà un unico archivio contenente tutti i file di installazione necessari all'avvio; con la semplice aggiunta di un altro cpio con i file del firmware mancanti si ottiene quanto desiderato.

Esempi per Debian 7 "Wheezy"

Le funzionalità presenti nell'installatore Debian e disponibili a partire dal rilascio Debian 6.0 (Squeeze) forniscono un metodo semplice per aggiungere firmware all'initramfs del debian-installer.

I test iniziali con il debian-installer di Wheezy, versione beta 4, mostrano che il metodo usato per Squeeze funziona ancora. Gli esempi per Wheezy con gli URL aggiornati sono descritti qui di seguito.

Esempio n. 1 per Wheezy: aggiungere un unico deb con firmware

FWTMP=/tmp/d-i_firmware
rm -rf $FWTMP
mkdir -p $FWTMP/firmware
cd $FWTMP/firmware
wget http://http.debian.net/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.36+wheezy.1_all.deb
cd ../
pax -x sv4cpio -w firmware | gzip -c >firmware.cpio.gz

# Spostarsi nella directory dell'initrd
cd /tftpboot/debian-installer/i386
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
cat initrd.gz.orig $FWTMP/firmware.cpio.gz > initrd.gz

Esempio n. 2 per stable: aggiungere deb da firmware.tar.gz

FWTMP=/tmp/d-i_firmware
rm -rf $FWTMP
mkdir -p $FWTMP/firmware
cd $FWTMP

wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/stable/current/firmware.tar.gz

tar -C firmware -zxf firmware.tar.gz

pax -x sv4cpio -s'%firmware%/firmware%' -w firmware | gzip -c >firmware.cpio.gz

# Spostarsi nella directory dell'initrd
cd /tftpboot/debian-installer/i386
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
cat initrd.gz.orig $FWTMP/firmware.cpio.gz > initrd.gz

Configurazione con preseed di Wheezy

Ricordarsi che è necessario abilitare il repository non-free per garantire che i pacchetti firmware ricevano gli aggiornamenti di sicurezza (nell'eventualità che ve ne siano).

Ciò può essere fatto usando con il preseed quanto segue:

  • base-config apt-setup/non-free boolean true

Esempi per Debian 6.0 "Squeeze"

Le nuove funzionalità nella versione Squeeze dell'installatore Debian forniscono un metodo più semplice per aggiungere il firmware al suo initramfs.

Esempio n. 1 per Squeeze: aggiungere il firmware da un singolo deb

FWTMP=/tmp/d-i_firmware
rm -rf $FWTMP
mkdir -p $FWTMP/firmware
cd $FWTMP/firmware
wget http://http.debian.net/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.28+squeeze1_all.deb
cd ../
pax -x sv4cpio -w firmware | gzip -c >firmware.cpio.gz

# Spostarsi nella directory dell'initrd
cd /tftpboot/debian-installer/i386
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
cat initrd.gz.orig $FWTMP/firmware.cpio.gz > initrd.gz

Esempio n. 2 per oldstable: aggiungere i deb da firmware.tar.gz

FWTMP=/tmp/d-i_firmware
rm -rf $FWTMP
mkdir -p $FWTMP/firmware
cd $FWTMP

wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/oldstable/current/firmware.tar.gz

tar -C firmware -zxf firmware.tar.gz

pax -x sv4cpio -s'%firmware%/firmware%' -w firmware | gzip -c >firmware.cpio.gz

# Spostarsi nella directory dell'initrd
cd /tftpboot/debian-installer/i386
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
cat initrd.gz.orig $FWTMP/firmware.cpio.gz > initrd.gz

Preconfigurazione di Squeeze

Si ricorda che è necessario abilitare il repository non-free per garantire che il pacchetto del firmware riceva gli aggiornamenti di sicurezza (se ce ne sono).

Questo può essere fatto preconfigurando quanto segue:

  • base-config     apt-setup/non-free      boolean true

Vedere anche


CategoryNetwork