Archivi tag: linux

Strumenti di sviluppo su scheda Beaglebone

Nel precedente articolo abbiamo installato ed aggiornato l’ultima immagine Debian per Beaglebone

Preparazione sdcard Debian per Beaglebone Black

Abbiamo anche abilitato i servizi di rete in modo da accedere tramite il nome host sul sistema.

Dopo tali modifiche si può accedere mediante browser sul Beaglebone con l’indirizzo

http://beaglebone.local

Nell’interfaccia che si presenta vengono indicati vari esempi di codice eseguiti con bonescript, libreria in javascript basata sul framework node.js

Node.js

Si possono eseguire questi semplici esempi per incominciare ad interagire con la scheda. Sono presenti anche i link agli strumenti di sviluppo Cloud9 e Nodered e le informazioni su tali tools

strumenti di sviluppo

 Cliccando su Cloud9 viene mostrata la sezione nella pagina dedicata a tale strumento. In tale sezione viene indicato come creare un semplice esempio ed farlo partire all’avvio della scheda piazzandolo nella cartella autorun presente nella interfaccia dell’ide. Da tale sezione si accede all’ide vero e proprio presente sulla porta 3000 del sito in funzione sul Beaglebone

Cloud9

Per maggiori informazioni sullo strumento fare riferimento al sito

Cloud9

 Accedendo invece alla sezione di Nodered viene indicato il link per incominciare a conoscere lo strumento

Primi Passi con Nodered

 e poter accedere direttamente all’ide del framework, presente sulla porta 1880 del web server funzionante sul Beaglebone

Nodered Beaglebone

Nodered beaglebone

Dal link presente sopra sui primi passi per Nodered sono disponibili degli esempi per iniziare ad usare lo strumento. Dalla home del sito https://nodered.org/ si ricavano ulteriori informazioni sullo strumento.

Oltre agli strumenti in javascript sul Beaglebone sono giò presenti i compilatori in linguaggio C/C++, l’interprete in Python e la possibilità di aggiungere ulteriori strumenti di sviluppo.

Nella pagina iniziale dell’interfaccia web del Beaglebone, http://beaglebone.local, sono indicati tutti i pin disponibili e la loro funzione. Di seguito viene riportata solo l’immagine con gli header di espansione

cape headersNei prossimi articoli mostreremo qualche esempio di codice con la scheda.

Preparazione sd card Debian per Beaglebone Black

Nell’articolo precedente è stato mostrato il primo avvio della scheda di sviluppo Beaglebone Black/Green.

Avvio della scheda Beaglebone

Analizziamo ora come installare una immagine aggiornata di Debian per Beaglebone. Come prima operazione si accede al sito di Beablebone contentente le immagini

Immagini Beaglebone

Scarichiamo, avendo un Beaglebone Black Rev. C, bone-debian-8.6-lxqt-4gb-armhf-2016-11-06-4gb.img.xz. Scompattiamo l’immagine con 7zip e la carichiamo su una scheda micro sd con Win32DiskImager, analogamente a quanto fatto per l’Orange PI PC

Installazione Opelenec su Orange PI PC

Nel caso volessimo caricare tale immagine sulla flash interna, occorre editare il file /boot/uEnv.txt in un sistema Linux  e scommentare la riga

In tal caso all’avvio si riscriverà il sistema operativo presente sulla flash interna con la versione caricata sulla scheda micro sd. Non seguiremo tale strada in modo da fare tutti i test sulla scheda sd, lasciando integra la partizione interna. In questo caso colleghiamo alla rete ethernet di un router il nostro Beaglebone. Inseriamo la scheda micro sd ed avviamo la scheda di sviluppo. In alcune schede viene richiesto la pressione del pulsante USER/BOOT

