Bananian Linux: il triste annuncio

E’ proprio di oggi l’annuncio sul sito ufficiale che Bananian Linux è giunto alla fine dello sviluppo.

https://www.bananian.org/news

Viene garantito almeno 1 anno di ulteriori patch di sicurezza ma la storia di Bananian Linux si conclude qui. Peccato, perché tra le varie schede che ho provato in questi ultimi anni nulla si è rilevato stabile, granitico e affidabile come il mio Banana Pro con installato proprio Bananian  come sistema operativo. Non c’è Raspberry che tenga, e poi quella porta SATA che gli altri non hanno ha fatto veramente la differenza. Gli sviluppatori del team passano idealmente il testimone alla distribuzione Armbian 

https://www.armbian.com/download/

che è in grado tra l’altro di gestire una moltitudine di schede attualmente in commercio. Non mi rimane che fare i complimenti al team di sviluppo per l’ottimo lavoro svolto su questa distribuzione, a mio parere la migliore Debian per ARM.

Banana Pi M3

Che delusione! Stavo seguendo con un certo interesse l’uscita sul mercato di questa nuova scheda (che non è comunque di fabbricazione Lemaker) che prometteva di essere interessante come miglioramento delle precedenti Banana Pi ma mi sono imbattuto in questo articolo che la ha stroncata un po’ da tutti i punti di vista. Vabbè che la porta SATA è in realtà un bridge USB-to-SATA ma i tempi di accesso sono a dir poco scandalosi.

Ecco il link:  http://forum.armbian.com/index.php/topic/474-quick-review-of-banana-pi-m3

 

 

Spostamento server

Ho dovuto di nuovo spostare il sito su un altro server cambiando sistema operativo. Sono rimasto piuttosto perplesso nei confronti delle instabilità mostrate dalla Raspbian Wheezy sul Raspberry: prima ha cominciato a funzionare male la ZenCache poi addirittura a fronte dell’aggiornamento del Kernel alla versione 4.1 dopo poche ore il sito diventava irraggiungibile e addirittura il Raspberry non era più accessibile via SSH. Unica soluzione il reboot. La cosa brutta è che a differenza del primo caso i log di sistema non mi hanno permesso di ricostruire la natura del problema. Insomma, ora il blog gira su un Banana Pro dotato della stabilissima Bananian (kernel 3.4.108) e mi sembra che sia migliorato come velocità di accesso non fosse altro perché ora il server ha a disposizione una ethernet Gigabit ( e non fast-ethernet) e un “vero” hard disk collegato alla porta SATA. Ho provato un po’ di tutto su queste schede ma devo dire che l’accoppiata Banana Pi/Pro e Bananian 15.08 headless per questo tipo di attività non si batte.

Raspberry e Banana Pi/Pro – Leggere la temperatura della cpu

Ecco due brevi script utili per leggere la temperatura corrente della CPU rispettivamente sulle schede Rasbberry e Banana Pi/Pro. Sulla prima scheda le ho testate su distribuzioni Fedora e Centos (mi aspetto che funzioni anche sulla Redsleeve). Nel secondo caso è testato sulla Bananian,

Raspberry:

Banana Pi/Pro:

Si può ad esempio copiare il codice in uno script chiamato cpu_temp.sh nella directory /root/scripts (da creare) e dopo aver dato un comando chmod 755 cpu_temp.sh lanciarlo con ./cpu_temp.sh.

Banana Pi/Pro – Installazione librerie Python e C per i GPIO

La preparazione dell’ambiente di sviluppo C e Python nelle 2 schede Lemaker avviene in maniera analoga ai passi compiuti con i Raspberry. Lemaker ha infatti adattato le stesse librerie GPIO e WiringPi per i due linguaggi rendendo le cose molto più semplici.

Ho scelto come S.O. di riferimento per il Banana Pro in mio possesso il Bananian 15.04 . Non è dotato di interfaccia grafica quindi è ideale per ottenere il massimo delle prestazioni dalla scheda pur richiedendo solo l’accesso SSH e quindi conoscenze di Linux Debian in generale. Immagino che il tutto funzioni perfettamente anche su Raspbian mentre invece ho rilevato dei problemi insanabili con la Fedora: un problema con una libreria del cross compiler rende impossibile la compilazione sia delle GPIO che delle WiringPi. Mi viene il sospetto che sia colpa di come è stato preparato il kernel della distribuzione, quindi niente da fare.

Sulla Bananian si opera come utente Root, quindi non si usa l’elevazione “sudo”. Chi usa la Raspbian si regoli di conseguenza e premetta “sudo” ai comandi di tipo amministrativo.

Installazione preliminare:

Procediamo con le librerie per il Python. Il possesso di un Banana Pi oppure Pro impone due download differenti:

Banana Pro:

Banana Pi:

Installazione della libreria:

Controllare dai messaggi di uscita che tutto sia andato bene. Durante la compilazione vengono prodotti dei “warning”. Sarebbe meglio se non ci fossero ma non comportano problemi.

Passiamo alle librerie WiringPi per il linguaggio C. Torniamo alla directory /root.  Il download anche qui dipende dalla scheda Pi o Pro:

Banana Pro:

Banana Pi:

E installiamo:

Se tutto è andato bene possiamo controllare l’installazione con

ma soprattutto vedere le mappature del connettore a 26 o 40 pin con:

Ecco ad esempio l’output relativo al Banana Pro:

Schermata 2015-08-08 alle 08.53.29

 

Al centro si vedono quindi i Pin Fisici della scheda, che in fase di setup vengono denominati BOARD, poi quelli codificati dalla libreria C WiringPi e infine i BCM.

Io in genere in Python preferisco iniziare il codice con una GPIO.setmode(GPIO.BOARD), utilizzando quindi i Pin Fisici della scheda. Quando ci sono varie versioni di schede con diverse mappature (sia su Banana che su Raspberry) mi sembra che si faccia meno confusione in questo modo.

Banana Pro: Reboot e il led verde (rc.local)

La prima cosa che ho notato è che a differenza del Raspberry Pi2 il Banana Pro riesce a fare correttamente un reboot da remoto anche quando nulla è collegato alla porta HDMI. Sembra una cosa da niente ma è fondamentale quando si è fisicamente lontani dalla scheda e dopo aver ad esempio effettuato delle modifiche o degli aggiornamenti che coinvolgono il kernel si vuole riavviare il Banana che è in configurazione “headless”.

La seconda cosa è che durante il funzionamento il Banana Pro ha a bordo un piccolo led di colore verde che blinka ripetutamente. Se la scheda è montata dentro un contenitore trasparente vi assicuro che di notte avrete qualcosa che assomiglia ad un albero di Natale capace di disturbare chiunque dorma nello stesso ambiente in cui è installata la scheda. Come spegnere questo led?

Entriamo come utente root e digitiamo:

Questa modifica però verrà persa al prossimo reboot del server perché il sistema operativo in fase di avvio riscriverà di nuovo questo ed altri valori forzando sempre delle stringhe predefinite. L’unico sistema è quello di scrivere questo comando in un file che si chiama rc.local che viene messo a disposizione dell’utente proprio per dare comandi all’avvio dopo che sono state completate le fasi di inizializzazione. La cosa importante quindi è che l’rc.local viene eseguito all’ultimo appena prima la presentazione del prompt di comandi. Questo lo rende utile e necessario all’esecuzione di script utente, cosa per cui è nato.

Detto questo entriamo in edit con vi o nano del file /etc/rc.d/rc.local che in questa edizione di Fedora 21 tra l’altro non esiste ancora, quindi sarà un nuovo file.

Inseriamo al suo interno questi comandi:

e salviamo le modifiche. Diamo i permessi di esecuzione allo script altrimenti non partirà.

Dopo di che se il led verde sta lampeggiando proviamo lo script per vedere se è tutto a posto.

e se vedremo spegnersi il led verde significa che tutto è ok. Facendo un reboot verificheremo che il led verde si spenga alla fine del reboot stesso. A questo punto lo spegnimento del led verde in caso di server headless segnala che il Banana ha eseguito correttamente il boot ed è pronto a ricevere comandi via SSH. Oltre a togliere quel fastidioso lampeggiamento continuo direi che abbiamo dato anche un senso al nostro led verde 🙂

Banana Pro e BerryBoot

Dopo aver provato le varie distribuzioni presenti sul sito ufficiale di Lemaker sono giunto alla conclusione che il metodo migliore di dotare il Banana Pro di una buona distribuzione Linux è quello di scaricare BerryBoot e gestire il tutto tramite questo prodotto. Lo possiamo trovare a questo link:

http://www.lemaker.org/resources/9-131/berryboot.html

Si tratta della versione 1.0, che poi viene aggiornata non appena si è fatto il boot dalla scheda microSD. BerryBoot permette di gestire un comodo multiboot tra più distribuzioni, se si ha a disposizione un HDD o SSD collegato alla porta SATA dà l’interessantissima possibilità di spostare là il sistema operativo con indubbi vantaggi di spazio disponibile e infine mette a disposizione delle distro Linux più aggiornate rispetto a quelle presenti nel classico link di Lemaker.

berryboot01

