25 giugno 2016

PINE A64+ la board (attualmente) inutile

Speravo di poter tornare a parlare in positivo di questa board, invece, purtroppo, la realtà è un po' diversa e dopo aver documentato le lacune e le mancanze del supporto software nel primo articolo devo aggiungere altri punti negativi che rendono ancora più inutile, per il momento, questa scheda dalle ottime potenzialità.

Pensavo che fosse solo Android a non avere il dovuto supporto invece anche Linux e RemixOS hanno le loro gatte da pelare.
Le immagini precompilate di Android, le varie distribuzioni Linux e RemixOS sono proprio delle schifezze nel vero senso della parola, lente, continui crash software, malfunzionamenti generali e ciliegina sulla torta sulle distribuzioni Linux non è al momento disponibile l'accelerazione video hardware! Vedi discussione a riguardo sul forum ufficiale; forum.pine64.org/showthread.php?tid=1233

Mi sono preso un po' di tempo per spulciare varie discussioni nel forum e purtroppo sono diversi gli utenti che lamentano la mancanza di supporto, sia software che da parte dello staff, si perché anche chi dovrebbe dare delle risposte sembra fare finta di niente, i moderatori da me contattati tramite messaggi privati non hanno risposto e le mie due email inviate direttamente alla email di supporto (support@pine64.com) non hanno avuto nessuna risposta.
Dando un'occhiata anche alle recensioni sulla loro pagina Facebook si può vedere come a malincuore quelle negative superino quelle positive.

Riassumendo quindi, pollice verso!

* Fonte immagine: blog.hypriot.com


21 giugno 2016

Android 6.0 e Raspberry Pi 3: Nasce ARPi3

Ritorno a parlare di Android e Raspberry Pi 3 con delle succose novità!

Rispetto alla prima release ho avuto modo di effettuare diverse modifiche per rendere ancora migliore l'esperienza d'uso;

  • Risolto il problema del Bluetooth che non si attivava
  • Aggiunto busybox
  • Rimossi i pacchetti Camera2 e messaging
  • Abilitato zRAM
  • App pre-ottimizzate
  • Aggiornato WebView alla versione 51.0.2704.81
  • Aggiornato YouTube alla versione 11.22.56
  • Ora il compilatore di default è GCC di Linaro (v5.3.1)
  • Modificato il governor di default da powersave a performance

Oltre alle novità sopra ho aggiunto anche la possibilità dell'inline kernel building, modifica che si occupa di compilare i sorgenti del kernel automaticamente quando viene compilata la ROM senza doverlo più compilare manualmente a parte come accadeva precedentemente.

Riguardo alle app pre-ottimizzate ho preferito questa via di modo da velocizzare notevolmente il primo boot, siccome ART ora non deve più ottimizzarle al primo avvio.

Ho pensato anche di sostituire il compilatore di default GCC 4.9 con la versione Linaro 5.3.1 che è notoriamente più ottimizzata, ma attenzione, non ho ancora aggiunto i flags di ottimizzazione nella compilazione dei sorgenti, questo passaggio necessità di ulteriori test e saranno aggiunti e resi disponibili nelle future release.

Per chi volesse installare questa nuova build la può scaricare dal seguente indirizzo: github.com/Android-RPi3/android_releases_rpi3/releases

In diversi mi hanno scritto chiedendo se questa ROM sia compatibile con il Raspberry Pi 2; No.
Per ora solo Raspberry Pi 3, magari in futuro includerò anche il RPi2, vedremo.

Quasi dimenticavo, con poca fantasia ho pensato di chiamare questo progetto ARPi3, Android Raspberry Pi 3, se qualcuno volesse proporre un nome più carino può utilizzare i commenti.


9 giugno 2016

Android 6.0 su Raspberry Pi 3

Dopo aver fatto i primi test posto questo articolo per aggiornarvi sullo stato dello sviluppo.

Ho provveduto a caricare tutto su github, qui: github.com/Android-RPi3
Sono disponibili il manifest e le istruzioni su come preparare lo spazio di lavoro, scaricare i sorgenti e compilare il tutto, sia Android che il kernel.

Ho inserito anche uno script che al termine della compilazione provvede automaticamente a partizionare la MicroSD, formattarne le partizioni, scrivere system.img con dd e copiare i file necessari al boot, ramdisk, kernel, dtbs e bootloader.
Ringrazio l'utente ikalkov che è l'autore originale dello script, io l'ho solamente modificato e adattato per automatizzare ulteriormente la procedura di preparazione della MicroSD.

Rispetto al repository originale del kernel (v4.4.12 qui), quello da me caricato è già aggiornato all'ultima release disponibile (v4.4.13) presa direttamente dai sorgenti di raspberry.

Ho provveduto anche a caricare i due progetti, frameworks/base e frameworks/av, ai quali lo sviluppatore originale chiede di aggiungere delle patch di modo che l'intero progetto sia già pronto per essere compilato senza dover ulteriormente mettere mano ai sorgenti.

-Fonte immagine: androidpi.wikia.com/wiki/Android_Pi_Wiki


7 giugno 2016

Android 6.0 su Raspberry Pi 3

Sono commosso, davvero, quasi non ci speravo più invece è ormai ufficiale che Google ha inserito il Raspberry Pi 3 nella cerchia dei dispositivi eletti ad essere supportati ufficialmente da loro.
Dopo svariate distribuzioni linux e recentemente pure Windows 10 IoT in futuro potremo finalmente godere delle funzioni offerte da Android.

Come riporta Ars Technica e confermato anche direttamente dalla Raspberry Pi Foundation su Twitter, su googlesource.com è stato creato un repository, per ora vuoto, dal nome che non lascia nessun dubbio, rpi3.