beaglebone blackperché si avvii da scheda micro sd; con la nostra scheda non è stata necessaria eseguire tale operazione.  A questo punto occorre collegarsi sul Beagleone; da un sistema Linux l’hostname della scheda è già risolto in quanto il servizio avahi-daemon è già attivo e Linux risolve l’host; per Windows occorre installare samba per avere il riconoscimento con il protocollo netbios da Windows e risolvere così l’hostname. Se ci si deve connettere da una macchina Windows occorre prima controllare l’ip assegnato al Beaglebone sul router cui è stato connesso. Da un sistema Linux, ad esempio, eseguire il collegamento sempre come debian/temppwd

ssh BeagleboneDa Windows collegarsi la prima volta in ssh con l’indirizzo ip e procedere all’aggiornamento ed all’installazione di samba

Dopo l’aggiornametno siamo pronti a fare degli esempi con il nostro Beaglebone ed a connetterci utilizzando il nome host beaglebone e beaglebone.local. Nel prossimo articolo vedremo quali strumenti sono già presenti sulla scheda e come aggiungere altre funzionalità.

Possiamo anche installare il servizio ftp, che potrebbe tornare utile nei prossimi esempi

 Per deattivarlo ed attivarlo usare i seguenti comandi

Avvio della scheda Beaglebone

In un articolo precedente abbiamo dato una breve descrizione della scheda Beaglebone Black e delle sue varianti.

 Scheda di sviluppo Beaglebone

 Il Beaglebone in questa revisione viene con 4GB di spazio a bordo e con il sistema operativo già installato.

E’ possibile accedere al Beaglebone, nel nostro caso il Black, senza collegarlo alla rete ethernet, ma collegandolo ad un pc attraverso la connessione mini usb di servizio, come specificato sul sito del Beaglebone

Avvio Beaglebone

Dopo aver connesso il Beaglebone Black al pc tramite il cavo USB viene aggiunto un altro dispositivo rimobile ai dischi già presenti

Disco rimovibile BeagleboneEseguendo start.htm si avvia una interfaccia analoga a quanto presente sul sito web getting-started

AvvioSi procede alla installazione dei driver network-over-usb per il proprio sistema operativo, windows a 64 bit nel nostro caso

driver network over usbSu Firefox procedere a scaricare il file ed eseguirlo, dando i permessi richiesti da windows

BeagleBone Driver InstallerAl termine viene mostrata la finestra con le operazioni eseguite

completamento beaglebone driver installerUsando Firefox o Chrome accedere al seguente indirizzo http://192.168.7.2; si accede in tal modo sul nostro Beaglebone attraverso la rete su  usb al server web avviato sulla scheda

beaglebone pagineinizialeNella pagina viene mostrato come aggiornare il sistema,  collegarsi all’interfaccia IDECloud9,  eseguire vari esempi in Bonescript.

L’accesso all’ IDE di Cloud9

Informazioni su IDE Cloud9

avviene sulla porta 3000 allo stesso indirizzo IP specificato sopra, ossia http://192.168.7.2:3000

Cloud9Nei nostri esempi non modificheremo il sistema operativo presente sulla scheda eMMC interna, ma scaricheremo una versione aggiornata di Debian per Beaglebone e lo installeremo su una scheda micro sd. Il sistema può essere chiuso con il pulsante Power presente sulla scheda

power buttono collegandosi tramite shell ssh all’indirizzo 192.168.7.2 con l’utenza debian/temppwd ed eseguendo il comando “sudo poweroff”

sshNel prossimo articolo procederemo a scaricare ed installare su scheda micro sd l’immagine Debian per Beaglebone

Preparazione sd card Debian per Beaglebone Black

Compilazione addon Openelec per Orange PI PC

Nell’articolo sulla compilazione di Openelec per Orange PI PC

Compilazione Openelec per Orange PI PC

avevamo creato l’ambiente  e compilato l’immagine Openelec per la nostra scheda di sviluppo. Integriamo quanto detto nel precedente articolo mostrando come compilare gli addons Openelec.

Partendo dall’ambiente creato in precedenza ci si posiziona nella cartella OPENELEC-OPIPC

