->
Dopo l’arrivo del Neo FreeRunner, non ho resistito alla tentazione di installarci, in ordine, Qtopia, OpenMoko 2008.08-update e poi Debian. Tra le tre distro, solo la prima e l’ultima sono state in grado di farmi ricevere/effettuare telefonate (uso una vecchia SIM Omnitel). Gli sms vengono gestiti perfettamente da tutte le distribuzioni. Tuttavia, nell’ottica di avere un cellulare/palmare con cui poter fare qualsiasi cosa, rimangono in ballo solo Qtopia e Debian. Su Qtopia le uniche librerie di sviluppo supportate sono le Qt, e considerato che mi diverto con il PyGtk, anche Qtopia viene scartata.
In questa guida vedremo come installare Debian con Xfce4 sul Neo. In generale, il primo impatto è stato veramente molto positivo. Il processore da 400 MHz del Neo ha la potenza di calcolo necessaria per ospitare il desktop enviroment, che risponde molto velocemente alle richieste dell’utente. Debian + Xfce4 per l’avvio impiega 1 minuto e 40 secondi, contro gli almeno 3 minuti e 30 secondi di OpenMoko. Piccolo neo: i caratteri del desktop sono un pò piccoli, ma con un pò di pazienza tutto si può ingrandire.
Veniamo al dunque: occorre prima di tutto partire da un’installazione di un “qualsiasi” sistema operativo GNU/Linux nella memoria flash del Neo (che è di 256 Mb). La distribuzione OpenMoko 2007.02 che trovate di default all’acquisto và benissimo, anche se io sono partito dalla OpenMoko 2008.08. Durante l’installazione Debian si auto scaricherà completamente dalla rete, quindi c’è la necessità di connettere il Neo ad internet. Consiglio vivamente di farlo via USB, quindi occorre avere accesso al palmare via SSH. Per farlo, è sufficiente seguire le istruzioni presenti nel Wiki italiano.
Appena finito, potremo testare la connessione con un semplice
ping www.google.it
Debian verrà installato nella microSD (quella da 512 Mb in dotazione con il Neo, al termine dell’installazione, avrà disponibili solo 30 Mb circa, quindi è consigliato dotarsi di microSD di dimensioni pari o superiori ad 1 Gb). Si presume che la scheda sia inserita nel Neo; se non lo fosse, spegnetelo, inserite la scheda e riaccendetelo entrando in OpenMoko.
Fate il login via ssh nell’OpenMoko, solitamente
ssh root@192.168.0.202
Dovreste essere posizionati nella home del sistema operativo. Adesso, scarichiamo lo script che ci permetterà di installare debian, con il comando da ssh:
wget http://pkg-fso.alioth.debian.org/freerunner/install.sh
Rendiamo eseguibile lo script con
chmod +x install.sh
A questo punto non ci resta che eseguire lo script per installare Debian. Lo script scaricherà direttamente sulla microSD tutti i pacchetti necessari all’installazione di Debian, quindi qualsiasi dato sulla scheda verrà cancellato, è bene che lo sappiate. Tuttavia, Qtopia o OpenMoko (il secondo si basa comunque sul primo) potrebbero avere ancora accesso alla scheda, quindi “uccidiamo” il processo di Qtopia, con
killall qpe
Quindi finalmente eseguiamo lo script
SD_PART1_FS=vfat ./install.sh all
Specificando questa opzione, lo script creerà automaticamente la partizione Vfat per l’avvio, che altrimenti avremmo dovuto creare manualmente. Durante l’esecuzione dello script potremmo ricevere errori che fanno riferimento al fatto che la partizione /dev/mmcblk0p1 contiene un filesystem montato. In questo caso, possiamo smontarlo con
umount /media/mmcblk0p1
Oppure possiamo controllare qual’è il PID dei processi che usano quella partizione con il comando
fuser -m /media/mmcblk0p1
e quindi ucciderli tutti con il comando
fuser -m /media/mmcblk0p1 | grep killall
Attenzione: questi comandi non sempre funzionano, ma possono sicuramente tornare utili.
Adesso, andiamo a prenderci un bel cappuccino, un cornetto, ed una fetta di torta. Forse sarebbe meglio anche fare una passeggiata per digerire, perchè l’installazione dura più di un’ora.
Al termine, dovremmo trovare nel terminale un messaggio del tipo “Done. Reboot and enjoy!” Non ci resta che spegnere il Neo con il comando
shutdown now
Attenzione: ora che abbiamo un Neo in dua boot, per poter avviare uno dei due sistemi, dovremo per forza accenderlo accedendo alla NOR; per farlo, tenere premuto il pulsante AUX, quindi premere contemporaneamente POWER e dopo che AUX ha emesso un lampeggìo, lasciare POWER. Da questo menù, sarà possibile selezionare l’opzione boot per avviare OpenMoko o Qtopia e l’opzione Boot from SD (FAT+ext2) per avviare Debian. Scorrere il menù con il tasto AUX e selezionare la seconda voce con POWER.
Debian non ci metterà molto ad avviarsi (meno di OpenMoko 2008.08). Rimarremo delusi, forse ci aspettiamo un bel desktop con lo swirl, in realtà troveremo solo l’essenziale interfaccia grafica di Zhone, il programma di base per le telefonate, che purtroppo fa solo quello. Dobbiamo installare Xfce4. Per farlo quindi è necessario usare il potere della Supermucca di APT
Logghiamoci via SSH. Probabilmente avremo problemi perchè il Neo, pur avendo mantenuto il proprio indirizzo 192.168.0.202, ha cambiato sistema operativo. Sul terminale uscirà un messaggio d’errore che potremo facilmente aggirare editando il file ~/.ssh./known_hosts e cancellando tutto ciò che contiene:
nano ~/.ssh./known_hosts
Quindi, riproviamo:
ssh root@192.168.0.202
siamo in Debian! Installiamo un pò di pacchetti utili:
apt-get install xfce4 nano
Al termine, sarà meglio editare il file /etc/fstab per evitare il filsystem check che rallenta di molto l’avvio di Debian:
nano /etc/fstab
e trasformiamolo da così
rootfs / ext2 defaults,errors=remount-ro,noatime 0 1
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 2
/dev/mtdblock6 /mnt/flash jffs2 defaults,noatime,noauto 0 2
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
a così:
ootfs / ext2 defaults,errors=remount-ro,noatime 0 0
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 0
/dev/mtdblock6 /mnt/flash jffs2 defaults,noatime,noauto 0 0
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
Adesso, dobbiamo fare in modo che Debian all’avvio non carichi Zhone, ma Xfce come desktop enviroment predefinito.
nano /etc/init.d/zhone-session
e modifichiamo la riga 17 da così:
PROG_FSO=/usr/bin/zhone-session
a così
PROG_FSO=/usr/bin/startxfce4
Adesso possiamo riavviare e goderci il nostro Xfce
Per liberare un pò di spazio nella partizione root di Debian possiamo dare un bel
apt-get clean
apt-get autoclean
Di default, c’è un piccolo inconveniente: non esiste il click con il tasto destro. Per ovviare a questo fastidiosa carenza, i passaggi seguenti ci permetteranno di installare un pacchetto che farà percepire ad X una pressione prolungata del touchscreen come un click destro, correggendo una sfasatura della posizione del puntatore che si verifica a causa di un bug del pacchetto.
wget http://www.ohli.de/download/xserver-xorg-input-tslib_0.0.4-5+fso2_armel.deb
wget http://pkg-fso.alioth.debian.org/freerunner/pointercal
dpkg -i xserver-xorg-input-tslib_0.0.4-5+fso2_armel.deb
mv pointercal /etc/pointercal
shutdown now
Al riavvio, tutto sarà sistemato. Per facilitarci la vita nelle prossime connessioni via ssh, possiamo modificare il file /etc/hosts ed inserire l’IP del nostro pc collegato al Neo via USB:
nano /etc/hosts
192.168.0.200 pc
In questo modo potremo inviare file dal Debian al pc semplicemente scrivendo scp file.est nomeutente@pc:~. E adesso, la parte più importante: telefonare. Potremo avviare Zhone da
Menù -> Office -> Zhone
Appena avviato, il software riconoscerà automaticamente la nostra SIM, ci chiederà il PIN e ci permetterà di effettuare/ricevere chiamate, sms, oltre che di sfogliare la rubrica. Personalmente, mi sono premurato di mantenere su Xfce solo 2 desktop, uno solo per Zhone e l’altro per tutti gli altri programmi in esecuzione (Iceweasel, Liferea, XMMS). In questo modo è facile switchare dal desktop “pc” a quello “telefono” senza troppi problemi.
Buon divertimento!