1 gennaio 2020

 



Il blog potrebbe non essere aggiornato da diverso tempo.

Per conoscere i miei attuali progetti vi consiglio di visualizzare la pagina Progetti che viene sempre aggiornata.

2 luglio 2018

MAG256 con Portale v2018.04.27 in italiano


Per chi ha un provider IPTV il MAG è senza dubbio un must in fatto di comodità e funzionalità, è un prodotto valido e commercializzato pressoché in tutto il mondo.

Chi ne possiede uno però, avrà sicuramente notato, suo malgrado, che non è disponibile la lingua italiana. Purtroppo in nessun modello MAG è disponibile la traduzione in italiano.
Sono disponibili le lingue più disparate, dal bulgaro al greco, passando per il turco, il russo, l'ucraino ma non l’italiano.

C’è però una nota positiva, siccome Informir mette a disposizione i sorgenti del Portale e tutti gli strumenti per poter creare un firmware personalizzato ho pensato di iniziare a fare qualche esperimento.
Sostanzialmente il software del MAG è basato su STLinux e l’interfaccia non è nient’altro che HTML5, CSS e tanto JavaScript.

Come primo passo ho semplicemente ricreato la versione originale del software che comprende il RootFS v2.20.04, il Portale v2018.01.19 ed il (*)kernel v3.10 precompilato.
Taaac, operazione riuscita con successo, il MAG si è avviato e funziona senza problemi.

Sfogliando il repository mi sono però accorto che il MAG324 rispetto al MAG256 ha una versione più aggiornata del RootFS e del Portale;

MAG324: RootFS 2.20.07
MAG256: RootFS 2.20.04

MAG324: Portale v2018.04.27
MAG256: Portale v2018.01.19

Al che ho pensato di fare il merge della versione v2018.04.27.
Evviva! Tutto funziona correttamente, c’è da dire che tra le due versioni non ci sono grandissime differenze o novità, sono presenti prevalentemente fix, qualche piccolo miglioramento e hanno introdotto la compatibilità coi modelli MAG più recenti.

Ora mi resta da capire se sia possibile fare anche il porting del RootFS o se questo sia specifico per ogni modello di MAG, purtroppo questo componente è si open source ma Infomir non ne rilascia i propri sorgenti.

Intanto, lasciando da parte la questione RootFS ho iniziato a creare i files per la localizzazione della traduzione italiana e pian piano la sto portando avanti, non appena finisco di fare un po’ di pulizia nei sorgenti carico tutto su git così chi vuole può contribuire alla traduzione.

(*) Ho aperto un ticket nella pagina di supporto per chiedere i sorgenti del kernel visto che sono obbligati a rilasciarli.
Inizialmente mi hanno risposto che non sono accessibili al pubblico ed io gli ho riposto che la licenza GPL li obbliga a rilasciarli.
Successivamente mi hanno scritto che i toolchain sono disponibili sul sito di STLinux; Io non ho bisogno dei toolchain ma dei sorgenti del kernel!
Poi, nuovamente, mi rispondono che il kernel è disponibile sul sito di STLinux, si, grazie, questo lo so anche io ma io voglio i loro sorgenti (sicuramente modificati) non quelli di STLinux.
Morale della favola, dopo questi vari botta e risposta sono ancora in attesa di una loro comunicazione.

Io mi chiedo, visto che mettono a disposizione i sorgenti del Portale e sono obbligati a rilasciare quelli del kernel; Perché non utilizzare un servizio come github per gestire il tutto? Sarebbe sicuramente più trasparente e comodo per la comunità che vorrebbe sviluppare app per i MAG o apportare miglioramenti e poi, mettere mano a del codice senza la cronologia dei cambiamenti è davvero deleterio.

9 aprile 2018

Android 8.x Oreo per UDOO Dual/Quad

Un po' a sorpresa NXP ha rilasciato il BSP che supporta Android 8 Oreo per la piattaforma i.MX6.

Il lavoro da fare per avere Oreo funzionante è ancora tanto, intanto ho iniziato col preparare il workspace, una prima bozza del device tree per la board e qualche fix necessario per poter compilare l'intero codice.

Se hai tempo e voglia di partecipare allo sviluppo sei il/la benvenuto/a!

Cosa funziona:
  • Nulla 😁

Cosa c'è da sistemare:
  • Effettuare il porting di u-boot (v2016.03)
  • Effettuare il porting del Kernel v4.9
  • WiFi
  • Bluetooth
  • Audio IN/OUT AC97
  • Altro

Tutti i sorgenti sono disponibili su GitHub mentre qui c'è il manifest con le istruzioni su come scaricare l'intero workspace.

Qui invece potete trovare la discussione nel forum UDOO.

Un grazie in anticipo a chi vorrà partecipare.

5 aprile 2018

AOSPMod OREO-R.05 per Nexus 5X

E' tempo di aggiornamenti, sostanziosi!

