BANANA PI
Ancora con il Banana PI che ormai è diventato il mio pane quotidiano.
In questo nuovo articolo, presento un progetto già semi pronto, ovvero un immagine di debian 7 installata e funzionante.
Questa volta, non ho una versione minimalissima, infatti dopo il solito debootstrap ho installato un kernel modulare ed alcuni programmi per facilitare l’usabilità del nostro micro server Banana PI.
Qui è possibile scaricare l’immagine pronta per essere “BURNATA” su una SD di almeno 16Gb.
Questa immagine, pur essendo striminzita, meno di 600Mb, necessita di spazio perché ho previsto che possa fungere da Hard Disk, pertanto più è grande la SD maggiore sarà lo spazio a nostra disposizione sul device.
Una volta scaricata l’immagine e decompressa bisogna copiarla sulla nostra schedina SD, pertanto inseriamo nel nostro computer la SD, individuiamo il device e la pialliamo, poi burniamo l’immagine.
Burnare è un termine che in realtà non esiste, viene dall’inglese BURN, tradotto letteralmente vuol dire bruciare, ma noi non dobbiamo dare alle fiamme la schedina 🙂 il verbo TO BURN si usa per i CD, i DVD e tutti quei device che devono essere impressi.
fdisk -l ci da la lista dei device disponibili, nel mio caso ho una sdb, pertanto procedo a piallarla.
dd if=/dev/zero of=/dev/sdb ibs=1M count=100
Poiché non mi interessa piallare tutto, mi accontento dei primi 100Mb, questo mi garantisce una sommaria pulizia e la cancellazione di una eventuale File Allocation Table e della Partition Table.
Al termine la rimuoviamo con forza e la reinseriamo, se tutto è andato per il meglio, la scheda non dovrebbe venir montata in automatico.
Rieseguendo un fdisk -l il risultato dovrebbe essere più o meno questo:
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x00000000
Il disco /dev/sdb non contiene una tabella delle partizioni valida
Benissimo a questo punto è ora di “BURNARE” la nostra fantastica schedina 🙂
dd if=banana.img of=/dev/sdb
Al termine avremo copiato meno di 600Mb, per scrupolo diamo un sync per essere sicuri di aver scaricato tutta la cache sulla scheda SD e poi rimuoviamo la schedina.
La inseriamo nel nostro Banana PI ed effettuiamo il primo bootstrap (in realtà non è il primo, ne ho eseguiti altri io).
Appena terminato il caricamento, il nostro Banana Pi ci mostra la schermata di login.
Per fare le cose semplici, root ha la password 123456 .
Quindi accediamo come utente root ed il ns banana ci mostra la schermata di welcome.
A questo punto è ora di allargare la partizione.
Poiché sarebbe una procedura macchinosa, ho predisposto una serie di comandi aggiuntivi che facilitano la vita.
Digitando il comando EXT_it viene fuori l’elenco dei comandi aggiuntivi con la relativa spiegazione in Italiano.
Anche se già predisposto per una versione in inglese, il comando EXT_en non mostra le spiegazioni in inglese, questo sarà disponibile dalla prossima immagine, preferisco fare prima le cose più importanti.
Il Banana Pi è già settato per la tastiera italiana, con il fuso orario di Roma e la lingua italiana, pertanto consiglio di non toccare queste cose a meno che non abbiate la necessità di configurazioni differenti.
L’acceleratore grafico è disattivo, visto che preferiamo sfruttare la potenza del processore in altro.
Quindi digitiamo il comando bananian-config e rispondiamo NO a tutte le domande eccetto a quella in cui viene proposto di espandere il file system (ottava domanda); questa infatti è l’unica raccomandata.
Al termine è NECESSARIO riavviare il Banana Pi quindi digitiamo il comando di riavvio shutdown -r now
Attenzione, con il comando bananian-config, se si impostano parametri sbagliati, è facile “CREMARE” il proprio Banana PI, infatti da qui è possibile impostare la frequenza di clock ed altri parametri, trattandosi di un sistema molto modesto, non ci sono controlli di alcun tipo, il sistema fa esattamente quello che gli si dice di fare, basta impostare un frquenza elevata ed il clock si comporta di conseguenza, tempo 40 secondi e si vede il fumo dai componenti, basta dirgli che abbiamo 6 processori e lui si setta per 6 processori, tempo 40 secondi ed esce il fumo 🙂
Gli diciamo che c’è l’hard disk e lui parte da hard disk, se c’è, altrimenti non non parte più. Quindi è importante non fare prove con questo comando, consiglio piuttosto un buon libro sui processori ARM se si vuole comprendere al massimo questo fantastico oggetto.
Torniamo al nostro fantastico Banana Pi perché è giunto il momento di configurarlo a dovere.
Cominciamo con editare il file /etc/fstab per dirgli che possediamo un file system, infatti fino ad ora, il Banana Pi fa il bootstrap caricandosi tutto in memoria e questo ne compromette le prestazioni.
Verifichiamo l’UUID della ns partizione di Root.
Digitando fdisk -l si nota che ci sono 2 partizioni, una da 20M e l’altra dell’intera capacità del disco, non possedendo il bios come gli altri computer, lo abbiamo messo sulla nostra SD ed è la partizione da 20MB
L’altra partizione, la /dev/mmcblk0p2 è la partizione di Root.
Digitando il comando e2label /dev/mmcblk0p2 il risultato sarà Root.
A questo punto individuiamo l’UUID che ci interessa e lo infiliamo nel file fstab
poi nomencliamo il /proc ed infine creiamo una swap.
Ed ecco qui il mio file fstab
proc /proc proc defaults 0 0
/etc/swap.swp none swap defaults,pri=10 0 0
UUID=6f9a4c46-8288-4593-9cce-d2b0576a41a5 / ext4 errors=remount-ro 0 1
Per Creare il file di swap possiamo dare il seguente comando
dd if=/dev/zero of=/etc/swap.swp ibs=2M count=1024
Questo creerà un file da 2 Gb
Adesso va formattato per lo swap
mkswap /etc/swap.swp
A questo punto bisogna riavviare, se tutto è andato per il meglio, il nostro Banana Pi si riavvierà senza problemi.
Dopo aver rieffettuato il login possiamo digitare il comando mount e verificare le partizioni montate.
mount
/dev/root on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=496776k,nr_inodes=124194,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=99380k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=198740k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
Quando siamo sicuri che il tutto funzioni, un bel apt-get update fa si che venga riletta la source list, successivamente apt-get upgrade -y sistema i problemi di sicurezza ed aggiorna il nostro Banana Pi.
Per ora sconsiglio l’aggiornamento alla versione JESSIE di DEBIAN poiché io stesso sto avendo problemi con questa versione che sembra essere stable solo per i processori X86 e AMD64.
Sui processori ARM e più precisamente su Banana Pi ottengo degli errori random che non sempre si riesce a ricreare e che sto cercando di risolvere insieme agli sviluppatori di DEBIAN.
Su Raspberry Pi, molti errori non escono anche perché quest’ultimo non ha il canale SATA e di conseguenza non è possibile mettere un hard disk, tuttavia sono presenti molti degli errori che ottengo sul Banana Pi usando solo la SD.
Per Chi volesse utilizzare un Hard Disk, le immagini da prendere sono 2, una contiene il BIOS e la partizione /boot, l’altra contiene la root vera e propria.
Trattandosi di Hardware Open Source, qui è possibile seguire le discussioni.