Table of Contents
Neo FreeRunner, il telefono libero
di Niccolò Rigacci
3 Settembre 2008
Il Neo FreeRunner è il secondo modello di telefono open prodotto da First International Computer, un'azienda taiwanese che in Cina produce e vende circa un milione di telefonini all'anno. Il progetto OpenMoko fu avviato nell'agosto 2006 sotto la guida di Sean Moss-Pultz, l'idea era quella di liberare nuove potenzialità in un mercato - quello dei telefoni mobili - ormai saturo, dove i margini di profitto sono minimi e derivano solo dall'enorme produzione di massa. Le nuove potenzialità potrebbero emergere quando gli sviluppatori si saranno liberati dalla schiavitù delle piattaforme proprietarie e potranno creare nuovi software che soddisfino le innumerevoli e imprevedibili richieste degli utenti. Insomma: la flessibilità dei PC nell'ingessato mondo dei telefonini. La ricetta appare semplice: costruire un hardware di riferimento pubblicando le specifiche tecniche, selezionare solo componenti di cui esiste un driver open source per il kernel Linux e infine favorire un ecosistema dove il software libero produce quello stesso miracolo che nel mondo del PC si chiama GNU/Linux.
L'inizio di un'avventura
L'attesa è stata lunga. Chi ha seguito dagli inizi il progetto OpenMoko è passato attraverso fasi di umore assolutamente alterno. La notizia che si sarebbe costruito un telefonino aperto (7 novembre 2006 1) non poteva non accendere l'interesse di chi vive nel mondo del software libero; l'entusiasmo è stato sicuramente la prima reazione.
Il principio del software libero release early, release often è stato rispettato in pieno: prima ancora che ci fosse uno minimo di hardware funzionante la comunità è entrata in fermento discutendo le caratteristiche tecniche e studiando le possibili soluzioni software. Non si sa se sia stata anche una abile mossa di marketing, ma certamente è stato suscitato tanto entusiasmo ed interesse attorno a qualcosa che ancora non c'era.
Anche per l'hardware è valso il release early: il primo telefonino prodotto in una certa quantità (sarebbe più corretto chiamarlo prototipo) è stato il Neo 1973, entrato in produzione nel giugno 2007 e realizzato in poche migliaia di esemplari. Tutti i pezzi sono stati venduti in pochissimo tempo e molte richieste sono state respinte causa esaurimento scorte. La produzione in piccola scala aveva motivazioni puramente tecniche, tanto per dirne una non era stato trovato ancora un chip WiFi abbastanza libero da poterlo integrare nel progetto, pertanto il Neo 1973 nasceva privo di WiFi. Paradossalmente questa scarsità ha avuto l'effetto di aumentare di molto l'interesse e le aspettative attorno al progetto. D'altra parte non esisteva e non esiste tutt'ora un altro prodotto che occupi la stessa nicchia di mercato e che soddisfi le stesse esigenze. Si leggevano avidamente i resoconti dei pochi fortunati (perlopiù sviluppatori) che avevano messo le mani sull'oggetto e si registravano le prime evidenze che il mondo reale è un po' più brutto di quello ideale: bug hardware, aggiornamenti software che bloccavano per sempre il telefonino (bricked), mancanza di un sistema operativo di riferimento, difficoltà a fare il porting delle applicazioni. Quando finalmente è stata annunciata la produzione “in massa” (27 giugno 2008 3) l'entusiasmo della comunità è tuttavia salito alle stelle, l'hardware era finalmente quello definitivo e pareva che il software avesse raggiunto una certa maturità. Nella comunità radunata attorno al wiki e nei forum si sono addirittura creati gruppi di acquisto per strappare ai rivenditori condizioni migliori. Ecco che finalmente il telefono GNU/Linux arriva nelle mani dei comuni mortali, non è più un oggetto riservato agli sviluppatori e chiunque può comprarne uno. Sebbene le cifre non vengano rivelate, si parla pur sempre di piccoli numeri: i gruppi di acquisto nel primo mese hanno mobilitato meno di un migliaio di acquirenti.
A tre settimane dalle prime consegne non è facile interpretare l'umore dei possessori del Neo FreeRunner; pare di avvertire una certa delusione, soprattutto dovuta alla constatazione che per il momento non è possibile usare il FreeRunner come telefono di tutti i giorni. A parte lo scontato ritornello che “eravamo stati avvertiti”, credo che si debba concedere a questa esperienza ancora del tempo prima di pronunciare un giudizio definitivo.
L'hardware
L'oggetto che potete acquistare per poco più di 300 euro non sfigura - per caratteristiche hardware - accanto agli attuali modelli top di gamma. Due sole le lacune evidenti: manca il 3G (quindi opera solo in GSM/GPRS, niente EDGE né UMTS) e manca la fotocamera. Per il resto troviamo:
- Processore Samsung SC32442B a 400Mhz
- Schermo LCD 480×640 (45 x 59 mm)
- Touch screen ad alta risoluzione usabile sia con il dito che con lo stilo
- 128 Mb di SDRAM
- 256 Mb di NAND flash
- 16Mbit di NOR flash (boot di emergenza, anti bricking)
- Slot microSD (testato con schede fino a 4 Gb)
- GSM e GPRS tri-band (900/1800/1900 MHz)
- GPS con connettore per eventuale antenna esterna
- Bluetooth 2.0
- 802.11 b/g WiFi
- Porta USB 1.1 Host/Device
- Vibrazione
- 2 accelerometri 3D
- Batteria da 1200 mA standard Nokia
- Dimensioni: 122 x 62 x 19 mm
- Peso: 185 grammi
Impressioni
L'hardware pare di ottima fattura. Non sono stati fatti sforzi estremi di ingegnerizzazione, tant'è che lo spessore del telefonino è imbarazzante se confrontato con un iPhone, ma il display ha una qualità superba (quasi 300 dpi!), ottima luminosità e sensibilità al tocco, il chip WiFi funziona egregiamente, così come il GPS (fatto salvo un bug che ha fatto discutere non poco, ma che almeno nel mio caso pare egregiamente risolto dalla patch software). La mia impressione è che i crash abbastanza frequenti siano da imputare piuttosto al software, in particolare al server X e al server audio Pulseaudio. In generale il freeze hanno riguardato solo l'ambiente grafico, mentre l'accesso via USB rimaneva attivo. L'unico caso in cui il FreeRunner si è rifiutato ripetutamente di funzionare è quando l'ho esposto senza pietà al sole di agosto, raggiungendo una temperatura considerevole. I crash sono stati ripetuti, è stato necessario rimuovere la batteria più volte fino a quando il telefono si è addirittura rifiutato di fare boot. Solo dopo diversi minuti – e tornando a temperature umane – è stato possibile riavviare. La progettazione un po' spartana ha motivazioni anche pratiche: questo è l'unico telefonino i cui utenti vengono espressamente invitati a smontarlo se hanno idee creative o vogliono realizzare particolari hack; una ingegnerizzazione spinta sarebbe stata certamente un'ostacolo.
Problemi riscontrati
Veniamo subito alle note dolenti, in modo da mettere in guardia gli appassionati da possibili crisi di rigetto. Le funzioni di base di telefonia sono ancora immature, non è pensabile di usare il software OpenMoko attuale come telefono di tutti i giorni. Risultati un po' migliori si potrebbero ottenere installando Qtopia, ma per questo ambiente manca il software GPS o per l'accesso web. Altro aspetto critico è la stabilità del software. Sono frequenti i crash del server grafico e il server audio presenta frequenti problemi di utilizzo CPU. La gestione automatica del risparmio energetico in pratica non funziona: il telefono si sveglia periodicamente dal suspend senza apparenti motivi, a volte dopo il suspend alcune periferiche non funzionano più (audio, scheda microSD). Detto questo ci piace però mettere subito in luce il primo lato positivo dell'architettura aperta: quale altro telefono vi consente di avere un dual-boot? Con il FreeRunner potete tenere OpenMoko e installare Qtopia (o altra distribuzione) su microSD! Scusate se è poco…
Quale distribuzione usare?
Una fonte di frustrazione per l'utente del Neo è la scelta della distribuzione da installare. Di fabbrica troviamo installato OpenMoko 2007.2, distribuzione che eredita il lavoro di OpenEmbedded e Ångström. A dispetto del numero che appare obsoleto, questa release viene aggiornata quotidianamente ed è possibile rimanere allineati con il gestore di pacchetti opkg (molto simile per flessibilità e potenza al sistema dei pacchetti Debian). L'ambiente offre il minimo che ci possiamo aspettare: un desktop con le informazioni più importanti, un menu da cui avviare le applicazioni installate e un task manager per gestire le applicazioni in esecuzione. Per chi intende sviluppare software o farne il porting è probabilmente un ottimo ambiente, basato sul server X e le GTK. Il punto debole sono le applicazioni di telefonia base: sebbene sia possibile fare e ricevere chiamate e gestire gli SMS, siamo ben lontani dagli standard minimi che ci aspettiamo da un qualunque telefonino. Per rendere chiaro il concetto basta dire che degli SMS viene visualizzata la data ma non l'ora, non esiste un dizionario predittivo per la scrittura, non è possibile passare dalla tastiera da usare col dito ad una QWERTY da usare con lo stilo, non si capisce se le voci della rubrica vengono salvate nella SIM oppure nel telefono, ecc. Ovviamente mancano anche le funzioni più avanzate: non esiste interfaccia per fare il pairing bluetooth niente pannello di controllo per connettersi a reti wireless, niente menu per avviare la connessione GPRS, il browser è assolutamente primitivo.
Rimanendo nel solco del progetto OpenMoko troviamo OpenMoko 2008.8. Per lungo tempo non si è saputo come sarebbe stata questa nuova versione, finché è stato deciso (8 agosto 2008) che la versione 2008 avrebbe raccolto il testimone dell'esperimento ASU (che sta per August Software Upgrade). Il cambiamento non è di poco conto: le applicazioni di telefonia sono il porting in ambiente X11 di Qtopia. OpenMoko 2008.8 dovrebbe quindi unire i vantaggi delle librerie EFL (le librerie grafiche di Enlightenment), le GTK, Qtopia e X11. Il tutto in un unico ambiente, traendo beneficio soprattutto dalla maggiore maturità di Qtopia che dispone di applicazioni di telefonia teoricamente pronte per un uso quotidiano.
Rimane tutto da vedere come potrà evolvere questo porting di Qtopia, il cui progetto originale ricordiamo è gestito da Trolltech/Nokia. Far convivere il software OpenMoko (aperto e comunitario per natura) con la suite Qtopia (rigidamente controllata da Nokia) può portare a gravi problemi di incompatibilità filosofica. Già sono note le difficoltà con cui Trolltech/Nokia recepisce le richieste e le patch della comunità, ma è altrettanto evidente che la comunità si sviluppa intorno a principi e consensi diversi da quelli che animano Nokia, e la soluzione del fork non è proprio a portata di mano. Si rimprovera a Sean Moss-Pultz (l'ideatore del progetto OpenMoko) di non aver tracciato le linee guida, di mancare di un disegno a lungo termine. Si può dire però che i giochi sono aperti, non resta che partecipare e magari influenzare il futuro con la propria visione e il proprio impegno.
Por chi vuole un approccio più strutturato esiste FSO (FreeSmartphone.org). Si tratta di uno sforzo per rendere ancora più modulare lo stack software di un embedded device. FSO dovrebbe essere il middleware necessario a gestire le periferiche e presentarsi del tutto agnostico rispetto all'ambiente grafico preferito dall'utente/sviluppatore. Che vogliate usare X e GTK oppure framebuffer e Qt, i servizi di base di FSO vi presenteranno un ambiente stabile e omogeneo. In molti auspicano che OpenMoko in futuro faccia uso di FSO.
Una scelta per chi vuole qualcosa di usabile da subito è installare Qtopia (quello originale, non il porting su X11). Il progetto è open source sebbene sia controllato da Nokia. L'ambiente si basa su framebuffer e le librerie Qt, probabilmente l'aspetto più penalizzante è la difficoltà nel fare il porting di applicazioni GNU/Linux. Ad aumentare la confusione esistono anche distribuzioni ibride che mettono insieme i pezzi migliori delle altre, oppure progetti per portare le distribuzioni generaliste (Debian su tutte) sul telefonino.
Se il panorama per il potenziale sviluppatore può sembrare confuso, dobbiamo considerare anche che i progetti a lungo termine dei leader di mercato non sono per niente chiari e definiti: basta pensare a Nokia e alle varie piattaforme che possiede e sponsorizza: Maemo, Qtopia, Symbian, … Per chi vuole sviluppare applicativi è ben difficile decidere in che direzione investire. Siamo ovviamente in attesa anche di Android, su questo fronte speriamo vivamente che il software sarà abbastanza libero ed aperto da poter girare sull'hardware FreeRunner.
Instabilità dei repository
Chi usa abitualmente software libero ha sviluppato una certa fiducia nell'affidabilità dei pacchetti software e delle distribuzioni: Debian, Ubuntu, Mandriva, … non importa il nome: sappiamo che l'installazione e gli aggiornamenti funzionano. Anche chi vive nell'ambito delle distribuzioni testing lo fa con una buona dose di tranquillità. Questo non è il caso di OpenMoko. Può capitare che per giorni interi il repository contenga un pacchetto del kernel difettoso: fate un semplice aggiornamento e il vostro telefono non ripartirà più. Accade che l'elenco dei pacchetti disponibili non corrisponda a quelli effettivamente presenti (e il gestore dei pacchetti va in tilt), accade che si debba rovistare in repository diversi per trovare un pacchetto e le sue dipendenze, accade che alcune utilissime patch al kernel siano presenti solo in pacchetti creati ad hoc da qualche sviluppare. Si paga lo scotto di un Linux embedded che fino ad ora è stato appannaggio di pochi sviluppatori con specifiche competenze. Anche le risorse limitate dell'hardware limitavano la dinamicità del software. L'esperienza di distribuzioni come OpenWrt e Ångström ora si scontra con le necessità di OpenMoko che sono superiori a quelle di un ambiente desktop (basti pensare al risparmio energetico).
Durata delle batterie
Sul fronte risparmio energetico il software OpenMoko lascia ancora a desiderare. Considerato il clock di 400 MHz non si potrà sperare in ore e ore di uso intensivo, ma una corretta gestione della sospensione in RAM, lasciando attivo solo il modulo GSM, dovrebbe consentire durate paragonabili a quelle dei moderni telefoni cellulari. Si ipotizza una settimana in stanby, 6 ore in conversazione, 20 ore di esecuzione brani mp3. Al momento si leggono report di alcuni utenti che con una accurata configurazione hanno ottenuto alcuni giorni di autonomia in standby. Ovviamente con il processore e il display a piena potenza la batteria dura poche ore.
Cosa si può effettivamente fare
Con il passare delle settimane, superata la delusione di non poter usare il FreeRunner come telefonino di tutti i giorni, ci si rende conto di avere tra le mani una piattaforma dalle potenzialità enormi. Manca ancora un briciolo di affidabilità nel sistema operativo, ma già adesso la riga di comando è usabile (con un po' di sacrificio anche con lo stilo) e il kernel espone tutto l'hardware, i tool di base ci sono (wireless-tools, gpsd, bluez-utils, ecc.). Il multitasking funziona e le prestazioni sono buone. Il porting delle applicazioni procede con punte di eccellenza, su tutte ricordiamo tangoGPS. Il piatto forte da gustare a breve termine è poter gestire così tante periferiche integrate in un unico dispositivo palmare, affrontando sforzi di programmazione limitati. Che la vostra scelta ricada su Perl, Python o script di shell avete tutta la potenzialità e la libertà di un ambiente GNU/Linux completo. Se non avete particolari abilità programmatorie potete sperimentare le varie distribuzioni software, scoprendone pregi e difetti e imparando a gestire l'installazione del software desiderato. Con una modesta esperienza potete sperimentare il porting su OpenMoko delle migliaia di applicazioni GNU/Linux esistenti. La mobilità, la localizzazione e la connettività sono nodi cruciali dell'informatica futura, il FreeRunner mette a disposizione tutte le componenti necessarie per partecipare, senza vincoli proprietari.
Nel 1994 ho iniziato ad usare GNU/Linux e mi guardavo bene dal consigliarlo ad amici e parenti. Ma se qualcuno aveva passione per l'informatica o aveva capito l'importanza del software libero, a mio giudizio doveva usarlo da subito, a tutti i costi. Oggi di fronte al FreeRunner sono esattamente della stessa opinione. Ho letto critiche riguardo al prezzo e alle manchevolezze del software, mi dispiace per chi non ha capito il senso: noi siamo pionieri e possiamo entrare oggi in un mondo fantastico dove gli altri arriveranno solo più tardi, senza neanche capire che strada hanno fatto.
Testo rilasciato sotto licenza CC-By.