Accedendo con l’interfaccia grafica su Debian nella cartella packages si può verificare che gli addon official sono presenti. Per aggiungere quelli non ufficiali eseguire da OPENELEC-OPIPC

Procediamo ora a compilare un addon official ed uno unofficial. I packages che si possono compilare sono presenti nelle cartelle official

official Addonse unofficial

unofficial Addons

Per l’official compiliamo il modulo pvr.iptvsimple con il comando

Per l’unofficial il modulo p7zip

Gli addon risultanti sono presenti nelle relative cartelle in

addons

Può risultare un errore nel download e compilazione dell’addon. Per esempio nel caso di trasmission non veniva trovato il pacchetto sorgente sul link presente sul file file

Per superare questo imprevisto abbiamo aggiunto un altro link al pacchetto, ossia si è modificato il file package.mk da

a

In tal modo il pacchetto transmission è stato compilato correttamente, sempre con il comando

Configurazione telecomando su Libreelec per soc Amlogic

Nel precedente articolo abbiamo provveduto ad installare su scheda micro sd una immagine Libreelec ed avviato il dispositivo con tale immagine

Immagine Libreelec per soc Amlogic

Il telecomando del Beelink Minimx III è basilare, per cui per avere più tasti si è pensato di associare un altro telecomando a Libreelec.

Si è scelto il seguente telecomando che ha più pulsanti in dotazione

telecomando

In base al documento presente sul sito Amlogic, sebbene redatto in cinese, mediante l’utilizzo di traduttori online

Come cambiare i codici IR

si evince che il soc Amlogic gestisce nativamente il protocollo NEC per i telecomandi e che mediante il file remote.conf si possono associare il codice di un telecomando agli eventi di sistema Linux. La mappa dei codici degli eventi di sistema Linux  è presente nel file header del kernel Linux

Input Event Codes

Come prima operazione ci si collega su Libreelec in ssh con root/libreelec. Copiare il file /etc/amremote/libreelec.conf in remote.conf nella cartella /storage/.config

e modificarlo come segue

Caricare il nuovo file dei codici del telecomando mediante il comando

Premere qualche tasto del nuovo telecomando ed eseguire

Perché il telecomando sia compatibile si devono vedere dei messaggi del tipo

Il formato è il seguente: 0xAABBCCCC. Seguendo il documento Amlogic linkato sopra, Il codice del telecomando per un tasto specifico è 0xBB; mentre per definire il codice del telecomando si usa 0xCCCC0001. AA corrisponde all’inverso logico del comando, nell’esempio sopra elencato

BB=0x51. In binario=01010001. L’inverso logico in binario =10101110, che è proprio 0xAE.

AA=0xAE. In binario=10101110

Il codice AA non viene utilizzato per la nostra configurazione del telecomando.

Premere tutti i pulsanti del telecomando ed eseguire il comando dmesg -c . Nel nostro caso abbiamo i seguenti codici

La mappatura del telecomando in kodi è presente in /usr/share/kodi/system/keymaps/remote.xml.

Si mappano i tasti del telecomando agli input events di Linux. Come esempio prendiamo in considerazione il tasto Power. Il codice del telecomando è

l’evento KEY_POWER nel file input-event-codes.h corrisponde a

Si crea pertanto una correlazione tra il codice del telecomando e l’evento in Linux nella sezione key_begin, key_end del file remote.conf

Tra i due dati

inserire uno spazio, così come indicato nel documento Amlogic linkato sopra. Il file utilizzato nel caso specifico è disponibile al seguente link

Esempio remote.conf

Alla ripartenza del box viene letta la nuova configurazione presente in /storage/.config/remote.conf potendo così utilizzare il nuovo telecomando.

Immagine libreelec per soc amlogic