Era da un po' che non aggiornavo questa ROM in quanto sono stato occupato con un altro progettino e nel frattempo la lista delle cose da dover aggiornare si è fatta sempre più corposa.

Qui di seguito trovate il changelog quasi completo, quello completo potete visualizzarlo su GitHub sfogliando i vari progetti.

Changelog:
  • Android 8.1.0 Release 22 (OPM5.171019.019)
  • Livello patch di sicurezza: 1 aprile 2018
  • Kernel aggiornato alla versione 3.10.108
  • Aggiunto Eleven dal progetto LineageOS
  • Aggiornato libxml2 alla versione 2.9.8
  • Aggiornato libpng alla versione 1.6.34
  • Aggiornato zlib alla versione 1.2.11
  • Aggiornato SQLite alla versione 3.22.0 
  • Aggiornato WebView alla versione 65.0.3325.109
  • Aggiornato Calendar 5.8.24
  • Aggiornato Chrome 65.0.3325.109
  • Aggiornato Gmail 8.3.12
  • Aggiornato LatinIME 7.0.8
  • Aggiornato Play Store 9.4.18
  • Aggiornato Play Services 12.2.21
  • DeskClock: Fix per la sveglia che non suona
  • DownloadProvider: Aggiunta notifica della velocità del/dei download, tempo rimanente e percentuale
  • Launcher3: Rimosso il QSB dalla home
  • Messaging: Aggiunto lo swipe per cancellare i messaggi
  • Settings: Rimossi i suggerimenti dalla dashboard
  • SystemUI: Colori di sistema importati dallo stile di default dei Pixel
  • SystemUI: Disabilitato un sacco di debug
  • SystemUI: Aggiunta l'icona per il segnale HSPA+
  • SystemUI: Rimosse circa 250 immagine png non utilizzate
  • SystemUI: Aggiunta icona del pacchetto associato al Toast
  • SystemUI: Aggiunto Tile NFC
  • SystemUI: Aggiunto Tile Bussola
  • SystemUI: Aggiunto Tile Tether USB
  • SystemUI: Aggiunto Tile Screenshot
  • SystemUI: Aggiunte le icone dei Pixel nella barra di navigazione
  • SystemUI: Aggiunta l'icona per le chiamate VOLTE
  • SystemUI: Aggiunto pulsante per chiudere tutto dai recenti (più possibilità di spostarlo)
  • SystemUI: Ripristinata la modalità "silenzioso"
  • SystemUI: Possibilità di personalizzare la posizione e lo stile dell'orologio
  • SystemUI: Possibilità di personalizzare lo stile della batteria
  • SystemUI: Aggiunto il monitor del traffico di rete nella statusbar
  • Power menu: Aggiunte funzioni avanzate: Riavvio in recovery, bootloader e riavvio SystemUI

Se volete installare questa ROM assicuratevi che il vostro Nexus 5X abbia bootloader, radio e vendor aggiornati!

Versioni richieste:

Download:

Tutti i sorgenti ed il manifest per il download sono disponibili su GitHub.

Come sempre, non esitate ad utilizzare i commenti per eventuali critiche o suggerimenti.

30 gennaio 2018

Android 7.x Nougat su UDOO Dual/Quad e Neo

lo scorso anno insieme al team di sviluppo di UDOO ci siamo coordinati per iniziare il porting di Android 7.x Nougat per le board Dual/Quad e Neo.
Per vari impegni prioritari però, ci abbiamo potuto dedicare meno tempo durante i mesi ed alcuni punti sono rimasti in sospeso, ora che ho nuovamente un po' di tempo da dedicare mi piacerebbe ultimare i lavori con l'aiuto di chiunque abbia voglia di partecipare.

Cosa funziona:

  • WiFi
  • Touchscreen 7''
  • Touchscreen 15''
  • Audio via HDMI
  • Permessi di root
  • TWRP Recovery
  • Disabilitato verity
  • "Disabilitato" SELinux (impostato su permissivo)

