Pagine

L'introduzione del Raspberry Pi ha segnato di fatto una svolta epocale nel campo informatico, permettendo di sviluppare software Embedded e Mobile senza doversi dotare di hardware fino a quel momento costosissimo.

Si è passati dagli oltre 300$ necessari per reperire una piattaforma di sviluppo professionale di basso livello, e spesso mal supportata, agli appena 35$ del Raspberry Pi, completa e funzionale base per progetti anche avanzati. La struttura completamente aperta ha permesso poi la realizzazione di numerosi dispositivi aggiuntivi, in grado di coprire quasi ogni esigenza tanto tra gli appassionati principianti quanto tra i professionisti veri e propri.

Aziende, Università e singoli hanno così cominciato ad utilizzare il Raspberry Pi in gran numero, e ad oggi ne sono stati distribuiti oltre un milione di esemplari. Nel tempo si sono aggiunte nuove funzionalità e bundle, e l'ultimo in ordine di tempo è rappresentato dal pacchetto formato dal software Mathematica e dal Wolfram Language, elargito gratuitamente agli utenti Raspberry Pi attraverso la distribuzione Raspbian, per un utilizzo didattico e/o senza scopo di lucro.

Il successo commerciale del Raspberry Pi ha così spinto molte aziende, spesso nate con tale preciso scopo, a realizzare una piattaforma analoga, speranzose di un successo similare. Ad oggi, purtroppo, nessuna di queste case ha saputo eguagliare i risultati della Raspberry Pi Foundation, ma nuovi emuli continuano a provarci.

Uno di questi è SolidRun, azienda israelina famosa per i CubieBox e le CubieBoard, e che recentemente ha presentato la piattaforma di sviluppo Hummingboard, disponibile in tre varianti. Andiamola a scoprire.


SolidRun è una giovane azienda israeliana, fondata nel 2010 da Kossay Omary e Rabeeh Khoury, i quali si sono fatti le ossa in una delle più importanti aziende attive nel mercato Embedded, Marvell. Proprio qui hanno imparato a conoscere approfonditamente il mondo ARM e, fatta tesoro di tale esperienza, hanno deciso di fondare una società che permettesse la fruizione di tali tecnolgie ad un pubblico più vasto, composto non solo di professionisti, come ci spiegano sul loro sito: “In 2010, we started smelling change in the air – all around the world. We could feel it – a pulsating hum, signifying the arrival of the future. The world was moving in a very definite direction, and several trends were about to converge. There was rising demand for smaller, energy-efficient and low-cost computers. And an increasing effort by the open-source community to support new projects and initiatives could be clearly seen”.

 

 

