Abilitare il DUN all’avvio su N900 – seconda parte

(Nota: questa è una traduzione dell’articolo originale di Philip Langdale che potete trovare qui)

Come menzionato in un aggiornamento al post precedente c’è stata una segnalazione circa il DUN che non parte automaticamente in modo affidabile, seppure. Ulteriori indagini hanno portato al risultato che la causa è da ricercare nel socket /var/run/sdp creati da bluetoothd e richiesto da sdptool che non è presente quando bluetooth-dun viene avviato.

Lo script è stato ora aggiornato per attendere fino a quando il socket viene creato, prima di continuare (e visto che Upstart è asincrono, solo il servizio DUN viene ritardato).

Ora, il meccanismo usato è un ciclo ‘while-not-exist’ nudo e crudo con un’attesa di un secondo. Questo approccio è usato anche dallo script dbus, quindi si può dire che sia “moralmente accettabile”; di sicuro un approccio inotifywait sarebbe più appropriato ma questa utility non è installata di default. Infine, il ritardo dovrebbe essere comunque inserito nello script bluetoothd in modo che questo non segnali di essere a pronto fino a quando non lo sia davvero

Abilitare il DUN all’avvio su N900

(Nota: questa è una traduzione dell’articolo originale di Philip Langdale che potete trovare qui)

Una delle cose che non è abilitata nativamente su N900 è il DUN (Dial-Up Networking) tramite Bluetooth. Il DUN è uno dei modi più semplici per far connettere un computer tramite un telefono, quindi è una funzione comoda da avere (l’N900 supporta il DUN tramite USB come default). Fortunatamente il DUN tramite Bluetooth è molto facile da attivare, come documentato sul wiki di maemo. Comunque, se si vuole avere la funzione sempre disponibile (cioè dopo aver avviato il telefono) sarà necessario fare qualcosina in più.

Come le ultime versioni di Ubuntu, l’N900 con Maemo 5 usa Upstart per controllare la gran parte dei servizi d’avvio, tra cui il bluetooth. Quindi, se vogliamo che il servizio DUN sia ben coordinato, dovremo sfruttare upstart. Ecco lo script:

description "DUN over Bluetooth"
author "Philip Langdale"

respawn
console none

start on started bluetoothd
stop on stopping bluetoothd

pre-start script
sdptool add --channel 1 DUN
end script

exec rfcomm -S --listen -1 1 /usr/bin/pnatd '{}' 

post-stop script
sdptool del `sdptool browse local | grep Dial-Up -A 1 -m 1 | tail -n 1 | cut -d ' ' -f 3`
sleep 1
end script

Quindi, cosa succede esattamente? Visto che Upstart è piuttosto nuovo, e abbastanza diverso dagli init-script “vecchio stile”, vale la pena spiegare un attimo il codice.

I campi description e author servono solo per documentazione. respawn serve a riavviare il processo in caso di terminazione, mentre console none disabilita il log.

Le direttive start on e stop on sono il cuore di Upstart, e consentono di esprimere dipendenze tra servizi ed eventi. In questo caso vogliamo avviare il server DUN dopo che bluetoothd sia avviato e terminarlo dopo che bluetoothd si arresta. È possibile esprimere più condizioni di start e stop come documentato dal sito di Upstart.

Spiegate le prime righe possiamo tuffarci nel codice effettivo dello script. Dalla pagina wiki possiamo vedere che la chiamata chiave è l’invocazione di rfcomm. Quello che succede qui è che rfcomm resterà in attesa di richieste di connessione sul canale 1, e successivamente avvierà pnatd e lo connetterà a quel canale. Quando la connessione è completata, pnatd terminerà seguito a ruota da rfcomm. Upstart può tenere traccia sia di particolari script che di particolari eseguibili; in qualunque caso, chiama una exec sull’eseguibile o sullo script e tiene d’occhio il processo risultante per capire quando questo termina. Quindi, possiamo tranquillamente trasferire la riga di comando relativa a rfcomm ad una direttiva exec di Upstart.

Comunque, c’è qualcos’altro da fare. Dobbiamo registrare il servizio con sdpd in modo che il client siano a conoscienza che stiamo offrendo il DUN, e dovremo poi deregistrarlo quando il servizio terminerà. Questo obiettivo può essere raggiunto con i blocchi pre-start e post-stop. Inoltre tramite queste direttive possiamo anche forzare il ritardo di un secondo suggerito dallo script di esempio.