Cosa c'è da sistemare/verificare:

  • Bluetooth
  • Audio IN/OUT AC97
  • OTG
  • Bossac
  • Mount periferiche UMS/SATA
  • Camera (e l'autofocus)
  • Open GAPPS

Informazioni tecniche dell'attuale workspace:

  • Versione Android: android-7.1.2_r36 (Build N2G48H)
  • Versione Kernel: 4.1.35
  • Versione U-BOOT: 2015.04
  • Versione del BSP utilizzato: android_N7.1.1_1.0.0

Attualmente è disponibile il BSP aggiornato, android_N7.1.2_2.0.0, ma bisognerebbe fare il porting del nuovo Kernel 4.9 e l'implementazione di tutto il nuovo HAL.

Ci sarebbe anche il BSP per Android 8.x Oreo ma ancora non ho avuto modo di guardarci e se non sbaglio supporta solo le board i.MX 8MQuad, vedi https://www.nxp.com/support/develop...oftware-and-development-tool-resources:IMX_SW

Tutti i sorgenti sono disponibili qui mentre qui c'è il manifest con le istruzioni su come scaricare l'intero workspace.

Un grazie in anticipo a chi vorrà partecipare.


11 gennaio 2018

RetroPie Box con XBOX

Era da un po' di tempo che pensavo di riutilizzarla per farci qualcosa ed alla fine l'idea che ha prevalso è stata quella di farci una bella RetroPie box per poter tornare a divertirmi con gli storici giochi da sala giochi, Sega Master System, Super Nintendo, Play Station ed altri, che hanno fatto parte della mia infanzia.

Ho iniziato con lo smontare la XBOX in modo da tenere solamente cinque componenti fondamentali:
  1. Il case di plastica nella sua parte superiore e inferiore e da quella inferiore ho rimosso tutto il laminato che la circondava. 
  2. Le 6 viti lunghe utilizzate per la chiusura del case. 
  3. La parte frontale dello sportello del lettore CD. 
  4. Il pannello frontale che contiene il pulsante di accensione/spegnimento, quello dell’apertura dello sportello del lettore CD ed i due LED di notifica. 
  5. Il connettore della 220V rimosso dalla scheda dell’alimentazione interna (questo per intenderci) 

Componenti che ho utilizzato:
  • RaspberryPi 3 
  • MicroSD 32 GB (classe 10) 
  • 4 cavi USB Maschio/Maschio (eBay
  • 4 connettori USB Femmina/Femmina (eBay
  • 1 Cavo HDMI Maschio/Femmina (eBay
  • 1 Cavo RJ45 Maschio/Femmina (eBay
  • 1 Alimentatore 220V → 5V 2A 
  • Saldatore, un po’ di filo elettrico per bassa tensione 
  • Colla a caldo

Il montaggio dei componenti è davvero semplice, i quattro connettori USB vanno sistemati dove prima c’erano le rispettive quattro porte dei game pad, il connettore RJ45 dove c’era quello della board originale della XBOX, quello HDMI dove prima c’era il connettore TV out ed infine quello per l’alimentazione sostanzialmente torna al suo posto originario.



La parte che forse ha richiesto un po’ più di tempo per la messa a punto è la scheda logica che ho leggermente modificato per avere i due led bicolore sempre accesi sul colore verde quando la RetroPie box sarà accesa ed il tasto di alimentazione che accenderà e spegnerà il RaspberryPi.

Ecco lo schema:
Con un filo ho pontato i due piedini centrali (negativo) dei due LED e con un altro filo i due esterni (positivo) che accendono il colore verde.
Dai due piedini esterni del pulsante di accensione ho saldato due fili che poi andranno collegati alla porta GPIO, pin 5 (+) e pin 6 (-) del RaspberryPi.
Ora, per poter far accendere e spegnere il RaspberryPi bisogna creare un piccolo script in Python che controlli gli eventi sui pin occupati dal pulsante, ma prima ho dovuto installare i pacchetti necessari:

$ sudo apt-get install python-dev python-dev gcc python-pip

Dopodiché va installato il pacchetto RPi.GPIO che è un modulo Python per il controllo della porta GPIO:

$ wget https://pypi.python.org/packages/e2/58/6e1b775606da6439fa3fd1550e7f714ac62aa75e162eed29dbec684ecb3e/RPi.GPIO-0.6.3.tar.gz
$ tar xvfz RPi.GPIO-0.6.3.tar.gz
$ cd  RPi.GPIO-0.6.3
$ sudo python3 setup.py install

Dopo aver installato il modulo ho creato lo script:

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

# we will use the pin numbering to match the pins on the Pi, instead of the 
# GPIO pin outs (makes it easier to keep track of things)
GPIO.setmode(GPIO.BOARD)  

# use the same pin that is used for the reset button (one button to rule them all!)
GPIO.setup(5, GPIO.IN, pull_up_down = GPIO.PUD_UP)  

oldButtonState1 = True

while True:
    #grab the current button state
    buttonState1 = GPIO.input(5)

    # check to see if button has been pushed
    if buttonState1 != oldButtonState1 and buttonState1 == False:
      subprocess.call("shutdown -h now", shell=True, 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
      oldButtonState1 = buttonState1

    time.sleep(.1)

L'ho chiamato shutdown.py e copiato in /usr/local/bin.

Infine, per farlo avviare automaticamente al boot l'ho inserito in rc.local;

$ sudo nano /etc/rc.local

ed ho inserito la riga:

sudo python /usr/local/bin/shutdown.py &

Questo è il risultato dei due LED accesi sul verde quando la RetroPie box è accesa:


Per finire non ho fatto altro che abilitare il server FTP su RetroPie in modo da poter caricare le ROM e gli eventuali BIOS tranquillamente da remoto, oppure, nella quarta porta USB posso inserire qualsiasi dispositivo UMS compatibile dove ho precedentemente copiato i files necessari.

- Fonte per l'idea del pulsante On/Off