SheevaPlug
Versioni Compatibili Debian 6 "squeeze" ERRORE: utilizzare "unstable_2024" come parametro al posto di " Sid "! Vedi qui. |
Introduzione
Questa guida illustra come installare Debian sullo SheevaPlug, primo modello. Per gli altri modelli, far riferimento alla documentazione indicata tra le fonti.
Un grazie sentito a Martin Michlmayr, sul cui lavoro si basa gran parte di questa guida.
Preparazione
Memoria SD
Se si intende effettuare l'installazione su SD, è consigliabile spianare completamente la memoria da un pc, eliminando qualsiasi partizione preesistente su di essa, ad esempio con
# gparted /dev/mmcblk0
Nonostante la tabella delle partizioni sia appena stata ripulita può succedere che i vecchi dati facciano andare in errore il bootloader al momento dell'avvio. È allora possibile azzerare veramente la tabella delle partizione con dd
# dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=10
Con questo comando si scrivono i primi 10MB della scheda con degli 0. Questo è più che abbondante per cancellare la tabella delle partizioni e l'inizio della prima partizione.
Server TFTP
Nella maggior parte dei casi non è strettamente indispensabile, ma è comodo.
Per averne uno a disposizione, da una macchina Debian è sufficiente installarlo con aptitude install tftpd-hpa
. Se lasciamo invariate le impostazioni, la directory root del nostro server TFTP sarà /srv/tftp
.
Prima accessione
Attualmente la macchina viene fornita con Ubuntu 9.04 preinstallato sulla memoria flash.
- Collegare il plug ad un router con DHCP attivato;
- alimentarlo;
- attendere qualche minuto;
- da un pc in rete accedere via SSH:
$ ssh root@IP_SHEEVAPLUG
nosoup4u
è la password predefinita; come prima cosa è vivamente consigliabile modificarla tramite il comando passwd
.
A questo punto occorre impostare correttamente l'ora sull'orologio hardware. Per far questo basta semplicemente impostare il fuso orario locale, fasare l'orologio di sistema e copiare l'ora sull'orologio hardware. Ecco come:
# dpkg-reconfigure tzdata # date 0105215610 # hwclock -w
dove 0105215610
significa gennaio-5-21:56-2010 (ora locale).
Aggiornare U-Boot
Una volta impostata correttamente l'ora, occorre probabilmente aggiornare U-Boot; deve essere almeno alla versione Marvell 3.4.19. Si consiglia comunque di installare la versione indicata in questa guida.
Per verificare quale versione è attualmente installata, bisogna accedere allo SheevaPlug tramite la sua interfaccia seriale disponibile sulla porta mini USB.
Verrà qui spiegato come farlo sfruttando un PC debianizzato. Per altri sistemi operativi, fare riferimento alla documentazione ufficiale presente sui siti citati in basso.
# aptitude install screen
Alimentare lo SheevaPlug e collegare allo SheevaPlug e al PC il cavetto mini USB fornito in dotazione. Da un terminale verificare che il dispositivo sia stato visto:
$ lsusb Bus 001 Device 002: ID 9e88:9e8f
Il kernel dovrebbe aver assegnato il dispositivo, nel caso non ci siano altri dispositivi USB attaccati al PC, al file /dev/ttyUSB0
; è possibile verificarlo spulciando tra le ultime righe del file /var/log/syslog
. A questo punto è possibile trasformare il monitor del nostro PC nel... monitor dello SheevaPlug:
$ screen /dev/ttyUSB0 115200
Il terminale apparirà completamente vuoto, ma in realtà siamo già collegati allo SheevaPlug e sta già ricevendo tutti gli output a video provenienti da esso. Digitiamo quindi
root
seguito da <Invio>
ed effettuiamo il login immettendo la password scelta precedentemente.
Riavviando l'apparecchio possiamo finalmente accedere ad U-Boot:
# reboot
Per accedere alla console di U-Boot basta premere un tasto qualsiasi entro 3 secondi dal momento in cui si presenta il conto alla rovescia (poco dopo l'avvio).
Qualche comando essenziale della console di U-Boot (il manuale completo è presente qui): help
stampa a video tutti i comandi ammessi; help [comando]
stampa il manuale del comando; per avviare digitare boot
; reset
per riavviare.
Il comando version
ci fornirà la versione di U-Boot attualmente installata:
Marvell>> version U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16
A noi interessa la versione Marvell (l'ultimo numero).
In questo caso, come precedentemente spiegato, occorre passare ad una versione successiva. Questa operazione sarebbe teoricamente piuttosto critica, nel senso che nel caso in cui l'installazione non vada a buon fine, l'apparecchio perde la sua capacità di avviarsi. Fortunatamente è possibile ripristinare la configurazione di fabbrica attraverso l'interfaccia JTAG messa a disposizione sempre sulla porta mini USB dello SheevaPlug.
Scaricare quindi i binari e rinominare il file in uboot.bin
. Ora ci sono due strade possibili:
- sfruttare un server TFTP
- copiare U-Boot su una chiavetta USB e installarlo da essa.
Non avendo a disposizione un server TFTP, seguo la seconda opzione. È sufficiente formattare la chiavetta come FAT, copiarci il file, inserire la chiavetta nella porta dello SheevaPlug, accedere alla console di U-Boot e digitare i seguenti comandi:
usb start fatload usb 0:1 0x0800000 uboot.bin nand erase 0x0 0xa0000 nand write 0x0800000 0x0 0xa0000 reset
Verificare che sia tutto a posto. Infine per uscire da Screen occorre premere Ctrl-a
seguito da k
.
Installare Squeeze
Abbiamo la possibilità di installare il sistema operativo su diversi dispositivi:
- scheda SD
- chiavetta USB
- disco esterno USB
Le chiavette USB non danno problemi, mentre U-Boot ha molto spesso difficoltà ad avviare da disco rigido esterno USB. Se si vuole installare il sistema su disco esterno, la soluzione più semplice è di lasciare la directory /boot
su SD, e tutto il resto del sistema su disco esterno. In questo caso è ovviamente necessario eseguire l'installazione da rete, peraltro sempre consigliabile essendo molto semplice e comoda.
Al momento non è possibile installare Debian sulla memoria flash interna.
Far partire l'installer
Scarichiamo da uno dei mirror del debian-installer ufficiale, in questo caso per la versione in testing, uImage e uInitrd. Se contiamo di installare Debian su SD, copiamo questi file sulla stessa chiavetta che abbiamo già usato; viceversa, se vogliamo installare Debian su un dispositivo USB, copiamo i file su una scheda SD. Come terza, sempre valida e consigliabile alternativa, mettiamoli su un server TFTP.
Inseriamo i due dispositivi (quello che contiene l'installer e quello su cui avverrà l'installazione) nello SheevaPlug; entriamo nella console di U-Boot come spiegato precedentemente e digitiamo questo:
setenv mainlineLinux yes setenv arcNumber 2097 saveenv reset
Lo SheevaPlug è così configurato in modo da poter eseguire il kernel usato da Debian.
Digitiamo nella solita console, se l'installer si trova su USB:
usb start fatload usb 0:1 0x00800000 /uImage fatload usb 0:1 0x01100000 /uInitrd
Altrimenti, se si trova su una SD formattata ext2 o ext3:
mmcinit ext2load mmc 0:1 0x00800000 /uImage ext2load mmc 0:1 0x01100000 /uInitrd
Infine, se si trova sul server TFTP:
setenv serverip 192.168.X.Y setenv ipaddr 192.168.X.147 tftpboot 0x00800000 uImage tftpboot 0x01100000 uInitrd
sostituendo ovviamente 192.168.X.Y con l'IP del server.
Ora è possibile avviare l'installer:
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most bootm 0x00800000 0x01100000
Alla prima finestra selezionare C se si vuole localizzare la distribuzione in Italiano. Da qui in avanti l'installazione procede come di consueto: l'unica particolarità da tenere presente è la creazione obbligatoria, in fase di partizionamento, di una piccola partizione avviabile (circa 150 MB) formattata come ext2 con mount point /boot
.
Configurare U-Boot
Finita l'installazione illustrata precedentemente, rimane solo da configurare U-Boot in modo che lanci in automatico la nostra Debian. Per far questo, se la directory /boot
è installata su SD, bisogna inserire questi comandi nella console di U-Boot:
setenv bootargs_console console=ttyS0,115200 setenv bootcmd_mmc 'mmcinit; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd' setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000' saveenv run bootcmd
Se invece è installata su dispositivo USB:
setenv bootargs_console console=ttyS0,115200 setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x00800000 /uImage; ext2load usb 0:1 0x01100000 /uInitrd' setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000' saveenv
Conclusioni
Abbiamo ora a disposizione una Debian in tutto e per tutto: divertitevi!
Fonti
- http://www.cyrius.com/debian/kirkwood/sheevaplug/install.html
- http://www.openplug.org/plugwiki/index.php/New_Plugger_How_To
- http://blog.debianizzati.org/2009/10/19/sheevaplug-debian-installer/