Registrare il servizio è facile, ma purtroppo deregistrarlo non lo è altrettanto. Lo script di esempio può evitare la deregistrazione poichè usa un ciclo while, ma per Upstart l’intero servizio è “all’interno” del ciclo, quindi dobbiamo deregistrarlo per evitare una registrazione extra del servizio ogni volta. Il problema si presenta poiché è possibile deregistrare tramite l’ID del servizio il quale viene scelto al momento della registrazione ma non ci viene notificato. L’unica soluzione quindi è quella di ricercarlo tramite il comando sdptool che elenca i servizi bluetooth e dal risultato estrarre l’ID del servizio relativo al DUN.

Tutto quello che resta da fare e mettere lo script in /etc/event.d/ ed eseguire start bluetooth-dun, assumendo che abbiate lo script “bluetooth-dun”. Ovviamente dovete essere root per entrambi questi passi.

Potete scaricare lo script da qui. Probabilmente verrà rilasciato un pacchetto deb in futuro.

Enjoy!

Edit: Sembra che lo script non sia ancora perfetto. C’è stata una segnalazione, poi verificata, che l’esecuzione fallisce all’avvio del telefono anche se non ci sono problemi se si ferma e riavvia bluetoothd. Il sospetto è che ci sia qualche dipendenza addizionale (forse il modulo del kernel rfcomm) da trattare. Ci saranno ulteriori indagini.

Dell: alimentatori insufficienti per i7?

Argomento a me particolarmente caro, visto che ho ordinato un Dell XPS 16 con processore Core i7. A quanto pare, gli alimentatori forniti dalla stessa Dell, dalla potenza di 90W, sarebbero insufficienti a tenere al massimo le prestazioni dei portatili. Il problema infatti è stato sia riportato dal forum di NotebookReview che, notizia di oggi, da NotebookItalia che però parla di problemi con la serie Alienware (sempre di Dell, e sempre con Core i7). C’è già chi parla di sostituzioni gratuite di alimentatori con altri più performanti (basti pensare che le altre marche che distribuiscono portatili con Core i7 associano alimentatori da 120W). Staremo a vedere; per quanto mi riguarda pare che dovrò attendere fino al 22/01/2010…

Edit: A quanto pare, sempre su NotebookReview è stata esposta una prova quasi schiacciante. Nel post si può vedere chiaramente la differenza di moltiplicatore (e quindi di frequenza) relativa a tre configurazioni: alimentatore da 90W, alimentatore da 130W e batteria. Particolarmente significativa è la differenza tra i due alimentatori (più di 500MHz di differenza, e un moltiplicatore di 9x contro 13x). Cosa farà ora Dell? Sarà disposta a sostituire gli alimentatori da 90W con altri da 130W?

Nokia N900: esperienza dei primi giorni

Vediamo oggi, come già anticipato, di iniziare a rendere un servizio utile a quelle due o tre anime perdute che seguono questo blog (tanto vi conosco, per nome e cognome, non scappate!). Di recente, come frutto della tanto agognata laurea, sono venuto in possesso del nuovo tablet (anche se la reale denominazione dovrebbe essere Mobile Computer, ossia vero e proprio computer portatile) di casa Nokia: Nokia N900. Innanzitutto una precisazione, ho letto in giro (anche sbandierato con un certo clamore) che questo è il primo terminale di casa Nokia con il sistema operativo Maemo. Niente di più falso: il progetto Maemo nasce nel novembre del 2005 quando la casa finlandese decide di immettere sul mercato il Nokia 770, un tablet touchscreen senza modulo telefonico e con connettività wireless 802.11 (caratteristica che accompagnerà la serie fino al predecessore dell’N900, ossia il Nokia 810); questa equipaggiata sul nuovo nato di casa Nokia è dunque la quinta iterazione del progetto. Ci troviamo dunque davanti ad un sistema da una parte rodato, anche perché basato su Linux Debian (progetto a sua volta decisamente di primo piano nel panorama informatico attuale, da cui deriva anche Ubuntu), ma che ha anche subito qualche notevole evoluzione dal suo predecessore. Prima fra tutte la presenza del modulo telefonico: per la prima volta quindi, un dispositivo della serie Maemo “sa anche telefonare”. Dico così perché, per quanto funzioni discretamente la parte strettamente telefonica del dispositivo che riguarda telefonate e SMS, questa manca del supporto MMS (di cui onestamente riesco tranquillamente a fare a meno, ma che ormai è considerata alla base di qualsiasi dispositivo di telefonia mobile, tanto che perfino l’iPhone ha implementato tale funzionalità) ed alle videochiamate. Particolare e comoda è invece la gestione degli SMS: sul telefono è infatti possibile configurare anche account di messaggistica istantanea (supporto nativo a Skype, Google Talk e Ovi Chat; altri plugin consentono di aggiungere varie reti tra cui MSN) che verranno sfruttati dall’applicazione Conversazioni, deputata anche alla gestione degli SMS. Supponendo quindi di avere un contatto di cui abbiamo ricevuto sia SMS che messaggi tramite uno degli account configurati li ritroveremo tutti nella stessa finestra, sotto lo stesso nome.

