->
Negli ultimi due mesi mi sono dedicato ad una maniacale opera di sistemazione della mia vita. Troppe cose in sospeso, troppe idee in giro e troppi progetti non conclusi. L’obiettivo, da adesso a settembre, sarà quello di chiudere un pò di parentesi. Ovviamente tutto questo passa anche (e soprattutto) per il mondo della cultura libera, e per i progetti liberi che seguo ed a cui partecipo attivamente: Ubuntu-it, OpenMoko, i progetti della Wikimedia Foundation ed OpenStreetMap.
In questi 90 giorni, la necessità di ordine si è tradotta in:
Resta ancora da fare:
Come vedete le idee sono tantissime, il tempo poco. Prossimamente pubblicherò una roadmap dettagliata sulle mie attività nei progetti liberi, con cadenza settimanale
Il servizio di file sharing di Dropbox (anche se detto così, lo so, è riduttivo) continua a stupire: invitando degli amici ad usarla, nel momento in cui questi installeranno il client sul proprio PC, verranno automaticamente “donati” all’utente che ha inviato l’invito 250 Mb di spazio aggiuntivo (per sempre); si potranno comunque ottenere al massimo 6 Gb aggiuntivi.
Inoltre, ho notato che ultimamente è stato anche attivato un Wiki, da cui attingere preziosissimi consigli per noi utenti GNU/Linux, come installare il client Dropbox su un sistema col pinguino senza interfaccia grafica (da terminale – in Python), oppure come sincronizzare in Dropbox file presenti anche in altre cartelle del sistema. Ma le soprese non finiscono qui… sul Wiki ci sono spunti veramente interessanti, consiglio una lettura anche veloce!
Dopo aver usato per quasi un anno e mezzo Basket¹, e dopo essere passato (un anno e mezzo fa) a GNOME da KDE, oggi mi sono finalmente redento all’irresistibile fascino di TomBoy, l’arcinoto programma per prendere note ed appunti sull’ambiente desktop GNOME.
Dando per scontato che lo conosciate tutti, non sto qui a tessere le lodi del software giallo ed appiccicoso. Invece, proprio oggi ho ripensato allo storico detto:
Il mondo è diviso in due categorie di persone: chi ha perso i dati, e chi li perderà.
Per carità, il mio laptop (nonchè PC principale) gode di ottima salute anche dopo aver attraversato 3 upgrade di Ubuntu. Però, sapete com’è… non si sa mai. E poi in università mi porto dietro l’Asus 901, e mi piacerebbe avere le mie note TomBoy aggiornate con quelle prese “a casa”. E allora? Allora, TomBoy offre tre tipi di servizi di sincronizzazione delle note: uno con sshfs (con FUSE), l’altro con un server WebDAL, ed infine uno con una cartella locale.
Ora, provate a guardarmi in volto: non sono tipo che mette su un servizio sshfs o un server WebDAL solo per sincronizzarsi le note sui pc. Invece, sono un affezionato utente DropBox. Ciò significa che ho creato nella mia dropbox una cartella di nome “tomboy” e ho ordinato ad entrambi i TomBoy (quello sul Dell di casa e sull’Asus nello zaino) di usarla come cartella di sincronizzazione locale delle note. Risultato: note sincronizzate tra i due pc, via internet, senza il minimo sforzo!
Infine, un paio di cose: il plugin “Tomboy” di GnomeDO integra una funzione veloce per creare/modificare/cercare note all’interno di TomBoy senza staccare le mani dalla tastiera, consiglio vivamente l’attivazione. Inoltre, TomBoy è estensibile con un plugin che trovo molto utile, reminder. Questo plugin ha lo scopo di far saltare in primo piano la nota in un giorno stabilito dall’utente, in maniera tale che l’utente se ne ricordi.
Per installarlo, scaricare questo file ed inserirlo nella cartella dei plugin di TomBoy, con il seguente comando da terminale (che necessita di password di amministratore):
sudo mv tomboy-reminder.dll /usr/lib/tomboy/addins/
Detto ciò… Buon lavoro!!
¹ Il solito programma per KDE, troppo carico di opzioni spesso inutili, grosso, troppo complicato, poco maneggevole.
Come molti di voi sapranno, nel luglio 2008 un’intraprendente società taiwanese ha rilasciato la prima versione “mass market” del Neo FreeRunner, il primo telefono/palmare completamente open source della Storia. Sono passati molti mesi dal rilascio, e tutto il mondo si è precipitato a creare la propria versione del sistema operativo per il palmare, partendo da zero o “portando” qualcosa che già esiste (è quest’ultimo il caso di Debian e Gentoo). Comunque, la FIC paga un consistente numero di sviluppatori per lavorare ad una versione “ufficiale” del sistema operativo, chiamato OpenMoko, e che in linea teorica vorrebbe diventare IL sistema operativo per dispositivi palmari, compatibile con quanti più modelli possibili. Non si può creare un sistema operativo universale per palmari in 1 anno, ma almeno sul Neo FreeRunner le cose sembrano andare per il meglio. Dopo qualche delusione dovuta all’ultima versione di OpenMoko (datata a Dicembre 2008), e dopo aver cercato di riparare ai continui freeze installando il kernel compilato da Trevino, ho deciso di spostarmi definitivamente sulla versione più aggiornata del sistema, SHR (Stable Hibrid Release), che pur essendo disponibile in versione “unstable”, offre un stabilità e un look veramente accattivanti.
Cos’è SHR? Quando si è pensato ad un sistema operativo per palmari, si è avuta la necessità di creare un framework basato su Dbus al quale tutti gli sviluppatori potessero fare riferimento per creare le proprie applicazioni. Questo framework per palmari non esisteva, e ci sta pensando un impiegato della FIC, Mickey Lauer. Come per il desktop, si è scelto di rispettare le specifiche di Freedesktop.org, creando Freesmartphone.org, al fine di ottenere una base Dbus comune per tutte le distribuzioni GNU/Linux per palmari. Quindi, SHR è una versione di OpenMoko che ha come base FSO (Free the SmartPhone), che dovrebbe rappresentare lo stack del futuro, come Freedestkop.org lo è adesso per tutte le distribuzioni desktop GNU/Linux (compresa Ubuntu). Per questo, il nome SHR: “rilascio ibrido stabile“. Insomma, alla FIC si sta costruendo il futuro di GNU/Linux sui palmari.
Quale versione installare? SHR è disponibile sia in versione “stable” che “unstable”: quella stable – non ancora disponibile – sarà un freeze delle caratteristiche alla data prescelta. La unstable attualmente disponibile è in costante lavorazione, ma è sufficientemente stabile da poter essere usata come telefono quotidiano, più di OpenMoko 2008.12. È inoltre disponibile la versione “lite” del filesystem di root, più leggera e veloce da scaricare sul pc e flashare sul Neo.
Perchè SHR (Pro)?
Perchè evitarla? (Contro)
Installazione Personalmente ho installato shr-lite-image-om-gta02.jffs2 e uImage-2.6.28-[...].bin, ovvero le ultime versioni del filesystem di root e del kernel (suggeritemi nella mailing list ufficiale). Ricordo al gentile lettore che le immagini possono essere comodamente flashate nel Neo usando NeoTool. La prima cosa da fare dopo il primo boot è riavviare il Neo, perchè al primo boot il GSM non funziona. Fatto ciò, potremo constatare al successivo riavvio che di default funziona il collegamento ad internet via USB e funziona anche SSH.
Sistemare il tasto Power Di default, alla pressione del tasto Power, appare prima un menù che comprende le opzioni per lo standby, lo spegnimento e la chiusura della sessione (proprio come un pc!), poi il Neo và in standby. La spiacevole quanto inutile apparizione del menù può essere evitata dando i seguenti comandi:
Risolvere il problema del pacchetto gtk+-fastscaling In SHR (ed FSO se ricordo bene) il pacchetto gtk+-fastscaling è stato rinominato semplicemente in gtk+, ma molti programmi non lo sanno, per questo hanno come dipendenza il fastscaling che in realtà è già installato nel sistema come “gtk+”. Quando si vanno ad installare pacchetti del genere, può capitare di ricevere un errore e si interromperà l’installazione. Per ovviare a questo problema, sarà sufficiente ridare il comando di installazione, inserendo la dicitura –force-depends tra opkg e install. Ad esempio, per installare Navit:
opkg --force-depends install navit
Inserire un tasto per lo spegnimento Dopo aver eliminato il menù che appare alla pressione del tasto Power, non ci sarà più modo di spegnere il Neo senza un terminale. Possiamo ovviare a questo problema creando uno shortcut sul desktop. Basterà inserire il seguente file, che chiameremo shutdown.desktop nella cartella /usr/share/applications/
[Desktop Entry] Encoding=UTF-8 Version=0.7 Name=Shutdown Type=Applicat=UTF-8 Version=0.7 Name=Shutdown Type=Application Comment=Show System Processes Terminal=true Exec=shutdown now Path= Icon=/usr/share/icons/openmoko-standard/128x128/apps/openmoko-system-default.png Categories=ConsoleOnly;System;Application; GenericName=Process Viewer Categories=Office; Exec=shutdown now
Una nota su GPS, Bluetooth, GMS e Wifi Il nuovo framework FSO su cui si basa SHR ha il grande vantaggio di tenere spenti tutti questi servizi all’avvio del sistema. Inoltre, esso si pone come “gestore” di questi servizi tra le applicazioni ed il kernel; in altre parole, noi non avremo bisogno di “attivare” il GPS prima di aprire TangoGPS o Navit: sarà sufficiente aprire uno di questi programmi, e poi ci penserà il sistema operativo ad attivare il GPS. Nella stessa maniera, quando chiuderemo tutti i programmi che utilizzano il GPS, il ricevitore verrà spento. Il Wifi ed il Bluetooth devono essere accesi e spenti “manualmente” dall’apposito menù Settings. Anche il GSM come il GPS viene acceso solo su richiesta dal sistema operativo, ed in particolare questa richiesta avviene nel momento stesso dell’accensione del Neo, quindi a noi sembra che venga acceso di default. Se vogliamo risparmiare sulla batteria e non ci serve il GSM, possiamo disattivarlo dal menù Settings. Molto comodo, non trovate? Niente di tutto questo esiste su OpenMoko 2008.12.
TangoGPS e Yaouh! Yaouh è un’applicazione scritta da un italiano, Carlo Minucci, che scansiona tutte le mappe presenti in TangoGPS e le aggiorna scaricando da OpenStreetMap solo le parti che sono state aggiornate dopo l’ultimo rendering settimanale (che avviene ogni giovedì solitamente). Purtroppo, a partire dall’ultima versione di TangoGPS, la 0.9.5, i repository delle mappe del programma vengono scritti all’interno del codice stesso del programma, e non sono più reperibili da Yaouh!, che non riesce quindi a scaricare alcun aggiornamento. Per ovviare a questo inconveniente, almeno per le mappe “standard” di OpenStreetMap (quelle di Mapnik, per capirci), è sufficiente sostituire nel file ~/.gconf/apps/tangogps/%gconf.xml questa riga:
<entry name="repo_name" mtime="1234965934" type="string"> <stringvalue>OSM</stringvalue> </entry>
con questa
<entry name="repo_name" mtime="1234965934" type="string"> <stringvalue>OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/home/root/Maps/OSM|0</stringvalue> </entry>
rispettando gli spazi e la sintassi del resto del file. Attenzione però: il file in quesione viene sovrascritto da TangoGPS ad ogni chiusura del programma, quindi dopo aver modificato il file aprite Yaouh! e aggiornate le mappe senza aprire/chiudere TangoGPS, altrimenti avrete perso tempo…
Navit La versione più aggiornata di Navit installabile sul Neo è quella SVN, e può essere installata dando i seguenti comandi:
echo src navit http://download.navit-project.org/navit/openmoko/svn >/etc/opkg/navit-feed.conf opkg update opkg install navit
Scarichiamo la cartografia italiana di OpenStreetMap aggiornata settimanalmente fornita da CloudMade, da qui, e dopo averlo estratto dall'archivio, spostiamo il file nella cartella ~/.navit Quindi, bisognerà sistemare il file di configurazione, con il seguente comando: cp /usr/share/navit/navit.xml ~/.navit/navit.xml Adesso inseriamo nel file una nuova dicitura "mapset", più o meno nei pressi del rigo 148: <mapset enabled="yes"> <map type="binfile" enabled="yes" data="/home/root/.navit/italy.navit.bin" /> </mapset> Fatto ciò, possiamo ancora fare in modo che Navit visualizzi i tasti "+" e "-" per lo zoom, per ingrandire e diminuire lo zoom della mappa durante la navigazione, portando da "enables=no" a "enables=yes" le voci ai righi 53 e 54: <osd enabled="yes" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/> <osd enabled="yes" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/> Tutte le indicazioni per il tweak dell'interfaccia grafica di Navit sono qui. Per usare Navit è molto utile ruotare lo schermo in orizzontale; è possibile ottenere una comoda applicazione con tanto di icona nel menù per farlo, installando questo pacchetto. Qualche screenshot
cp /usr/share/navit/navit.xml ~/.navit/navit.xml
Adesso inseriamo nel file una nuova dicitura "mapset", più o meno nei pressi del rigo 148:
<mapset enabled="yes"> <map type="binfile" enabled="yes" data="/home/root/.navit/italy.navit.bin" /> </mapset>
Fatto ciò, possiamo ancora fare in modo che Navit visualizzi i tasti "+" e "-" per lo zoom, per ingrandire e diminuire lo zoom della mappa durante la navigazione, portando da "enables=no" a "enables=yes" le voci ai righi 53 e 54:
<osd enabled="yes" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/> <osd enabled="yes" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/>
Tutte le indicazioni per il tweak dell'interfaccia grafica di Navit sono qui. Per usare Navit è molto utile ruotare lo schermo in orizzontale; è possibile ottenere una comoda applicazione con tanto di icona nel menù per farlo, installando questo pacchetto.
Qualche screenshot
UGS è uno script in Python realizzato per automatizzare l’inserimento delle nuove voci all’interno del Portale Giochi del Wiki di Ubuntu-it. In particolare, lo script si occupa di facilitare la compilazione della tabella informativa relativa ad ogni gioco, oltre a svolgere altre varie funzioni. Lo script è rilasciato sotto licenza GPL v3.
Lo script permette di evitare errori comuni durante la scrittura delle pagine di wiki nel Portale Giochi:
permette anche ai meno esperti della formattazione wiki di poter completare la tabella descrittiva senza difficoltà;
permette anche ai meno esperti di ottenere facilmente il codice da inserire nelle pagine di lista (Giochi/Azione, RpgMmorpg, ecc.);
evita che si possa creare una nuova pagina con un NomeWiki errato (controllo NomeWiki sia sul nome del gioco che su quello dell’utente);
evita che si dimentichi di inserire la licenza;
evita che vengano caricate immagini con lo stesso nome, o con nomi non significativi;
evita che si dimentichi la Category in fondo alla pagina;
La versione più aggiornata dello script è attualmente scaricabile da qui
Al termine del download,
estrarre il pacchetto; è possibile anche farlo da terminale, con il comando
cd unzip ugs-*.zip
Eliminare l’archivio, ormai inutile, con il comando
rm ugs-*.zip
Entrare nella cartella dello script ed eseguirlo, con i comandi
cd ugs python ugs.py
0.8.8
aggiunto supporto per tutti i browser (Firefox, Konqueror, Lynx, Netscape); dovrebbe supportare anche Internet Explorer;
supportato l’inserimento di “qualsiasi” nei campi Processore, RAM e Scheda video (automaticamente convertito in minuscolo nel caso si scriva “Qualsiasi”);
aggiunta la pulizia dei file dalla cartella ugs/risultati, ed eliminati eventuali messaggi d’errore legati all’assenza del file opzionale lista.txt;
è stato pulito un bel pò il codice, e create le funzioni “def” per snellire il processo del NomeWiki e della pulizia dei file.
0.8
aggiunto controllo su quantità di RAM (MiB, GiB);
aggiunto controllo sulla grandezza del download (KiB, MiB);
aggiunto controllo sull’indirizzo del sito (supporto per “http://“, “www” e “ftp://“);
migliorata leggibilità e pulizia dello script; ordinate sequenze delle azioni.
0.7
aggiunta funzione di creazione della voce per i menù di sezione;
ottimizzato e ridotto il comando di avvio;
inserita funzione che controlla automaticamente la maiuscola all’inizio della descrizione della voce di lista;
sistemate cartelle dello script ed eliminati file inutili;
eliminata opzione non funzionante “modifica dati”;
0.6
trasformazione di qualsiasi nome del gioco inserito dall’utente in un NomeWiki;
inserimento veloce di Categoria, N° Giocatori, Download, Sito Ufficiale, Requisiti Minimi;
selezione assistita della Licenza;
rinomina automaticamente l’immagine del gioco con il nome del gioco stesso;
inserimento della CategoryGiochi solo se la guida è completa;
apertura diretta (in modalità edit) della pagina Prove dell’utente (se la guida è incompleta) o direttamente della pagina del gioco (se la guida è completa); se il NomeUtente digitato alla richiesta non è corretto (per esempio, se scrivo Francesco de virgilio al posto di FrancescoDeVirgilio), viene automaticamente corretto dallo script.
Il risultato dell’esecuzione dello script è visbile nei file risultato.txt e lista.txt, generati temporaneamente all’interno della cartella usg/risultati, ma copiati nella propria Home.
La cartella ugs/non_modificare contiene file essenziali per ottenere risultati corretti, quindi non vanno modificati nè rinominati.
Lo script attualmente supporta tutti i browser per GNU/Linux e dovrebbe funzionare anche su Windows con Internet Explorer.
Per il corretto funzionamento dello script, non bisogna rimuovere nessuno dei file dalla cartella ugs.
Alcune opzioni presenti nello script permettono di entrare nel Wiki di Ubuntu-it direttamente in modalità edit, per cui, prima di utilizzarlo, è consigliabile essere iscritti al Wiki.
Ogni blog ha il suo post “tecnico”, oggi è il mio turno… in questa guida vedremo come catturare immagini ad alta risoluzione del nostro pianeta, su cui è stata applicata come texture la cartografia di OpenStreetMap. La guida non è farina nel mio sacco, ma è stata allegramente tradotta dal sito ufficiale del progetto. Le immagini possono essere utili per presentazioni, talk, diapositive ecc. Dico questo perchè la risoluzione del file è a discrezione dell’utente, anche molto alta, ma la qualità dell’immagine non è generalmente buona per la stampa. Purtroppo non ho ancora avuto tempo di testare la guida.
su
/usr/share/kde4/apps/marble/data/maps/earth/openstreetmap/openstreetmap.dgml
<downloadUrl protocol="http" host="a.tile.openstreetmap.org" path="/" />
in
<downloadUrl protocol="http" host="a.tah.openstreetmap.org" path="/Tiles/tile/" />
ed eliminando tutte le altre due righe “downloadUrl”.
apt-get install xvfb x11xvnc xvnc4viewer imagemagick netpbm mkdir /tmp/marblefb
Xvfb -ac&amp;nbsp;:1 -fbdir /tmp/marblefb -screen 0 4096x4096x24 x11vnc -scale .5 -display&amp;nbsp;:1
vncviewer localhost&amp;nbsp;:0 DISPLAY=:1 marble -geometry 4096x4096+0+0
/tmp/marble.png
<code>xwdtopnm < /tmp/marblefb/Xvfb_screen0 | pnmtopng > /tmp/marble.png</code>
Se ne avete voglia, inviatemi pure i vostri screens planetari!
Recentemente, ho avuto necessità di utilizzare la libreria PyMedia, per renderizzare alcune tracce raccolte durante il primo Archaeologic Mapping Party di OpenStreetMap in Italia (e nel mondo) a Pompei. PyMedia è una libreria che permette a Python di manipolare file multimediali (audio/video/immagini). Il problema è che pymedia non esiste nei repository di Ubuntu 8.10 Intrepid Ibex, e l’unico pacchetto .deb disponibile in rete è adatto a Python 2.4 e ad una vecchia versione di Ubuntu. Per questo, ho compilato e pacchettizzato con checkinstall pymedia per Ubuntu 8.10 Intrepid Ibex. Il pacchetto potete scaricarlo da qui, oppure potete compilarvelo come segue.
Passo 1. Ottenere pymedia
wget http://internap.dl.sourceforge.net/sourceforge/pymedia/pymedia-1.3.7.3.tar.gz tar xzvf pymedia-1.3.7.3.tar.gz cd pymedia-*
Passo 2: Installare le dipendenze
sudo apt-get install python-dev libogg-dev libvorbis-dev liblame-dev libfaad-dev libasound2-dev python-pygame
Passo 3. Installare GCC 3.4 (pymedia non si compilerà con GCC 4.0)
sudo apt-get install gcc-3.4 g++-3.4 export CC=gcc-3.4
Passo 4. Fare alcune modifiche al codice C prima di compilare
In <audio/acodec/acodec.c> alla linea 31 inserire quanto segue:
#define HAVE_LRINTF
In maniera tale da ottenere:
#include <libavcodec/avcodec.h> #define HAVE_LRINTF #include "libavcodec/dsputil.h" #include "version.h"
Passo 5. Costruire e compilare pymedia
sudo python setup.py build
Passo 6. Essere bravi utenti Ubuntu e installare pymedia con checkinstall
sudo apt-get install checkinstall sudo checkinstall python setup.py install
Nota: Se si vuole essere dei cattivi utenti Ubuntu, è possibile installare pymedia senza creare il .deb, sostituendo il comando precendente con “sudo python setup.py install”.
Passo 7. Controlliamo se funziona: in un terminare digitare “python” e poi “import pymedia”; se non otteniamo errori, siamo a cavallo
python >>> import pymedia
Forse tra di voi ci sono moltissimi utenti Flickr. Bisogna ammettere che da quando molti di noi sono diventati dipendenti dai vari servizi online (da Imageshack a Flickr, da Google a OpenStreetMap, da Launchpad a LastFM) questi fornitori di servizi hanno compreso come possa essere utile, al fine di integrare il maggior numero possibile di sistemi operativi con il proprio prodotto, realizzare delle API utilizzabili indipendentemente dal proprio sistema operativo.
È ciò che è successo pressappoco per Flickr: sulla base delle API rilasciate dal vincente progetto di Yahoo, sono stati realizzati qualcosa come 37 software per gestire le proprie foto su Flickr.com. Molti di questi sono compatibili con GNU/Linux, alcuni scritti in C, altri in Java, altri in Python, altri in perl. Esistono validissimi software in Gtk, altri in Qt o in Tcl/Tk, ma esistono anche alcuni tool da linea di comando. Altri strumenti sono stati integrati nei più noti gestori di fotografie per GNU/Linux (F-Spot, Digikam). Ed infine, qualcuno ha pensato di realizzare l’integrazione con Nautilus, partendo da un menù di servizio per caricare le foto selezionate direttamente su Flickr, e finendo con l’integrazione di un filesystem basato su FUSE con le API di Flickr e con Nautilus.Ed è proprio di quest’ultimo che vorrei parlarvi in questo post. Il software si chiama Flickrfs, è disponibile nei repository di Ubuntu Intrepid e consente di sfogliare il contenuto del proprio account Flickr come se fosse una cartella in Nautilus, quasi un FTP. Vediamo come installarlo.
Prima di tutto, faccio notare che non sono ancora riuscito a far caricare dei video a FlickrFS, ma solo fotografie. Se non avete un account PRO, è esattamente ciò che fa per voi
Passo 1. Installiamo il pacchetto “flickrfs” da Synaptic o da linea di comando:
sudo apt-get install flickrfs
Passo 2. Assicuriamoci che FUSE sia incluso tra i moduli del kernel (e ciò dovrebbe essere vero di default nel 99% dei casi):
lsmod | grep -i fuse
Se tutto è ok, dovrebbe essere visualizzata una linea del genere:
fuse 52892 3
Passo 3. Creiamo una cartella (dove più ci piace) in cui verranno “ospitate” le nostre cartelle di Flickr; io l’ho montata in /media, come qualsiasi altra penna USB o hard disk esterno:
sudo mkdir /media/flickrfs
Passo 4. Ordiniamo a Flickrfs di “montarsi” all’interno della cartella appena creata:
sudo flickrfs /media/flickrfs
Appena il programma avrà terminato di aggiornare i nostri set, potremo aprire Nautilus con privilegi di amministratore e accedere alla nostra cartella:
sudo nautilus /media/flickrfs
Ed ecco le nostre cartelle. Potremo importare/esportare foto come se fossimo in una nostra normalissima cartella di sistema, con il drag&drop, con il copia/incolla, ecc ecc.
È utile comunque crearsi uno collegamento sul desktop o aggiungere l’indirizzo nei preferiti per aprire direttamente la cartella flickrfs.
Uno dei problemi più interessanti in cui mi sono imbattuto dopo l’installazione di Ubuntu 8.10 “Intrepid Ibex” su Asus 901 è stato sicuramente quello relativo a Network Manager.In realtà, ho sempre usato Wicd, perchè è più veloce nel connettere, più intuitivo da gestire, perchè è sviluppato in Python ed è più leggero di Network Manager, senza parlare del fatto che si installa tranquillamente con un unico pacchetto valido per tutte le architetture, mentre NM è strutturato in 2 pacchetti più un paio di dipendenze.
Unico problema: Wicd non è in grado di gestire la connessione alla rete wireless degli studenti all’Università di Bari, motivo per cui sono stato costretto a tornare a Network Manager, che nelle ultime due versioni di Ubuntu devo ammettere è decisamente migliorato.
Ma, sopresa: all’avvio di Ubuntu 8.10 sul mio Asus 901, l’applet di Network Manager non si avvia in automatico, anzi a dir la verità non si avvia proprio, restituendomi un simpatico errore da terminale a proposito di una connessione mancante.
Girando un pò per la rete, scopro che il bug è già stato segnalato e che è in attesa d’essere risolto. Nel frattempo, sono state elaborate due soluzioni artigianali, che dovrebbero funzionare distintamente l’una dall’altra, ma che in realtà ho applicato contemporaneamente. Se avete lo stesso mio problema, provateci.
La prima cosa da fare, è installare sul proprio sistema i pacchetti aggiornati da SVN di NetworkManager, disponibili nel seguente repository su Launchpad, aggiungetelo al vostro source.list:
deb http://ppa.launchpad.net/network-manager/ubuntu intrepid main
Dopo aver dato un belsudo apt-get updatesudo apt-get upgrade
avrete aggiornato i pacchetti.Adesso, dobbiamo commentare le seguenti righe (ammesso che le abbiate) nel file /etc/network/interfaces:
sudo nano /etc/network/interfaces #auto eth0#iface eth0 inet manual
#auto eth0#iface eth0 inet manual
Salvate e chiudete il file. Ora, dopo un bel riavvio del sistema, provate a dare
sudo killall NetworkManagersudo killall nm-appletNetworkManagernm-applet
Quindi, dovreste assistere al magico avvio dell’applet di NetworkManager nella vostra traybar, e connettervi senza troppi problemi.
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:
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!