Archivi tag: firmware

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

Esempio lua per modulo nodemcu enduser_setup (parte1)

Nel precedente artciolo abbiamo mostrato un esempio di codice LUA per ESP8266 su nodemcu

Esempio codice Lua per ESP8266

Facciamo ora vedere un esempio in cui si utilizza il modulo enduser_setup.

Come prima operazione compiliamo il firmware nodemcu inserendo anche il modulo enduser_setup. Si rieseguono i passi fatti nell’articolo della compilazione

Compilare Nodemcu su linux

modificando il file app/include/user_modules.h  scommentando la direttiva

Dopo la compilazione del firmware e caricamento sul dispositivo, utilizziamo uno switch connesso al nodemcu dev kit come indicato di seguito

reset access point nodemcu

Il pin D5 può essere connesso ad un tensione bassa o alta. In base all’ingresso si modifica il comportamento del sistema.

Nota: Il Pin D5 nell’esempio specifico è stato usato in modalità di Input; nel caso si vogliano usare come Output, occorre inserire una resistenza per limitare la corrente di uscita, come specificato al link

Allocazione PIN GPIO

Nel prossimo articolo caricheremo del codice LUA di esempio e si utlizzerà il  modulo enduser_setup per gestire le connessioni wifi

  Esempio lua per modulo nodemcu enduser_setup (parte2)

Compilare nodemcu su linux

Trattiamo ora i passi da seguire per creare la propria immagine Nodemcu con cross compilazione su Linux.

Partiamo sempre dalla immagine Debian descritta in articolo precedente

Ambiente Debian

 Seguendo quanto indicato al link

Cross compilazione

 come prima operazione prepariamo l’ambiente di cross compilazione.

Colleghiamoci su Debian con la nostra utenza (sviluppo nel nostro caso) e creiamo una cartella esp8266 da riga comando

 Installiamo i prerequisiti

 Procediamo a scaricare il repository esp-open-sdk

 per procedere alla sua compilazione

Al termine della compilazione abbiamo la seguente indicazione

Occorre inserire nel PATH quanto segue

Possiamo clonare a queto punto il github del firmware Nodemcu. Sempre dalla precedente finestra di riga comandi eseguire

Una volta posizionati nella cartella esp8266 eseguire

 Al termine posizionarsi in nodemcu-firmware

Prima di procedere alla creazione del nostro primo firmware apportiamo delle modifche sulla configurazione presente in app/include/user_config.h

  • Abilitiamo la direttiva per il nostro devkit 0.9 (devkit in nostro possesso)

#define DEVKIT_VERSION_0_9 1     // define this only if you use NodeMCU devkit v0.9

  • Modifichiamo la velocità di comunicazione sulla USB (velocità di comunicazione del nostro devkit)

//#define BIT_RATE_DEFAULT BIT_RATE_115200
#define BIT_RATE_DEFAULT BIT_RATE_9600

  • Modifichiamo la dimensione della flash a 4M (dimensione a nostra disposizione)

#define FLASH_4M
// #define FLASH_8M
// #define FLASH_16M
//#define FLASH_AUTOSIZE

Salviamo il file e procediamo alla creazione del firmware con il comando

Al termine sotto la cartella bin

troveremo due file: 0x00000.bin e 0x100000.bin. Creiamo un solo file nodemcu_float.bin con il comando

Aggiungiamo l’utente sviluppo al gruppo abilitato a scrivere sulla usb

Debian vede senza necessità di drivers  aggiuntivi la porta USB. In presenza di macchina virtuale abilitare la periferica.

Accedere all’sdk scaricato e compilato prima; nella cartella bin copiare i file

  • blank.bin
  • esp_init_data_default.bin

nella cartella bin dove sono stati generati i file del firmware nodemcu

binDefaultA questo punto siamo pronti a caricare il firmware sul dispositivo mediante lo strumento esptool. Nel prossimo articolo descriveremo come caricare il firmware sul dispositivo

Caricare il firmware con esptool

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.

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

Compilazione Immagine Enigma2 OpenATV

In questo articolo descriviamo come preparare una immagine Enigma2 basata sulla distribuzione OpenATV

Openatv

 Dopo aver installato l’ambiente di compilazione, come descritto nel blog

Preparazione ambiente Debian

si può procedere come segue.

Collegarsi sull’ambiente Debian con l’utenza da utilizzare per la compilazione; nel nostro caso l’utenza è sviluppo. Nella home directory dell’utente creare la cartella enigma2

 Installare i seguenti pacchetti

Riconfigurare la shell come segue

Scegliere No come opzione.

Creare la cartella openatv sotto enigma2

Creare una cartella sources sotto openatv; tale cartella conterrà i sorgenti dei vari tipi di dispositivi che si vogliono compilare

Clonare in locale il repository git della oe-alliance

Al termine del download entrare nella cartella build-envinronment ed eseguire make

Editare ora il file site.conf e modificare il parametro della cartella di download dei sorgenti  da

a

Dalla cartella build-environment eseguire la compilazione della immagine; ad esempio per il decoder Airdigital Zgemma H2H

Per il decode Xtrend et10000

Al termine della compilazione l’immagine è presente nella cartella sotto deploy a seconda del dispositivo di cui si è compilata l’immagine: nel caso dello Zgemma H2H

immaginezgemma

L’immagine da installare sul dispositivo è lo zip che viene generato dal processo di compilazione, da scompattare in questo caso su una penna USB e caricare sullo Zgemma H2H.

ATTENZIONE: 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 dispositivo.

Compilazione immagine Openelec per Orange PI PC

Descriviamo ora come procedere alla compilazione dell’immagine Openelec per la scheda Orange PI PC.

Dal forum di Orange PI PC, nella sezione relativa ad Openelec gli sviluppatori hanno inserito i passi da eseguire per la compilazione dell’immagine

FAQ Openelec Orange PI PC

In blog precedenti si è descritto come installare debian e come trasformare il file script.bin per l’uscita compatibile alla risoluzione accettata dal nostro TV

Preparazione Debian

Modifica risoluzione uscita

Il processo dura parecchio tempo; è consigliabile l’utilizzo di processori multicore per velocizzare la compilazione.

Creiamo una cartella openelec sotto orangepi e spostiamoci in essa

Installare i seguenti pacchetti

Scarichiamo i sorgenti da github con il comando

Al completamento della operazione accedere nella cartella OPENELEC-OPIPC

Eseguire il comando

Il processo controlla i prerequisiti e richiede l’installazione di pacchetti aggiuntivi

Si da l’OK e le relative password; dopo l’installazione dei prerequisti procede alla compilazione del sistema.

Nella cartella target sono dispobili i file per l’installazione:

  1. Il file con estensione .img.gz è da scompattare e trasferire su una scheda sd come visto nei blog precedenti.target
  2. Il file con estensione .tar è da copiare nella cartella updates per consentire l’aggiornamento automatico del sistema da una versione precedente facendo ripartire l’Orange PI PCupdate