GLG Programs fa uso di cookie per migliorare l'esperienza di navigazione degli utenti, ma non per tracciarne un profilo. Proseguendo nella navigazione, si accetta implicitamente l'utilizzo dei cookie.
[OK]Note legaliNon mi importa
Logo GLGPrograms Logo GLGPrograms

Webserver su Raspberry Pi

[Icona della Guida] Come configurare un Raspberry Pi affinché possa essere utilizzato come server per ospitare un sito web domestico (versione PDF)

QEMU

Se non avete ancora un Raspberry Pi, oppure volete configurare il sistema più comodamente, seduti dinnanzi al vostro computer, potete virtualizzare il sistema utilizzando l'emulatore QEMU. Attenzione: virtualizzare un'architettura diversa da quella del proprio processore richiede una notevole potenza di calcolo: si consiglia di utilizzare QEMU solamente se si ha almeno un processore dual core @ 1.5 GHz. In caso contrario, copiare l'immagine sulla scheda SD e configurare il sistema direttamente dal Raspberry Pi. Se non si è interessati alla virtualizzazione e si vuole installare subito il sistema sul Raspberry Pi per configurarlo direttamente dal minicomputer, si può copiare l'immagine sulla scheda SD (Sezione 6) e procedere con la configurazione (Sezione 4).

Installazione e preparazione dell'ambiente di lavoro

Innanzitutto, installiamo qemu e creiamo una cartella di lavoro:
# sudo apt-get install qemu-system    # Debian e derivate
# pacman -Syu qemu                    # Archlinux e derivate
$ mkdir ~/qemu
dopodiché procuriamoci il kernel ARM per QEMU:
$ cd ~/qemu/ && wget -c http://xecdesign.com/downloads/linux-qemu/kernel-qemu
Una volta ottenuti tutti gli strumenti e tutto il materiale necessario, bisogna modificare l'immagine per renderla adatta a funzionare anche su macchina virtuale; pertanto, individuiamo la partizione di / (root) all'interno dell'immagine e montiamola per modificarla:
$ file 2013-02-09-wheezy-raspbian.img
Come vediamo, ci sono due partizioni: a noi interessa la seconda (formattata in ext4). Considerando il settore di inizio di tale partizione, stabiliamo il byte di inizio della partizione all'interno dell'immagine moltiplicando tale valore per 512, e usiamo il nuovo valore ottenuto come offset per montare la partizione:
# mount 2013-02-09-wheezy-raspbian.img -o offset=62914560 /mnt
Una volta montata la partizione, modifichiamo il file /etc/ld.so.preload commentando l'unica linea presente.
# nano /mnt/etc/ld.so.preload
Smontiamo l'immagine:
# umount /mnt

Avvio dell'emulatore

Running QEMU Caricamento di Raspbian nell'emulatore
Con la seguente riga di comando, invochiamo QEMU per avviare Debian:
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2013-02-09-wheezy-raspbian.img -redir tcp:5022::22 -redir tcp:5080::80
Si noti l'opzione -redir tcp:5022::22, la quale redirige la porta 5022 del sistema host (il nostro computer fisico) alla porta 22 del sistema guest (il Raspberry Pi virtualizzato). In questo modo, una volta avviato l'emulatore, col seguente comando saremmo in grado di connetterci al Raspberry Pi fittizio tramite ssh, come se fosse un computer sulla rete:
$ ssh pi@127.0.0.1 -p 5022
Molto probabilmente, l'immagine sarà stata danneggiata da queste operazioni poco ortodosse; pertanto, Debian ci notificherà un errore sul disco, che sarà velocemente corretto impartendo questo comando al terminale di recovery che ci viene presentato:
# fsck /dev/sda2
Riavviamo la macchina virtuale (eventualmente chiudendo QEMU nel caso non collabori) e il sistema sarà pronto per essere modificato:
# reboot
Trucco: una volta constatato il corretto funzionamento del sistema virtualizzato, si può inibire il terminale grafico forzando l'utilizzo del solo terminale testuale, semplicemente aggiungendo l'opzione -cursors alla riga di comando di QEMU.

Installazione sulla scheda SD

Per copiare l'immagine del sistema sulla scheda SD occorre innanzitutto individuare il device node che corrisponde alla scheda SD:
# fdisk -l
Supponiamo che la scheda SD sia /dev/sdb, allora
# dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdb conv=sync
Per comodità, possiamo vedere come procede la copia inviando un segnale di tipo USR1 a dd, in questo modo:
kill -USR1 $(ps -A | grep -w dd | awk '{print $1;}')
In ogni caso, armiamoci di pazienza perché può essere necessario aspettare anche una mezz'ora. Una volta copiata l'immagine sulla scheda SD, è necessario espandere il filesystem su tutta la scheda, in modo da sfruttarne tutta la capacità (altrimenti lo spazio a disposizione è di ~2G). Per far ciò, si può utilizzare il tool presente sull'immagine, oppure più comodamente espanderlo con GParted direttamente dal nostro computer. Se non abbiamo GParted, installiamolo e avviamolo:
# apt-get install gparted   # Debian e derivate
# pacman -S gparted         # Archlinux e derivate
# gparted &
Individuiamo la nostra scheda SD (per esempio, /dev/sdb) e la partizione da espandere (nel caso dell'esempio, sdb2); facciamoci click col tasto destro del mouse e scegliamo Ridimensiona/Sposta: nella finestra che compare, allarghiamo la partizione fino a riempire tutto lo spazio a disposizione e confermiamo le modifiche. A questo punto, armiamoci di pazienza e attendiamo il ridimensionamento del filesystem — anche se in genere questa operazione richiede al massimo qualche minuto.

Backup della scheda SD e ripristino

Backup
dd può essere analogamente utilizzato anche per fare una copia di sicurezza (backup) della scheda SD e quindi di tutte le modifiche che vi abbiamo effettuato sopra (per risparmiare spazio, l'immagine copia di sicurezza viene compressa con gzip). Prima di eseguire questi comandi, è necessario smontare la scheda SD.
# dd if=/dev/sdb conv=sync | gzip -c > backup.gz
Per ripristinare l'immagine di backup precedentemente creata tramite l'ausilio di dd e gzip sul disco /dev/sdb:
# cat backup.gz | gzip -d > /dev/sdb
Pagina scritta da Giovan BattistaGiovan Battista

Hai una domanda? Scrivici!
Questa pagina ti è piaciuta? Condividila!
Share on Facebook Share on Google+ Share on linkedin