In commercio sono presenti diversi box tv equipaggiati con Android. Tra i più diffusi vi sono quelli basati su soc Amlogic. Per i dispositivi caratterizzati da questo modulo vi è la possibilità di eseguire, anche in parallelo senza rimuovere l’immagine Android, un sistema mediacenter basato su Linux e Kodi, quale Libreelec. Si tratta di un fork del sistema mediacenter Openelec

Libreelec

Le piattaforme supportate sono analoghe a quelle già gestite da Openelec, ma si sta portando avanti lo sviluppo su altre piattaforme oltre quelle ufficiali; questa situazione riguarda in particolare i soc Amlogic.

Nel forum di Libreelec sono state sviluppate immagini non ufficiali per box tv con soc Amlogic S802/S905/S905X

Forum Amlogic Libreelec

Installeremo una immagine Libreelec per un box Amlogic S905, nel nostro caso specifico si tratta del box Android Beelink MiniMX III.  Il box arriva con a bordo una versione Android sulla flash interna. Le operazioni che seguono consentono di mantenere la versione Android sulla flash interna e Libreelec sulla scheda micro sd. Quanto detto può ripetersi almeno in parte anche con altri box con soc Amlogic. Fare riferimento al forum Libreelec per ulteriori delucidazioni.

Come prima operazione si scarica l’immagine dal link indicato sul forum Libreelec

Immagini Libreelec per Amlogic S905

Scarichiamo  la versione 7.0.2.007

Libreelec S905 7.0.2.007

Sul link sono presenti anche i file dtb, device tree file, file contenente le specifiche hardware del sistema, di diversi box già testati.

Si scompatta il file e lo si carica su una scheda micro sd in modo analogo a quanto fatto per la creazione della immagine Openelec per l’Orange PI PC

Preparazione sd card Openelec per Orange PI PC in Windows

Anche in questo caso si lancia Win32DiskImager e dopo aver scompattato il file LibreELEC-S905.aarch64-7.0.2.007.img.gz si procede alla scrittura sulla scheda micro sd.

A questo punto si inserisce la scheda micro sd  nel box e lo si avvia tenendo schiacciato, nel caso di questo modello, il pulsante di reset presente sul fondo del box. Questa operazione va eseguita una sola volta; ai successivi riavvii il sistema avvia Libreelec, se è presente la scheda micro sd, o il sistema Android presente sulla rom interna, in assenza di scheda micro sd.

L’immagine utilizza automaticamente il file remote.conf del telecomando dalla immagine android presente sulla scheda interna.

Le operazioni di configurazione sono del tutto analoghe a quanto fatto per Openelec per Orange PI PC, come ad esempio attivare il demone ssh, ecc; in questo caso il telecomando, essendo un box supportato dalla immagine, è già funzionante.

libreelec

ATTENZIONE: L’installazione dell’immagine sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del dispositivo. Prima di eseguire qualsiasi operazione accertarsi di essere in possesso della immagine originale del box in modo da poter eseguire il ripristino del sistema Android in caso di problemi.

Nel prossimo articolo vedremo come configurare un telecomando a raggi infrarossi con protocollo NEC  su un sistema basato su soc Amlogic

Configurazione telecomando su Libreelec per soc Amlogic

Compilazione modulo openwrt

Nell’articolo precedente

Compilazione Immagine OpenWrt

si è descritto come compilare il firmware OpenWrt per il router TP-Link TL-MR3420 V1. Di seguito si mostra come compilare un modulo, vsftpd, ed installarlo sul sistema da shell.

Eseguire il comando make menuconfig

ed accedere alla sezione relativa al modulo vsftpd sotto  Network->File Transfer ed abilitarlo come moduloOpenWrtModulovsftpdSalvare la configurazione in .config ed eseguire i comandi

Al termine del processo il pacchetto del modulo è presente nella directory packages sotto la  cartella bin della piattaforma utilizzataOpenWrtModulovsftpdCompilatoCopiare il file sul router come root mediante scp (su windows si può utilizzare WinScp) nella cartella /tmp. Non eseguire l’aggiornamento dei repository dei pacchetti dalla interfaccia web (se eseguito far ripartire il dispositivo) ed accedere al router mediante ssh, sempre come root, per procedere alla installazione del pacchetto