Nasce così, quasi in contemporanea con il Raspberry Pi, la CuBox, annunciata nel dicembre del 2011, ed infine commercializzata il mese seguente. Tecnicamente un ottimo prodotto, la CuBox commercialmente pagò la scelta dei due creatori di essere eccessivamente complessa e particolare (ad esempio, evitando l'utilizzo del Tantalio), rendendola troppo costosa per il pubblico a cui si rivolgeva. Costando ben 135$, si presentava quasi il triplo più costosa del piccolo Raspberry Pi. Partiti con un hardware pressoché simile, i due prodotti presero strade commerciali completamente differenti. Nel corso di questi anni SolidRun ha tentato di perseguire questa strada, presentando anche l'erede della prima CoBox, la più potente CuBox-i, ma con risultati altalenanti, soprattutto a causa di un supporto software non ineccepibile, di cui discuteremo più avanti.

Oggi, consapevoli degli errori commessi, Kossay e Rabeeh tornano con un nuovo prodotto, più semplice e quindi meno costoso, in linea con il target commerciale del Raspberry Pi: l'Hummingboard.


Uno dei più grandi limiti del Raspberry Pi è sicuramente la potenza non inesauribile, per usare un eufemismo, del SoC Broadcom utilizzato, come abbiamo avuto modo di constatare nel nostro articolo intitolato “Raspberry Pi: davvero utilizzabile come PC di fascia bassa?”.

 

Le tre versioni della HummingBoard (da blog.ecservices.de)

 

D'altra parte questo difetto è stato anche uno dei principali artefici del successo del Raspberry Pi, in quanto il SoC, essendo molto economico, ha contribuito a mantenere basso il prezzo dell'intera piattaforma. Non va poi dimenticato che l'eccellente acceleratore Video integrato, in grado di riprodurre video in FullHD nel formato h.264, rende il SoC comunque ottimo per un utilizzo quale player multimediale a bassissimo costo (tra Raspberry Pi, alimentatore, SD e case si spedono meno di 60 euro).

Se il SoC può risultare quindi un tallone d'Achille, la possibilità di avere in mano i sorgenti di ogni componente dello stesso è invece un grandissimo punto a favore, soprattutto perché il Raspberry Pi ha quale utenti di riferimento i programmatori e gli utenti GNU/Linux. È proprio l'estrema libertà di azione garantita da quest'ultima caratteristica che ha permesso al Raspberry Pi di conoscere una così ampia diffusione, unitamente ad un prezzo di commercializzazione davvero concorrenziale, come abbiamo avuto già modo di puntualizzare.

SolidRun, con l'Hummingboard, vuole prendere i punti di forza del Raspberry Pi appena descritti, sopperendo al contempo alla sua principale deficienza, la potenza di elaborazione, il tutto su un PCB compatibile al 100% con i case dedicati al Raspberry Pi (non al Raspberry Pi+!). In questo modo SolidRun può usufruire dell'accessorio del concorrente più venduto, in quantità e a basso costo, senza doverne realizzare uno ad hoc (dal punto di vista commerciale, una genialata).

Per raggiungere lo scopo, SolidRun ha scelto quale SoC il Freescale i.MX6 (i.MX è l'acronimo di "innovative Multimedia eXtension") in tre diverse varianti, una mono core e due dual core. Si deve sapere, infatti, che la Hummingboard è disponibile in tre versioni, descritte nella tabella più sotto, così da venire incontro alle esigenze di diversi tipi di utenza. Commercializzato tra il 2011 e il 2012, l'i.MX6 è ancora un discreto prodotto. È basato su architettura ARMv7, utilizzando il core Cortex-A9, ed integra una GPU Vivante (o GC880 o GC2000, a seconda del modello) in grado di fornire buone prestazioni. Sfortunatamente Vivante non offre i sorgenti dei propri driver, che di fatto sono Closed. Esistono dei driver Open, frutto del reverse engineering di quelli ufficiali, ma cosa ciò voglia dire lo scopriremo in seguito.

Qui una lista dei siti che ho trovato più interessanti se si vuole approfondire la conoscenza delle Hummingboard:

In linea generale le Hummingboard si presentano come dei Raspberry Pi migliorati, e dal prezzo concorrenziale, ma sarà davvero tutto oro quello che luccica?

 

Scheda Hummingboard-i1 Hummingboard-i2 Hummingboard-i2eX
SoC FreeScale iMX6 Solo FreeScale iMX6 Dual Lite FreeScale iMX6 Dual
Architettura ARMv7 ARMv7 ARMv7
Core Cortex-A9 Cortex-A9 Cortex-A9
Cache L2 512KB 512KB 1MB
Numero Core 1 2 2
Canali Memoria Single Channel Dual Channel Dual Channel
RAM 512MB DDR3-800 MHz 1GB DDR3-800 MHz 1GB DDR3-1066 MHz
iGPU Vivante GC880 Vivante GC880 Vivante GC2000
Librerie GPU

OpenGL ES 1.1 e 2.0
OpenGL 2.1 e 3.0

OpenGL ES 1.1 e 2.0
OpenGL 2.1 e 3.0

OpenGL ES 1.1 e 2.0
OpenGL 2.1 e 3.0

Supporto 3D 
Porte Video HDMI 1.4 HDMI 1.4 HDMI 1.4 
Porte d'espansione 

Ethernet 10/100, 2xUSB 2.0, MicroSD Reader,
SPDIF Out, Jack Audio out, GPIO Header,
MIPI CSI 2.0 Camera

Ethernet 10/100, 2xUSB 2.0, MicroSD Reader,
SPDIF Out, Jack Audio out, GPIO Header,
MIPI CSI 2.0 Camera

 

Ethernet 10/100/1000, 4xUSB 2.0, MicroSD Reader,
SPDIF Out, Jack Audio out, GPIO Header,
MIPI CSI 2.0 Camera, LVDS Out, PCI-E 2.0,
mSATA II, Ricevitore infrarossi

 
Prezzo

44,99$

74,99$ 99,99$

La HummingBoard fisicamente presenta le stesse dimensioni del Raspberry Pi, ed anche le connessioni sono state posizionate in modo tale che la scheda risulti perfettamente compatibile con i case dedicati al Raspberry Pi Rev.A e al Raspberry Pi Rev.B.

 

Scheda Hummingboard-i1 Raspberry Pi Rev.B
SoC FreeScale iMX6 Solo Broadcom BCM2835
Architettura ARMv7 ARMv6
Core Cortex-A9 ARM11
Cache L2 512KB 512KB
Numero Core 1 1
Canali Memoria Single Channel Single Channel
RAM 512MB DDR3-800 MHz 512MB DDR2-400 MHz
iGPU Vivante GC880 Broadcom VideoCore IV (On-Die)
Librerie GPU

OpenGL ES 1.1 e 2.0
OpenGL 2.1 e 3.0

OpenGL ES 1.1 e 2.0

Supporto 3D 
Porte Video HDMI 1.4 HDMI 1.4
Porte d'espansione 

Ethernet 10/100, 2xUSB 2.0, MicroSD Reader,
SPDIF Out, Jack Audio out, GPIO Header,
MIPI CSI 2.0 Camera

 

Ethernet 10/100, 2xUSB 2.0, MicroSD Reader,
SPDIF Out, Jack Audio out, GPIO Header,
MIPI CSI 2.0 Camera

 
Prezzo

44,99$

35$

 

Troviamo quindi un limitato numero di porte di espansione sul PCB, e più precisamente: due porte USB 2.0, una porta Ethernet 10/100, uno Slot MicroSD, un'uscita audio SPDIF, un connettore CSI-2, un pettine GPIO ed un'uscita audio Jack da 3.5 mm.

 

 

Il cuore pulsante del sistema è stato disegnato per essere integrato su un MicroSOM (Micro System on a Module). SoC e DDR3 trovano posto su un piccolo PCB che andrà poi inserito sul PCB principale, quello dove sono posizionate le porte di espansione. In questo modo SolidRun ha potuto riutilizzare il medesimo PCB per più prodotti, senza il bisogno di realizzarne tre differenti, migliorando quindi le economie di scala. Nel caso, in futuro, voglia aggiornare le HummingBoard, non dovrà fare altro che modificare il MicroSOM, magari utilizzando un SoC di Samsung o di RockChip.

 

Come è strutturata l'HummingBoard

 

La memoria DDR3 è prodotta da Samsung, e si tratta di un chip DRAM marchiato K4B2G1646Q BCK0. Alcuni moduli RAM dotati di questi chip sono stati portati fino a 2600 MHz con CAS10 ma, sfortunatamente per noi, in questo caso non sono overclockabili.

 

Il MicroSOM  è occupato per buona parte dal SoC Freescale i.MX6 Solo.

 

SoC/CPU Freescale i.MX6 Solo Broadcom BCM2835
Architettura CPU ARMv7 ARMv6
Tipologia Out-of-Order In-Order
Core Cortex-A9 ARM11
Numero Core 1 1
Frequenza 1000 MHz 700 MHz
Processo Produttivo 40nm 40nm
Feature NEON Media Engine (SIMD)
VFP3 (FP Unit addizionale)
NEON Media Engine (SIMD)
VFP2 (FP Unit addizionale)
GPU

Vivante GC880 (On-Die)

Broadcom VideoCore IV (On-Die)
Frequenza 400 MHz 250 MHz
Feature GPU OpenGL ES 1.1 – 2.0
Encode-Decode FullHD e h.264
OpenGL ES 1.1 – 2.0
Encode-Decode FullHD e h.264
Altre feature

Vivante GC320 (Acceleratore 2D)
Imaging Processing Unit

Advanced Image Sensor Pipeline

Uno dei vantaggi del Raspberry Pi, come abbiamo scritto precedentemente, è determinato dall'eccellente supporto software, sia da parte della community e della Raspberry Pi Foundation sia da parte di Broadcom. Questo l'ho constatato quando ho dovuto scegliere la distribuzione da installare per testare la scheda. Sebbene esistano, ufficiosamente, diverse distribuzioni compatibili, tra cui OpenSUSE, Ubuntu e Slackware, la via più semplice, anche se piuttosto lunga, per avere una HummingBoard perfettamente funzionante è stata quella di installare la distribuzione Debian Weezy 1.9 realizzata per il CuBox-i, e qui riadattata.

Una volta preparata la MicroSD, tramite l'utility realizzata da Suse (Che minestrone già all'inizio!), ci si trova davanti ad un ambiente a linea di comando. La prima cosa da fare, a questo punto, è installare i driver della GPU GC880 di Vivante, seguendo attentamente questa ottima guida: "MX6 video acceleration raring Debian". Armatevi di pazienza e di qualche cosa da sgranocchiare, in quanto il tutto vi porterà via un'oretta. La principale colpevole di questa tortura è Vivante, la produttrice della GPU integrata nel SoC Freescale, la quale non ha rilasciato alcun sorgente dei driver. L'installazione, infatti, si compirà utilizzando l'SDK di Freescale. Anche nel caso si voglia utilizzare OpenSUSE le cose non cambierebbero, come è possibile osservare da questa guida. OpenSUSE, inoltre, sebbene sia pienamente utilizzabile fin dall'installazione, in quanto sono presenti tutti i programmi essenziali, è di una pesantezza unica. L'utilizzo di questa distribuzione sfruttando il SoC monocore di Freescale si è rivelato particolarmente frustrante.

Tornando a Debian, installati i driver di Vivante dovremo poi installare X e il Desktop Environment da utilizzare. Personalmente ho scelto LXDE, in quanto lo ritengo perfetto per computer dalla potenza molto limitata. Arrivati sul desktop l'ambiente sarà decisamente spoglio, ed anche le applicazioni installate saranno molto limitate nel numero: manca praticamente tutto, dal media player al semplice editor di testi. In poche parole, non essendovi installato nulla di default, ogni utente potrà installare quanto effettivamente gli sarà utile.

Installati i software necessari per effettuare i test, vediamo come si è comportato il piccolo di casa SolidRun. 


Scheda HummingBoard-i1 Raspberry Pi Rev. B
SoC Freescale i.MX6 Solo Broadcom BCM2835
RAM 512MB DDR3 512MB DDR2
Frequenze (CPU-GPU-RAM) 1000-400-800 MHz 800-250-400 MHz
Memoria di massa San Disk MicroSDHC 16GB Class 10 San Disk SDHC 16GB Class 10
SO (Kernel) Debian "Wheezy" (3.17) Raspbian (3.17)
Benchmark

Phoronix Test Suite
Sysbench
dBench
HardInfo
Glxgears

Periferiche Logitech BT Adapter
Alimentatore OEM 5Volt - 1.2A

 

Le prove sono state eseguite con scrupolo e attenzione, ed abbiamo seguito questo modus operandi:

  • Installiamo il sistema operativo di fresco, ed i driver forniti dal produttore, se necessari;
  • Ripetiamo ogni test per tre volte e se il valore di qualcuno di essi mostra una varianza troppo elevata, lo stesso viene di nuovo ripetuto (dopo avere rilevato la specifica causa che ha inficiato il risultato);
  • Alla fine di ogni sessione di prova riavviamo il sistema;
  • Controlliamo i risultati dei test per indagare su eventuali valori anomali.

 


In questa pagina analizzeremo alcuni benchmark in cui abbiamo messo a confronto i due SoC, così da mostrare le differenze prestazionali che intercorrono tra l'architettura ARMv6 utilizzata dal SoC Broadcom e quella ARMv7 utilizzata dal SoC Freescale. Per rendere il confronto più reliastico, abbiamo portato il SoC BCM2835 alla frequenza di 1 GHz.

 

GTKperf è un benchmark molto semplice, spesso sottovalutato, che però si occupa di testare una caratteristica essenziale di un sistema PC classico: quanto il sistema sia reattivo durante l'utilizzo tradizionale. Velocità di apertura e chiusura delle finestre, passaggio da un programma ad un altro, navigazione tra i menù e via di questo passo. Un sistema reattivo e veloce rende l'esperienza d'uso molto più piacevole e meno frustrante all'utente. Come è possibile osservare dal grafico, il Freescale si dimostra decisamente più veloce del Broadcom, ed anche nell'utilizzo reale Debian ha dimostrato di essere più reattiva con l'HummingBoard che con il Raspberry Pi.

 

Nel test di conversione Lame MP3 viene fatto largo uso dell'unità Integer. Il Cortex-A9, grazie all'aggiunta di una seconda ALU, migliora notevolmente le prestazioni garantire dall'ARM 11 a parità di frequenza.

 

Il benchmark dBench è utile per capire se il sistema può essere utilizzato quale NAS, e quanti client potrebbe reggere prima di diventare del tutto inutilizzabile, stressando tanto il SoC quanto la memoria RAM. Grazie anche alle più veloci DDR3, la HummingBoard quasi doppia il Rapsberry Pi, arrivando al livello di un Atom N270 (1c/2t) abbinato a delle DDR2. La mancanza di almeno una porta SATA onboard, comunque, ne limita fortemente l'utilizzo in tale campo. In linea generale siamo prestazionalmente alla pari con i SoC mono core di Marvell utilizzati in moltissimi NAS entry-level.

 

SysBench è stato utilizzato in questo caso per un test di pura forza bruta, così da stressare al massimo le unità FPU. Utilizzando la più avanzata unità Vector Floating-Point v3 (VFPv3), rispetto alla versione VFPv2 integrata nel Broadcom, il SoC di Freescale fa segnare un aumento prestazionale davvero ottimo.

 

Il benchmark FPU Raytracing integrato nella suite HardInfo esegue un test di raytracing non solo testando l'efficienza delle unità FPU, ma anche delle librerie software che le sfruttano. In questo caso il SoC Freescale è quasi il doppio più veloce di quello Broadcom, segno evidente che anche dal lato ottimizzazione software sono stati fatti notevoli passi avanti con le più recenti architetture ARM.

 

Sebbene Glxgears sia quasi del tutto un test inutile, in quanto non stressa eccessivamente la GPU, in questo caso si rivela comunque un buon metro di paragone per confrontare la potenza delle GPU integrate nei due SoC. La Vivante GC880 è oltre il doppio più potente dalla GPU integrata nel BCM2835, ma crediamo che la differenza potrebbe essere decisamente maggiore, se solo Vivante si degnasse di rilasciare un driver funzionante per GNU/Linux disponibile per tutti, così da non dover ricorrere al reverse engineering di quelli Closed. Secondo i nostri calcoli, considerata la potenza teorica a disposizione, la GPU avrebbe potuto superare senza grossi problemi i 100 fps.


Partito con grandi speranze nell'utilizzo di questa Hummingboard, mano a mano che l'ho utilizzata la mia fiamma si è progressivamente spenta.

La mancanza di una vera e propria distribuzione ufficiale (al pari di Raspbian), in grado di far funzionare in ogni sua parte la piccola Hummingboard, è già di per sé un notevole difetto, soprattutto se si pensa che la scheda dovrebbe essere dedicata principalmente agli sviluppatori. Neppure con Debian, attualmente la distribuzione con il migliore supporto per le architetture ARM, si riesce a garantire un grado di usabilità accettabile, soprattutto a causa della ritrosia di Vivante nel rilasciare i sorgenti dei driver video, con tutte le limitazioni che questo comporta (vedesi il benchmark di glxgears). Se qualcuno, poi, vuole utilizzare un'altra distribuzione, come ad esempio Fedora, Suse o ArchLinux, gli facciamo i nostri migliori auguri, perché ne avrà bisogno: far funzionare l'accelerazione hardware della GPU sarà un'impresa altrettanto noiosa.

Punto a favore della più piccola delle Hummingboard rimane il prezzo, unitamente alla piena compatibilità con i case dedicati al Raspberry Pi rev.A e rev.B (Ma non B+!). Per circa 50 euro si ha una scheda dotata di un SoC notevolmente più potente del Broadcom BCM2835 che, coadiuvato dalle DDR3, può regalare anche qualche soddisfazione nel caso dovesse essere utilizzato come server per carichi leggeri (ad esempio, quale piccolo server di posta casalingo per una mezza dozzina di utenze).

Vantaggi comunque su cui si può soprassedere se si ha a cuore il proprio portafoglio e il proprio tempo in quanto, con tutta probabilità, sarete costretti a combattere da soli contro le problematiche che sopraggiungono: mancando una community vasta ed eterogenea, dovrete cavarvela in solitaria nel caso vogliate cominciare ad utilizzare l'Hummingboard per qualche progetto più o meno impegnativo, almeno per il momento.

Se invece siete persone a cui piacciono le sfide e volete qualcosa di più potente del Raspberry Pi, allora comprate l'HummingBoard ed allargatene la community. Chissà, osservandone il successo, forse Vivante renderà pubblici i sorgenti dei driver video. In conclusione, dando una risposta alla domanda che ci siamo posti nel titolo, possiamo affermare che l'Hummingboard non può essere considerata ancora l'erede del Raspberry Pi che tanto si sta attendendo. Possiamo considerarla una rivale acerba, ma non certamente l'erede, soprattutto in ambito didattico: il solo bundle composto da Mathematica e dal Wolfram Language pone il Raspberry Pi su un altro livello in tale contesto.