Negli ultimi anni stiamo assistendo ad un incremento esponenziale dei dispositivi di domotica e automazione, prova ne sono anche i progetti che realizzo per bisogni concreti di controllo automatizzato di determinati dispositivi. Da qui il mio bisogno di avere un “controllore dei controlli”, un dispositivo centralizzato con maggiori risorse e funzioni dell’Arduino base e semplice (e sopratutto low-cost) che uso nei miei progetti, capace di controllare, avvisarmi o agire secondo le mie volontà e che possa monitorare gli altri dispositivi attivi sparsi per casa.
Cos’è l’Orange Pi Plus 2E
E’ così che la mia attenzione è ricaduta sull’acquisto di un Orange Pi Plus 2E, il cugino cinese del Raspberry Pi (ovviamente molto meno costoso ma con performance talvolta addirittura superiori).
Esso non è altro che un single-board computer, un mini computer completo di tutto quello che serve per farlo funzionare come tale, fornito più o meno di caratteristiche più avanzate a seconda della versione scelta. Ci sono le versioni ZERO che sono molto più minimali, ma la mia scelta, anche per provarne le potenzialità, è stata orientata all’acquisto della versione Orange Pi Plus 2E, che comprende:
- processore H3 Quad-core Cortex A7
- 2 GB di RAM DDR3 (una rarità ad oggi in questo tipo di dispositivi)
- 16 GB di flash EMMC (oltre allo slot per le micro SD)
- Scheda di rete in Gigabit (1000M)
- Wifi b/g/n integrato
- Uscita video in HDMI
- Microfono integrato
- Sensore infrarossi (molto utile anche per controllo remoto con telecomando)
- 40 Pin GPIO headers
- etc…
Come iniziare
Come ogni cineseria Hi-Tech che si rispetti, bisogna prima acquistarlo su Aliexpress al ridicolo prezzo di 32 € (https://it.aliexpress.com/item/Orange-Pi-Plus-2-E-H3-Quad-Core-1-6GHZ-2GB-RAM-4K-Open-source-development/32665196281.html ). Nel momento in cui sto scrivendo quest’articolo, il prodotto non è più disponibile, e lo stesso è successo a me quando mi decisi a prenderlo. Questo prova che in effetti và subito a ruba considerato il rapporto qualità/prezzo.
Personalmente ho acquistato, con qualche Euro in più, l’alimentatore 5V – 3A e il case in acrilico e dopo circa un mese dall’ordine in effetti è arrivato come si evince in foto
Il montaggio del case è stato semplice, fornito di 4 viti per fissare il coperchio e 4 piedini di gomma per renderlo antiscivolo ed evitare di graffiare le superfici su cui viene poggiato, ma veniamo al sodo.
Prima installazione
Purtroppo arriva privo di qualsiasi manuale operativo, ma è facile trovarlo sul sito ufficiale (http://www.orangepi.org/) e da li scaricarlo in PDF.
Nonostante sia molto completo non sono riuscito a trovare delle istruzioni che funzionassero bene come previsto.
Mi spiego meglio: considerato che il mini pc viene fornito di memoria flash interna, volevo installare il sistema operativo su di essa, ma il comando suggerito sul manuale (l’eseguibile install_to_emmc) non era fornito in nessuna distro che ho provato. Anche il comando per la versione Armbian (nand_sata_install) sembrava non funzionare a dovere e così mi sono dovuto documentare abbastanza prima di riuscire nel mio intento.
In questa guida vi risparmierò le mie fatiche, scrivendo passo-passo la procedura da effettuare per installare qualsiasi sistema operativo sulla flash eMMC dell’Orange Pi.
Procedura
Per prima cosa bisogna scaricare dal sito ufficiale la distribuzione del S.O. di interesse. Io nel mio caso ho installato Armbian, ma con la versione scaricata dal sito ufficiale, avevo problemi di avvio dell’interfaccia grafica dopo averlo copiato sulla eMMC, così ho scaricato l’ultimissima versione (ad oggi) dal sito ufficiale Armbian (Ubuntu_xenial_default_desktop.7z del 27/01/2018) e tutto ha funzionato a meraviglia.
Oltre al S.O. bisogna procurarsi una microSD da almeno 8GB (in realtà per alcune distro va bene anche quella da 4GB), e come consigliato sul manuale, formattarla con SD Card Formatter e scrivervi l’immagine con Win32 Disk Imager. In realtà credo che possano essere fatte entrambe le cose con l’utilissimo programma Rufus.
Una volta completata l’operazione, per rendere l’OrangePi pronto e funzionale è sufficiente inserire la microSD nello slot apposito sulla board e connettere il plug di alimentazione del dispositivo (dopo aver connesso un monitor con ingresso HDMI, un mouse e una tastiera).
Dopo l’avvio, Armbian chiede user e password in modalità terminale, quindi inserire root come username e 1234 come password. Chiederà di cambiare la password e ultimata la procedura si avvierà in modalità grafica. Resterete stupiti dalla reattività e velocità del desktop (se vi connettete ad Internet via cavo di rete o wifi, potrete provare anche la velocità di navigazione Internet, per essere un mini pc è veramente veloce). Non sarà ovviamente reattivo come il vostro PC, ma con max 10 watt di consumo io direi che è eccellente.
Un video su Youtube in risoluzione standard non HD, gira senza scatti ed è abbastanza fluido. La temperatura del processore in questo caso sale fino a 60° C, ma in idle o comunque con piccoli carichi, tipo script e controlli vari, non supera i 37-38° C, tutto questo senza alcun dissipatore.
Dopo avere notato le potenzialità passiamo ad ultimare l’installazione per renderlo avviabile senza microSD.
Sul manuale si consiglia di usare il comando “nand_sata_install” per copiare il contenuto della microSD sulla flash eMMC. Sembra facile ma non lo è.
Il primo problema che personalmente ho riscontrato è stato che lo script non mi rilevava la memoria eMMC, l’errore che ricevevo era il seguente “There are no targets. Please check your drives.”.
Dopo varie ricerche sono riuscito a farlo “vedere” allo script. In pratica il problema risiedeva nel link simbolico script.bin della cartella /boot che puntava ad un binario non corretto della sottocartella bin/ (puntava a orangepipc.bin). E’ bastato quindi eseguire
cd /boot sudo ln -s bin/orangepiplus2e.bin script.bin
e tutto sembrava essersi risolto. Così ho avviato il famoso comando “nand_sata_install” che finalmente mi rilevava l’eMMC e ho proceduto con l’installazione del S.O. sulla flash.
Finita l’installazione, riavvio, tolgo l’alimentazione, estraggo la microSD e la board nemmeno si accendeva più. Cerca e ricerca e capisco che il problema risiedeva nel fatto che un file (u-boot-sunxi-with-spl.bin) non era stato copiato correttamente (forse perchè il sistema operativo era attivo?) e così quindi, reinserita la microSD, ho risolto eseguendo il comando:
dd if=/usr/lib/linux-u-boot-orangepiplus2e_5.35_armhf/u-boot-sunxi-with-spl.bin of=/dev/mmcblk1 bs=1024 seek=8
Riavvio, spengo, estraggo la microSD, riaccendo e finalmente si avvia da eMMC. Tutto sembrava filare liscio fino a quando non vedo che al momento di caricare X (l’interfaccia grafica), l’OrangePi si riavvia, e così all’infinito. E’ da qui che ho deciso di risolvere in altro modo. Ad onor del vero, questi problemi erano dovuti forse alla versione di Armbian che avevo scaricato in precedenza (quella dal sito ufficiale di OrangePi di novembre 2017 se non ricordo male).
Da qui in poi vi descrivo la procedura per fare tutto a “manina” senza usare lo script “nand_sata_install“.
Per prima cosa, copiate su una pen-drive capiente abbastanza, l’img del S.O. da installare sulla flash (bisogna proprio copiare il file .img sul dispositivo).
Fatto ciò, avviare l’OrangePi con la microSD inserita così da avere un sistema operativo attivo e aprire il terminale di linux (Xterminal) e digitare i seguenti comandi:
sudo fdisk /dev/mmcblk1
(il comando sudo non è necessario se lo eseguite come root, mmcblk1 è il nome della flash eMMC. La microSD viene chiamata mmcblk0)
quindi premere p per visualizzare le partizioni della flash e, se presenti, premere d e poi scegliere il numero corrispondente alla partizione da cancellare, quindi w per salvare le modifiche.
Ridigitare il comando:
sudo fdisk /dev/mmcblk1
quindi premere n per creare una nuova partizione, lasciare tutto invariato cliccando su Invio, quindi di nuovo w per salvare le modifiche.
Infine formattiamo la flash in ext4 con il seguente comando:
sudo mkfs.ext4 -L "emmc" /dev/mmcblk1p1
Adesso la flash è pronta per ricevere la copia binaria dell’img del sistema operativo.
Inserite la pen-drive che contiene l’img scaricata in precedenza, montatela (anche cliccando due volte sull’icona che spunta sul Desktop).
Ritornando sul terminale andate nella cartella montata della pen-drive (es. cd /media/mia_pen_drive/) e verificate con il comando ls se il file img del S.O. è presente.
Se siamo arrivati senza problemi a questo punto è sufficiente eseguire i seguenti comandi per avviare la copia:
dd if=nome_file_img_Armbian of=/dev/mmcblk1 bs=4M sync
il comando sync serve per sincronizzare quello che c’è in RAM sul drive.
Finita la copia del file, non vi resta che riavviare, staccare il cavo di alimentazione, uscire la microSD, riconnettere il cavo di alimentazione e assistere all’avvio del S.O.
Ovviamente per lui sarà una prima installazione, quindi login in modalità testuale, user root, password 1234, cambio password e così via.
Per qualsiasi info fatemi sapere.
PS: il mio già l’ho configurato con ssmtp per inviarmi una mail di notifica se il processore supera i 60°, vi ho installato thightvnserver e funziona egregiamente, etc…