OpenWrt mette a disposizione tanti moduli che permettono di potenziare notevolmente le funzionalità del dispositivo; alcuni moduli sono abbastanza esosi come risorse , per cui è possibile installarli su router con hardware più potente.

Compilazione immagine openwrt

Dopo aver descritto brevemente il firmware OpenWrt nel precedente articolo

OpenWrt

si passa alla compilazione del firmware OpenWrt per il proprio dispositivo.

L’esempio sarà basato sul router TP-Link TL-MR3420 versione 1. Tale modello è presente fra la lista dei modelli supportati da OpenWrt; di seguito il link alla documentazione del modello in oggetto

TP-Link TL-MR3420

Dalla documentazione si nota che il SOC è un Atheros AR7241. Questa informazione sarà utilizzata in fase di configurazione della compilazione del firmware. Come operazione preliminare scaricare anche il firmware originale del router presente al link precedente

Firmware Originale

Nella pagina TP-Link TL-MR3420 sono presenti inoltre i link al firmware opewrt in due varianti:

  • Firmware per intallazione: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin.
  • Firmware per aggiornamento: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade.bin

Partendo dal firmware originale si usa il firmware per installazione, mentre per aggiornare da openwrt si usa il secondo tipo.

Dal link di OpenWrt sulla compilazione dell’immagine

Sviluppo OpenWrt

si eseguono le seguenti operazioni su Debian preparato in precedenza

Preparazione ambiente Debian

Aperta una shell su Debian come utente normale (non root) si installano i prerequisiti

Creare una cartella OpenWrt e clonare il repository. Nel nostro caso scegliamo il branch stabile 15.05

Al termine del processo git eseguire

Siamo pronti a questo punto ad eseguire la compilazione della immagine per il TP-Link TL-MR3420 V1.

Si lancia il comando

scegliendo come Target System AR7xxx/AR9xxx come indicato di seguitoOpenWrtmenuconfigCon i seguenti pulsanti si modificano le opzioni:

  • y: si  compila.
  • m: si compila come modulo.
  • n: non viene considerato.

Fare riferimento al link

Compilazione OpenWrt

per tutte le opzioni.

Premendo Invio alla schermata successiva si sceglie la piattaforma correttaOpenWrtmenuconfigAtherosSi devono installare anche i pacchetti minimi per l’amministrazione del sistema, ossia LuCI baseOpenWrtmenuconfigLuciAlla schermata successiva si sceglie CollectionOpenWrtmenuconfigLuciCollectionse quindi l’opzione luci che installa automaticamente i prerequisiti tra i quali anche un server httpOpenWrtmenuconfigLuciCollectionsBaseSi installano anche i moduli crittografici del kernel accedendo ai moduli del kernelOpenWrtmenuconfigKernelModulesSi sceglie poi l’opzione delle api crittograficheOpenWrtmenuconfigKernelModulesCryptoApied infine si scelgono i seguenti moduli compilati con l’immagineOpenWrtmenuconfigKernelModulesCryptoApioptionsConviene salvare la configurazione in un file in modo da riutilizzarla in seguito. Salvare infine la configurazione nel file .config.

Uscire dal menuconfig ed eseguire il comando

in modo da controllare tutti i prerequisiti necessari alla compilazione.

Per avviare la compilazione eseguire il comando

Il comando precedente esegue la compilazione in verbose mode.

Al termine della compilazione si hanno i file dei firmware nella cartella bin piattaforma scelta. Nel nostro caso le immagini sono evidenziate nella figura seguenteOpenWrtFirmwareSi può procedere alla installazione del firmware.

ATTENZIONE: Prima di procedere alla installazione del firmware verificate la procedura di recupero del vostro router in caso di qualche problema, quale avvio in recovery mode, flash via tftp, jtag,  ecc. L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del disposivo.