Il concetto è molto simile al Noobs per il Raspberry, ma in effetti risulta essere molto più potente. C’è da dire che esistono versioni di BerryBoot sia per il vecchio Raspberry che per il Pi2, per cui lo consiglio caldamente.

Per me è stato piacevole scoprire ad esempio che è disponibile una Fedora 21 con installato Mate, che a me non interessa, ma che risulta nettamente migliore della Fedora 20 proposta da Lemaker che ha secondo me qualche problema nel kernel (vedi le considerazioni sul carico sempre a circa 1 anche quando il server è idle che ho fatto nel precedente articolo). Con un buon lavoro di ripulitura dei pacchetti che non servono ad un uso “headless” penso si possa tirar fuori un ottimo OS adatto ad un server.

berryboot02

 

Per chi preferisce Debian c’è comunque una Raspian Wheezy che mi sembra più aggiornata rispetto alla classica proposta sempre nel sito Lemaker. Esiste una seconda pagina di distro (tab Others) dove si possono trovare anche un paio di distro Ubuntu e altri sistemi operativi meno “popolari”.

Concludo con l’inevitabile: il cavetto dell’antenna wifi in dotazione come prevedevo si è staccato. Basta muovere il contenitore con il Banana montato o usare i piccoli tasti di reset e accensione presenti sulla scheda e prima o poi si stacca, non c’è nulla da fare. Probabilmente, se proprio non si può fare a meno del modulo wifi onboard, è meglio far cadere una goccia di qualche resina sul connettore una volta installato per “inchiodarlo” saldamente alla motherboard. Tra l’altro sulle schede nuove non c’è speranza, è stato usato lo stesso sistema.

Banana Pro

bananapro01

Ho aggiunto alla scuderia anche un Banana Pro. E’ una scheda interessante, anche se da poco sostituita dalle nuove microschede di Lemaker. Non è un modello molto vecchio, è entrata in produzione nell’ottobre del 2014, ma il produttore ha appena inaugurato una nuova serie di schede (http://www.bananapi.com/index.php) tra cui un interessantissimo Smart Router. Ho voluto testare anche il Banana Pro perché, a differenza del Raspberry Pi2, monta una ethernet da 1 Gbit, più veloce quindi, e un connettore SATA2 a cui è possibile collegare hard disk a piatto rotante o SSD, con tempi di accesso notevolmente migliori delle microSD. Dispone infine di un modulo wifi incorporato, quindi non necessita di un dongle che va ad occupare una porta USB. Le prime due differenze rispetto al Raspberry (ethernet e SATA) lo rendono sulla carta più performante come home server in cui sia coinvolto un lavoro intenso di accesso allo storage, come nel caso di un cloud server, ad esempio.

Le note dolenti: il supporto su Internet sia sul sito ufficiale che sui forum è notevolmente inferiore rispetto ai Raspberry. Se ci troviamo di fronte ad un problema “strano” risulta più difficile trovare una soluzione “bella e pronta” già sperimentata da qualcuno. In qualche caso ho trovato riferimenti a file di configurazione che in realtà non esistono, anche perché oltretutto a livello di distribuzioni ci sono delle differenze tra Banana Pi e Banana Pro. Sulla rete quindi si trovano più informazioni sul modello precedente, il Banana Pi appunto, che sulla scheda Pro.

Una annotazione sull’hardware: il micro connettore dell’antenna wifi che va inserito sulla scheda è a dir poco detestabile. Microscopico, difficile da inserire e soprattutto instabile. Considerando il case in acrilico che viene spesso scelto (e così ho fatto anche io) e dove è piazzata l’antenna il minuscolo cavetto sicuramente darà fastidio o allo slot microSD o ai pulsanti di reset e accensione. Si stacca spesso, basta toccarlo, e questo specialmente quando la scheda è già chiusa nel case, è una cosa estremamente fastidiosa.

bananapro07

Ora si tratta di scegliere una immagine di un S.O. adatto a essere gestito in modalità headless. Ho scartato sia Raspbian che Bananian, che ho comunque provato, a causa della mia cordiale antipatia per Debian. Esiste sul sito ufficiale un’immagine di Fedora 20 dotata di Xfce4, che comunque presenta uno strano problema: anche con le cpu idle rilevo sempre un valore di carico compreso tra 1 e 1.20 e la cosa non mi piace molto. Sembrerebbe un problema di carico permanente sul bus I/O e comunque indica che la distribuzione non è “perfetta”. Su Bananian questo non succede, sintomo che almeno non è un problema di tipo hardware o dovuto alla microSD. L’alternativa sarebbe quella di provare le immagini ARM che sono disponibili sul sito di FedoraProject, che tra l’altro si riferiscono anche a Fedora 22, e quella è la direzione che intendo prendere. Staremo a vedere.