Il fatto di trovarsi di fronte ad un sistema Linux lascia buone speranze per i “pezzi mancanti”: chi ha seguito la scena “underground” dell’iPhone sa bene che qualche mese dopo la prima versione del telefonino Apple (che non venne neppure commercializzata in Italia) comparirono alcuni programmi proprio per l’invio e la ricezione degli MMS, lasciando intendere così che la mancanza era (ed è anche nel caso dell’N900) puramente software; ci si aspetta dunque che la comunità di sviluppatori riesca in tempi ragionevoli ad ovviare a tale mancanza, sempre se Nokia stessa non decide di porvi rimedio essa stessa tramite aggiornamenti ufficiali. Aggiornamenti che, altra perculiarità di questo Nokia, avvengono “Over the air”: ossia proprio come scarichereste da internet un nuovo kernel della vostra distribuzione Linux preferita, anche il Nokia, tramite il suo Gestore Applicazioni (un frontend grafico ad apt-get) riesce ad aggiornare la componente di sistema del software. Tralasciando le altre caratteristiche hardware, reperibili più o meno ovunque in rete, veniamo alla reale impressione di utilizzo (ahimè limitata a solo 7 giorni, di seguito le motivazioni) per me che provenivo da un tutto sommato felice periodo al possesso di un iPhone. Innanzitutto, prima grande evoluzione: il multitasking. Si, lo so, è sbandierato un po’ dappertutto, ma davvero merita una menzione: finalmente si possono eseguire più operazioni in contemporanea (e chi ha avuto un iPhone sa quanto frustrante può essere ricevere una telefonata “sul più bello” che costringe a interrompere e ricominciare da capo qualsiasi operazione) e lo si può fare anche molto bene. Lasciare a caricare due pagine internet tramite il browser integrato (basato su Firefox, con tanto di estensioni installabili) mentre si controlla la posta o si guarda uno spezzone di un video è davvero comodo nonché ottimamente gestito dal sistema. Un’altra profonda differenza rispetto al “melafonino” è rappresentata dai diversi metodi di input: per il “melafonino” abbiamo un touch screen multitouch capacitivo, per l’N900 abbiamo invece un touch screen resistivo, non multitouch ma comunque molto preciso più una tastiera fisica QWERTY e pennino. L’utilizzo è, in effetti, molto differente: a parte il multitouch (che personalmente ho usato solo qualche volta per lo zoom ritenendo più pratico il doppio tap, oppure in qualche gioco), l’N900 è focalizzato su un uso “orizzontale” (landscape) che necessita per forza di cosa entrambe le mani; solo l’applicazione che gestisce il telefono offre la scelta di un utilizzo “verticale” (portrait); si vocifera di futuri aggiornamenti che estenderanno l’utilizzo verticale ad altre applicazioni, fra tutte il browser, ma per ora niente di ufficiale. Altra menzione va, appunto, al browser: anche qui la differenza c’è eccome: si chiama Flash. Infatti, a differenza dell’iPhone, N900 esegue correttamente qualsiasi filmato o applicazione Flash (il plugin fornito è nella versione 9.4, con la versione 10.1 già annunciata ed in via di sviluppo) come, ad esempio, Youtube. Dal punto di vista “etico” mi ha fatto molto piacere il non avere più bisogno di versioni “apposite” dei vari siti scritte apposta per iPhone: un concetto che, almeno a me, comunica una certa inadeguatezza del terminale in questione ad alcuni scenari di browsing. Per quanto riguarda le altre applicazioni, si è già accennato al Gestore Applicazioni che funge da frontend per apt-get: chi ha già familiarità con Debian e/o Ubuntu sa dunque che il tutto viene gestito tramite pacchetti autoinstallanti raccolti in “sources”. Ad affiancare questo sistema ci sarà in futuro Maemo Select, nient’altro che l’AppStore per l’N900. Le applicazioni disponibili al momento non sono molte, ma considerando che il telefono è sul mercato da un paio di settimane la tendenza appare normale; c’è solo da sperare che la comunità Maemo, sempre molto attiva, riesca a prendere presto familiarità con il nuovo terminale.