Si faccia riferimento al sito di OperWrt per tutte le opzioni ed impostazioni utilizzabili per la compilazione e lo sviluppo dei moduli. Nel prossimo articolo

Compilazione modulo OpenWrt

si descrive come compilare ed installare da linea comando il server ftp vsftpd.

Immagini OpenWrt

In questo articolo parliamo brevemente di OpenWRT

OpenWrt

Come descritto sul sito inserito sopra è una distribuzione linux per dispositivi wireless embedded. E’ disponibile per vari router come elencato nella pagina seguente

Lista dispositivi supportati

Il firmware, basato su codice Open Source, è modulare con la possibiltà di inserire vari moduli.

Al seguente link è elencata la documentazione inerente i moduli e la funzionalità di installazione con il comando opkg

Moduli

Dopo l’installazione del firmware è possibile collegarsi in ssh sul router e controllare ad esempio la lista dei pacchetti installati o disponibili.

In particolare il comando

mostra i moduli disponibili per il dispositivo.

Il comando è attivo se viene inserita la lista dei siti per il download nel file opkg.conf

Moduli disponibili OpenWrt

ma questa operazione può essere eseguita anche dalla interfaccia web.

Ci si collega sul routerOpenWrtLoginSi accede alla sezione SoftwareOpenWrtSoftwarepngSi aggiorna la lista dei repositoryOpenWrtSoftwareUpdateListViene caricata la listaOpenWrtSoftwareListSi cerca tra i software disponibili, ad esempio vsftpdOpenWrtSoftwarevsftpdE si procede alla installazioneOpenWrtSoftwareInstallvsftpdA questo punto è tra i pacchetti installatiOpenWrtSoftwarevsftpdInstallatoNei prossimi articoli si descrive come compilare l’immagine per il proprio router insieme ad un package aggiuntivo

Compilazione Immagine OpenWrt

Creazione immagine Armbian per Orange PI PC

Passiamo ora alla creazione della immagine Armbian per Orange PI PC. Dal github dello sviluppatore

Armbian Github

sono elencati i passi da seguire.

Dal sito Armbian

Compilazione immagine Armbian

l’ambiente di compilazione testato è Ubuntu. Nel nostro test utilizzando una distribuzione Ubuntu 16.04.1 LTS x86-64

Ubuntu

lo script compile.sh installa automaticamente i pacchetti necessari alla compilazione dell’immagine. Sul sito sono presenti inoltre le varie opzioni di compilazione.

Volendo utilizzare la distribuzione Debian 8.5 come host per eseguire la procedura, si sono seguiti i seguenti passi riportati di seguito. Nel caso si riportino errori si utilizzi la distribuzione Ubuntu suggerita sul sito Armbian.

Come operazione preliminare installiamo il crosscompilatore per Debian

https://wiki.debian.org/CrossToolchains

Creare il file crosstools.list in /etc/apt/sources.list.d

ed inseriamo la voce

Salviamo il file ed aggiungiamo la chiave del repository

Installiamo i seguenti pacchetti e l’architettura armhf

Siamo pronti ad installare l’ambiente per la compilazione sia su Ubuntu che Debian. Creaimo una cartella armbian sotto orangepi nella cartella dell’utente con cui ci si collega, che nel nostro caso è sviluppo

 Ci si posiziona in questa cartella e si eseguono i comandi

 Per procedere alla compilazione eseguire

Inserire la password di root per poter proseguire. Quando richiesto selezionare come indicato nelle immagini seguenti.

  • Immagine completa

fullosimage

  • Scheda OrangePI PC

orangepipc

  • Scegliamo il kernel di default

defaultkernel

  • Immagine Debian stabile

debianstable

  • Immagine con Desktop Envinronment

debiande

Sotto la cartella output/images viene generata l’immagine da caricare sulla scheda micro sd come descritto in articolo precedente

immagine