Ciò nonostante però si sa che molto spesso la community arriva a compiere i miracoli prima delle case produttrici ed ecco che il portale TuttoAndroid.net riporta una notizia interessante: "Android TV realizzata con Raspberry Pi 3".
Dopo aver letto l'articolo ed aver visto il video mi sono detto che avrei dovuto assolutamente provare con mano a compilare e testare, e così ho fatto.

Il tutto parte dai repository dell'utente peyo-hd su github.
Grazie anche alle istruzioni ben dettagliate è stato più facile del previsto mettere insieme tutto e far fare il primo boot.

Inizialmente, secondo le istruzioni sono partito dal branch npv che starebbe per N-preview ma che in realtà come scrive lo sviluppatore stesso non è altro che il branch AOSP master rinominato, appunto, in npv.

Dopo aver compilato il kernel (4.4.12), Android e partizionato la MicroSD il Raspberry ha fatto regolarmente il boot ma non contento mi sono chiesto; Perché utilizzare il branch master quando ci sono a disposizione le build stabili?
E così con un veloce repo sync sono passato all'ultima build disponibile, la MOB30M tag android-6.0.1_r46 che include le patch di sicurezza per il mese di giugno.
Come potete vedere dalla foto accanto anche con questa build non c'è stato nessun problema all'avvio.

L'inghippo che ho riscontrato è che avendo dovuto fare un downgrade delle sepolicy da quelle per il branch master a quelle per marshmallow il bluetooth al momento non funziona, spulciando il logcat dovrebbe essere colpa di qualche regola SELinux.
Ho avuto lo stesso problema con il WiFi ma in questo caso mi è bastato ripristinare le regole contenute in wpa.te per fixare al volo il problema.

C'è anche un altro problema del quale al momento ignoro completamente la causa; Il launcher (Launcher3) si avvia ma con dei notevoli glitch grafici, vedi immagine qui sotto.


Per fortuna questi scompaiono nel momento in cui si avvia un'applicazione oppure quando si entra nelle impostazioni del sistema ma appena si ritorna nella home si ripresentano.
Per chi volesse cimentarsi nell'impresa di compilare da sé i sorgenti sappia che servono due patch indispensabili, questa per il kernel e questa per il progetto mesa3d.

Vi terrò aggiornati sul proseguimento del progetto!

Se avete domande non esitate ad utilizzare i commenti.


3 giugno 2016

Prime impressioni: PINE A64+ la board ARMv8

Ebbene, è da quando hanno lanciato la campagna su kickstarter che seguo l'evoluzione di questa interessante board e finalmente sono riuscito ad entrare in possesso del modello A64+ che rispetto al modello A64 si differenzia in quanto ha 2GB di RAM al posto di 1GB.


Ero contentissimo quando l'ho ricevuta, non vedevo l'ora di scaricare l'SDK di Android, già disponibile nella versione 6.0 Marshmallow!, per poter cominciare a smanettare e compilare la mia custom ROM per testare con mano le potenzialità di questa board.

Qui iniziano i primi problemi; Il genio di turno che si è occupato della distribuzione dell'SDK di Android al posto di fare un lavoro come andrebbe fatto, ovvero utilizzare una delle varie piattaforme che offrono gratis il sistema di revisione del codice, tipo github, bitbucket, gitlab, ecc, ha preferito fare uno zip all-in-one di 12GB e rotti.

Da questa insensata scelta sorge un ulteriore grosso problema dato dalle limitazioni del formato zip e cioè che non mantiene l'eventuale bit di esecuzione sui files quindi ho dovuto, inizialmente manualmente e in un secondo tempo automaticamente con uno script, riassegnare il permesso di esecuzione a tutti gli script e binari necessari.

Risolto il problema sui files ho scoperto un'altra grossa pecca; Sempre il genio di turno ha pensato bene di fare un rebase di tutti i progetti AOSP che sono circa 500, cancellando così tutto lo storico dei commit da tutti i progetti!

Questo è l'unico commit nello storico:

Author: liangyongjie 
<liangyongjie@allwinnertech.com>
Date:   Tue Feb 2 13:55:39 2016 +0800 

    exdroid-6.0.1_r3-a64-v2.0-demo release

Ne consegue che così facendo non si può sapere quale progetto è stato modificato e cosa è stato modificato da parte di Allwinner rispetto al codice originale AOSP.

Perla finale; Per poter flashare l'immagine compilata non si può usare il comodo comando dd di linux ma bisogna per forza utilizzare un tool proprietario chiamato PhoenixCard che udite udite, gira solo su Windows.
Mi chiedo quale senso abbia sviluppare una board che supporta differenti distribuzioni Linux ed Android, orientata al mondo opensource quindi, se poi si necessità di dover metter mano a Windows per flashare le immagini.

Scherzavo, quella di prima non è l'ultima.
Spulciando nella wiki del sito non c'è nessun riferimento alla procedura da seguire per compilare Android. Purtroppo per motivi a me ancora sconosciuti non viene seguito lo standard Android per generare le immagini, ecco perché serve quella pataccata di PhoenixCard.
Non è ancora tutto, oltre a non esserci nessuna istruzione su come utilizzare l'SDK non ci sono informazioni nemmeno sulla tabella delle partizioni utilizzate dalle immagini Android quindi anche volendo non si può flashare un diavolo di niente.

La cosa che più mi infastidisce è che nemmeno nel forum di supporto sembra esserci nessuno che ne sappia nulla nemmeno tra lo staff quindi per il momento questa board per quanto ne so io mi rimane inutilizzabile.

Se qualcuno ne sapesse di più può utilizzare i commenti per scrivere informazioni utili.

- Fonte immagine: blog.hypriot.com