Dicevo che ho avuto soli 7 giorni per provare l’N900: purtroppo, a causa di uno strano difetto con gli auricolari, ho dovuto restituirlo a Nokia che ha già provveduto a mandarmene uno nuovo in sostituzione (mentre vi scrivo si dovrebbe trovare più o meno in Germania, spero arrivi per lunedì). Queste le impressioni che ho ricavato in questo breve periodo: se avete commenti o richieste non esitate a lasciare un commento!

…Ancora?!?

Eh si, ancora. Ci riproviamo: nuova veste, si spera anche nuovi temi. Basta parlare di me: già vivo con me stesso 24 ore su 24, parlarne anche mi sembra davvero troppo. Proverò invece ad essere anche minimamente utile, parlando di tutto un po’, sperando di riuscirci. Fino a quando non mi stufo nuovo, of course.

26 giorni dopo

Certo, non andrò al cinema per soli due giorni, ma comunque di cose ne ho vissute parecchie anch’io di questi tempi. Ho macinato chilometri, cambiato case, incontrato gente che non vedevo da tempo (fino a dieci anni, addirittura, eh cugina? :) ) e dormito quanto ho potuto. Ora, grazie a degli amici che mi fanno sentire più a casa di quanto mi senta a casa mia, da Grottammare ripartirà (credo) la costruzione della mia vita. Ma rispettando rigorosamente le normative antisismiche.

Ciao, amico mio

Non potevo non fare, non dire qualcosa per te. Non sono potuto esser li, venerdì scorso, perché sono scappato in Sicilia per portare in salvo la mia famiglia; scappato in modo comunque quasi codardo, colpevole di aver lasciato la mia città e miei amici nel momento del bisogno. Tento di porre riparo ora, anche se riparo a ciò che mi e ci aspetta non c’è. Inutile sottolineare quanto speciale tu fossi: sarebbe solo un inutile spreco di parole e pensieri, presi in gran parte in prestito a frasari di consueto abuso in circostanze come queste. So che, nella tua bontà e nel tuo altruismo, continuerai a vegliare su tutti noi che ti abbiamo amato, ti amiamo e ti ameremo tanto. Sapere che resterai unito per sempre al tuo amore, anche lei strappata da questo mondo di sofferenze, un po’ mi consola; dopotutto il nostro dolore non è altro che la consapevolezza di non poter più godere delle tue battute, delle tue risate, del tuo animo solare. Pur se negli ultimi tempi le occasioni per stare insieme si erano ridotte sempre più, sappi che il vuoto che lasci in me è enorme, e continuerà ad allargarsi sempre più ogni secondo che passa. Ma sarà il tuo ricordo a darci la forza di andare avanti, nell’attesa di ricongiungerci tutti alla fine, magari per quell’ultima partita di calcetto che giocheremo in cielo.

Ciao, Francesco.

…E ora?

Chi mi conosce, sa di me una cosa sopra tutte: sono un insicuro. Ho bisogno che la mia vita poggi su basi solide e abitudinarie: basi pensare che ho pranzato per settimane con lo stesso pasto senza sentire neanche l’esigenza di cambiare. Bene, in quella ormai famosa notte del 6 aprile scorso (ma guardatemi, ne parli come se fosse già passata uma vita e mezza…) posso dire di aver visto crollare quelle fragili fondamenta che sostenevano la mia vita. Certo, sto bene e tutti lo stiamo in famiglia. Però ora, quando la “vacanza” inizia a volgere al termine, inizio ad avvertire ciò che sarà il futuro: un eterno, enorme, infinito dubbio. Dove andare? Dove completare gli studi? Dove continuare la mia vita? Avrò una vita da continuare? Se qualcuno avesse una o più risposte alle sopracitate domande, è pregato di segnalarle. Si ringrazia per la cortese collaborazione.

La magia è ancora in piedi

Come si fa a capire che, dopo una tale devastazione, è ancora possibile fare qualcosa per tornare a vivere? Per quanto mi riguarda, mi affido alla magia. Gli ingredienti, questa volta, sono i seguenti (in ordine sparso):

- Notte;
- Un’automobile da condurre, senza passeggeri;
- Il brano “Frail” di The Gathering, dall’album “How To Measure A Planet?“;
- La Strada Statale 194, nel tratto iniziale tra Modica e Marina di Modica.

Non credevo che dopo quei crolli e quelle vite spezzate qualcosa potesse essere anche lontanamente somigliante a prima. Invece, durante quei cinque minuti e quattro secondi, non c’era in me e intorno a me alcuna traccia di ciò che era successo. Persino le lucine erano al loro posto, all’orizzonte.

Mamma che freddo…

Solo io lo sento?