Primo piano:

Il prisma che mette d'accordo web e desktop - Lo scorso inverno, grazie alle miti temperature della Mozilla Foundation, è sbocciato Prism, un nuovo germoglio di Firefox 3 da servire condito di applicazioni web di ultima generazione, per stupire i commensali, soddisfare i palati più raffinati e mettere a dieta tutti i browser dai 10 tab in su.

Mappa dell'articolo (i link saranno disponibili con la pubblicazione dei post corrispondenti):
cosa è e a cosa serve Prism
installare Prism su Windows, OSX e Linux
utilizzare Prism
• opzioni avanzate e plugin

In evidenza:

Condivisione Internet di Windows Mobile via USB con Ubuntu

Dall'aggiornamento AKU3 (Adaptation Kit Upgrade) di Windows Mobile 5 Microsoft ha cambiato il modo in cui è possibile utilizzare lo smartphone per collegare a internet il notebook. Al posto del vecchio Modem, per il quale era necessario creare una connessione remota utilizzando il fake number *99#, ora c'è Condivisione Internet, un programma che trasforma lo smartphone in un mini-router. Il vantaggio è che la connessione alla rete cellulare è interamente gestita dallo smartphone, e quindi non c'è più bisogno di aggiungere stringhe di configurazione complesse, ma basta che lo smartphone possa navigare, per utilizzarlo come interfaccia di rete anche per il notebook.

[per continuare a leggere clicca sul titolo dell'articolo]

Per il collegamento via USB fra smartphone e notebook c'è bisogno di un driver speciale. Per chi usa Windows XP o Vista, basta installare ActiveSync per installare anche tutti i driver che servono, ma per gli altri sistemi operativi il collegamento è più problematico. Fortuna che Condivisione Internet può utilizzare il Bluetooth, creando una normale PAN (Personal Area Network), ovvero una rete su Bluetooth, che può essere facilmente utilizzata anche da Linux e OSX. Ci sono però almeno due problemi.

Il primo problema è che una connessione HSDPA, con una velocità di download di 3,6 Mbps può facilmente saturare la portata massima anche di un collegamento Bluetooth 2.0 con EDR (Enhanced Data Rate) e soprattutto produce un ritardo percepibile nella risposta della rete. Un altro problema è che mentre su OS X creare una PAN con lo smartphone è molto semplice, su Linux è necessario creare una nuova interfaccia di rete e utilizzare il comando pand da terminale tutte le volte che vogliamo effettuare il collegamento. Il risultato è tutt'altro che entusiasmante, non solo perché per installare la PAN è necessario seguire una procedura un po' complessa, ma anche perché la connessione non è stabile e se qualcosa non funziona è facile mandare in crisi tutti i servizi di rete.

Su Linux il Bluetooth però non è l'unica strada, infatti, grazie a SynCE possiamo collegare lo smartphone al notebook attraverso il cavo USB, sia per la sincronizzazione sia per la condivisione internet. Una vera pacchia, anche perché con Ubuntu 7.10 Gutsy Gibbon è veramente semplice. È probabile che la procedura che segue, e che ho sperimentato sul mio notebook funzioni anche con altre distribuzioni basate su kernel diversi. Almeno per il momento non è il caso di fare troppo affidamento sulle guide all'installazione presenti sul sito ufficiale, perché ci sono troppi errori e tra l'altro consigliano di ricompilare il kernel quando non ce ne è bisogno. Ecco invece i passi da seguire.

Per chi non ha mai compilato un modulo del kernel la prima cosa da fare è installare gli header che servono anche per compilare, fra l'altro, i driver proprietari della scheda grafica. Per scaricare e installare gli header basta aprire il terminale e copiare la riga seguente (per incollare sul terminale premere come al solito Ctrl+Maiusc+v):

sudo apt-get install linux-headers-generic

che richiederà l'inserimento della password di amministrazione e naturalmente scaricherà i pacchetti necessari da internet. Nel caso gli header siano già installati non verrà modificato niente, se invece apt-get richiedesse nei passi successivi qualche pacchetto mancante, basterà seguirne le indicazioni per aggiungere i pacchetti, sempre con sudo apt-get install. Un comando che dovrebbe risolvere la maggior parte delle dipendenze è:

sudo apt-get install libglib2.0-dev libusb-dev build-essential autoconf automake1.9 libtool libgnet-dev libhal-dev libhal-storage-dev libdbus-glib-1-dev python-sip4-dev python-pyrex python-dev

Per cominciare l'installazione vera e propria scarichiamo downloads.sourceforge.net/synce/synce-usb-rndis-lite-0.10.0.tar.gz , da scompattare in una cartella collocata nella stessa posizione con il comando:

tar zxf synce-usb-rndis-lite-0.10.0.tar.gz


Con cd entriamo nella cartella estratta:

cd synce-usb-rndis-lite-0.10.0/


Quindi, visto che probabilmente Subversion non è installato e dobbiamo utilizzarlo per scaricare il sorgente del driver rndis, installiamolo con il comando

sudo apt-get install subversion


Quando l'installazione è completata, inseriamo il comando

svn co https://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite


Quindi spostiamoci nella cartella usb-rndis-lite con

cd usb-rndis-lite/


Ora siamo pronti per compilare il modulo/driver, utilizzando i seguenti comandi uno dopo l'altro:

make
sudo ./clean.sh
sudo make install

Colleghiamo lo smartphone a Ubuntu via USB, avviamo Condivisione internet, controlliamo che la connessione selezionata sia USB e clicchiamo su Connetti (lo smartphone deve avere un APN già configurato, ma se lo utilizzate già per navigare con Internet Explorer Mobile significa che è già a posto)



Quando il collegamento è avvenuto, lo smartphone visualizza la dicitura Connesso.



Nell'applet di gestione della rete collocata nel tray appare una nuova interfaccia. Basta selezionarla per acquisire l'indirizzo fornito direttamente dallo smartphone e cominciare a navigare.



Il progetto SynCE che ha prodotto il modulo/driver che abbiamo utilizzato nei passi precedenti e si occupa anche di altri software per interfacciare Linux e Windows Mobile ha raggiunto molti dei suoi obiettivi e sicuramente sarà oggetto di uno dei prossimi post sulla sincronizzazione, ma è chiaro che c'è ancora un po' di strada da fare, soprattutto per semplificare l'installazione. Per chi ha tempo e voglia per dedicarsi a questo ottimo progetto, oppure vuole contribuire con una donazione, basta accedere alla home page www.synce.org/index.php/SynCE-Wiki.

Peso aggiuntivo dopo la cura: -15grammi per la chiavetta bluetooth

AddThis Social Bookmark Button

16 commenti:

Anonimo ha detto...

Io sto cercando di fare quello che descrivi qui da un paio di mesi, e tuttora non sono riuscito.

HO mandriva 2008, vedo da dmesg che quando inserisco il palamre (ho un Tytn con WM6) rndis viene attivato, ma la condiviosne internet rimane su "verfica connessione cavo".

Hai voglia di darmi una mano?
grazie in anticipo.

gian luca ha detto...

Se ti dice "Verifica connessione cavo" è la stessa cosa che succedeva a me prima di Gutsy Gibbon. Credo che il problema alla fine sia stato risolto dal nuovo kernel di Ubuntu, che è come al solito pesantemente patchato. Hai provato a seguire questa guida?

gian luca ha detto...

C'è anche la variabile Windows Mobile 6! Nelle prossime settimane dovrebbe arrivarmi uno smartphone WM6 e potrei verificare se il problema è lì. Non ho trovato informazioni in giro, dovrebbe essere uguale, ma non sono sicuro.

Anonimo ha detto...

col kernel precedente lo avevo fatto, purtroppo senza risultato.
Col kernel attuale ho ancora un problema nel compilarlo (sorgenti spezzati in due...) entro oggi dovrei riuscire, magari è solo quello.

Comunque quando inserisco l'usb il palamare viene riconosciuto (a seconda che sia spuntata o no la funzionalità di rete avanzata lo riconoosce in modo diverso) e appena do il "connetti" interviene il driver RNdis, solo con errore (ti posto i vari dmesg delle situazioni diverse?)

A proposito, continuo a chiedere qui "in pubblico", ti passo contatto per chat o mi iscrivo qui?

Grazie della risposta e buone feste.

gian luca ha detto...

Posta pure qui, se ti va, così se c'è qualcuno che usa Mandriva e WM6 e ha risolto il problema, magari interviene.

Dunque, io ho disabilitato la modalità avanzata (Start/Impostazioni/Connessione/USB a PC sullo smartphone - per chi si sta chiedendo cosa sia) da un bel po', perché faceva casino anche con Vista. Se vuoi postare i dmesg va benissimo. Nel mio caso, a connessione avvenuta:

[ 9558.668000] rndis0: register 'rndis_host' at usb-0000:00:1d.0-1, RNDIS device, 80:00:60:0f:e8:00
[ 9558.668000] usbcore: registered new interface driver rndis_host
[ 9575.504000] rndis0: no IPv6 routers present

Mi puoi dire anche che kernel hai (uname -a)?

Anonimo ha detto...

allora, iniziamo con la sagra dei dmssg.

caso 1)
sincronizzazione automatica : DISABILITATO
Funzionalità rete avanzata : DISABILITATO

dmesg :

usb 3-1: new full speed USB device using uhci_hcd and address 2
usb 3-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5
ipaq 3-1:1.0: PocketPC PDA converter detected
usb 3-1: PocketPC PDA converter now attached to ttyUSB0
usbcore: registered new interface driver ipaq

caso 2)
sincronizzazione automatica : DISABILITATO
Funzionalità rete avanzata : ABILITATO

usb 1-2: new full speed USB device using uhci_hcd and address 3
usb 1-2: configuration #1 chosen from 1 choice
BUG: unable to handle kernel NULL pointer dereference at virtual address 000000ca
printing eip:
f8d69533
*pde = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: iptable_filter ip_tables x_tables ipaq usbserial nls_iso8859_1 nls_cp437 vmnet(P) parport_pc parport vmblock(P) vmmon(P) nls_utf8 udf michael_mic ieee80211_crypt_tkip arc4 ecb blkcipher ieee80211_crypt_wep ipw3945 appletalk ipx p8022 psnap llc p8023 i915 drm usblp ppp_async ppp_generic slhc crc_ccitt rndis_host cdc_ether usbnet af_packet ipv6 snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss video thermal sbs fan container button dock battery ac ide_cd binfmt_misc loop nls_cp850 vfat fat nls_iso8859_15 ntfs dm_mod piix usb_storage ide_core cpufreq_ondemand cpufreq_conservative cpufreq_powersave speedstep_centrino freq_table processor nvram 8139cp mmc_block joydev snd_hda_intel sdhci tsdev evdev 8139too i2c_i801 mii i2c_core ohci1394 ieee1394 intel_agp ehci_hcd snd_pcm snd_timer mmc_core agpgart uhci_hcd snd_page_alloc usbcore snd_hwdep snd soundcore iTCO_wdt iTCO_vendor_support ieee80211 ieee80211_crypt sg sr_mod ext3 jbd scsi_wait_scan sd_mod ata_piix ahci libata scsi_mod
CPU: 0
EIP: 0060:[f8d69533] Tainted: P VLI
EFLAGS: 00010246 (2.6.22.9-laptop-1mdv #1)
EIP is at rndis_bind+0x63/0x2d0 [rndis_host]
eax: 00000000 ebx: 00000000 ecx: cd2b9c20 edx: 00000001
esi: f418c800 edi: cd2b9806 ebp: f4a51c28 esp: f4a51be8
ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
Process khubd (pid: 1993, ti=f4a50000 task=c1912000 task.ti=f4a50000)
Stack: c037e1a7 f4a51c00 c016bbe8 00000164 c037e1a1 cd2b9c20 ca29e000 c02aafce
00000000 cd2b9800 c02ba090 ca29e000 f8d69b23 cd2b9c20 f8d39e05 cd2b9806
f4a51c9c f8d3916b f4a51c40 c01c75f3 f47ec520 00000000 f4a51c64 c01c769a
Call Trace:
[-c010529a-] show_trace_log_lvl+0x1a/0x30
[-c010535b-] show_stack_log_lvl+0xab/0xd0
[-c0105551-] show_registers+0x1d1/0x2d0
[-c0105768-] die+0x118/0x240
[-c0121399-] do_page_fault+0x199/0x630
[-c03139ba-] error_code+0x72/0x78
[-f8d3916b-] usbnet_probe+0x20b/0x5d0 [usbnet]
[-f893dea3-] usb_probe_interface+0x93/0xe0 [usbcore]
[-c0268dd4-] driver_probe_device+0x84/0x190
[-c0268ee8-] __device_attach+0x8/0x10
[-c0268077-] bus_for_each_drv+0x47/0x70
[-c0268fa6-] device_attach+0x86/0x90
[-c0267ff5-] bus_attach_device+0x45/0x80
[-c0266cd9-] device_add+0x479/0x550
[-f893c028-] usb_set_configuration+0x468/0x500 [usbcore]
[-f8943e93-] generic_probe+0x163/0x230 [usbcore]
[-f893db86-] usb_probe_device+0x36/0x40 [usbcore]
[-c0268dd4-] driver_probe_device+0x84/0x190
[-c0268ee8-] __device_attach+0x8/0x10
[-c0268077-] bus_for_each_drv+0x47/0x70
[-c0268fa6-] device_attach+0x86/0x90
[-c0267ff5-] bus_attach_device+0x45/0x80
[-c0266cd9-] device_add+0x479/0x550
[-f89372e2-] usb_new_device+0x92/0x110 [usbcore]
[-f8937ebd-] hub_thread+0x6cd/0xbe0 [usbcore]
[-c013f392-] kthread+0x42/0x70
[-c0104e6b-] kernel_thread_helper+0x7/0x1c
=======================
Code: e8 63 cc ff ff 85 c0 89 45 e0 0f 88 90 01 00 00 c7 06 02 00 00 00 c7 46 04 18 00 00 00 c7 46 0c 01 00 00 00 c7 46 10 00 00 00 00 -0f- b7 83 ca 00 00 00 83 c0 2c 66 89 83 ca 00 00 00 8b 55 d4 0f
EIP: [f8d69533] rndis_bind+0x63/0x2d0 [rndis_host] SS:ESP 0068:f4a51be8

vedi? sembra esserci un errore nel driver...
il kernel attuale è questo
2.6.22.9-laptop-1mdv
e purtroppo ha qualche problema di compilazione (Credo abbiano splittato in 2 il kerne, al momento ho difficoltà a fare il make e patchare , come ti dicevo nel precedente messaggio.)

Anonimo ha detto...

dopo aver lanciato
synce-serial-config /dev/ttyUSB
e
synce-serial-start
ecco il dmesg

usb 2-1: new full speed USB device using uhci_hcd and address 3
usb 2-1: configuration #1 chosen from 1 choice
ipaq 2-1:1.0: PocketPC PDA converter detected
usb 2-1: PocketPC PDA converter now attached to ttyUSB0

Poi, provando a connettere da condivisione internet, ecco cosa succede :


usb 2-1: new full speed USB device using uhci_hcd and address 4
usb 2-1: configuration #1 chosen from 1 choice
usb 2-1: bad CDC descriptors

gian luca ha detto...

La connessione avanzata riguarda ActiveSync e la sincronizzazione, non la condivisione internet, quindi dovrebbe andare comunque appena lo colleghi. Su Linux la cosa è più chiara che su Windows perché appare la nuova interfaccia di rete (non solo nei messaggi diagnostici di dmesg). Se non riesci ad arrivare a questo punto dopo aver patchato il kernel, il problema dovrebbe essere il driver. Non c'è bisogno di inviare comandi, perché Linux deve caricare il modulo e deve funzionare subito appena colleghi lo smartphone via USB.

Premetto che visto che non sono uno sviluppatore, ho un approccio al problema da "scatola nera", e ci sono tre variabili da considerare prima di concludere che il problema è SynCE, ovvero il kernel (Ubuntu/Mandriva), il terminale (P3600/TyTN) e la versione di Windows Mobile (5/6). A naso direi che il problema è il kernel, però potrei sbagliarmi. Se riesco installo Mandriva e ci togliamo il dubbio.

gian luca ha detto...

Il TyTN rientra nella lista di compatibilità hardware di SynCE ( HCL ). Se non sei riuscito a compilare il kernel a questo punto direi che il problema è proprio lì. Con Ubuntu 7.10 non ce n'è bisogno, ma anche per Mandriva sono sicuro che è solo questione di tempo.

Anonimo ha detto...

'ultima cosa che mancava era fare questa patch al kernel :
http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
ora la ho fatta, nulla è cambiato.

il mio kernel come forse ricordi al momento è :
2.6.22.9-laptop-1mdv

idee?

gian luca ha detto...

No, mi dispiace. A parte il fatto che dai dmesg si capisce che qualcosa non va per il verso giusto, non so cosa sia che impedisce il collegamento. Poca documentazione sia per il kernel di Mandriva sia per SynCe. Su Ubuntu funziona e continua a funzionare senza problemi, ma non so proprio cosa aggiungere. Non voglio essere sbrigativo, ma ho scelto questa distribuzione proprio perché mi ha risolto questo e altri problemi senza le complicazioni di SuSE, RedHat e Mandrake (che ho usato tutte negli ultimi anni, prima di installare Feisty Fawn lo scorso agosto). C'è poco da fare quando dietro c'è Debian e i bug vengono seguiti come sul forum di Ubuntu, le cose in genere si risolvono più velocemente.

Comunque sono convinto che fra qualche mese si sistemerà anche il kernel di Mandriva, oppure le patch necessarie entreranno a far parte del kernel ufficiale così ci saranno meno problemi per tutti. Se trovo qualcosa in giro lo posto, e naturalmente quando mi arriva il terminale WM6 faccio un'altra prova (magari è solo colpa del driver e il kernel non c'entra niente), ma passerà ancora qualche settimana.

gian luca ha detto...

Ho trovato un programma che dovrebbe trasformare lo smartphone in un router wifi. Non l'ho ancora provato, ma potrebbe essere una soluzione temporanea, ed è per Windows Mobile 6, lo trovi qui: http://www.jongma.org/WMWifiRouter/

gian luca ha detto...

Funziona!!! Meglio di USB e Bluetooth, e molto più comodo anche per Linux. Nei prossimi giorni preparo un tutorial, comunque non c'è bisogno di fare molto. Non servono gli EXE forniti per l'autoconfigurazione dei PC Windows. Basta creare una rete ad hoc con il nome WMWifiRouter (senza protezione) dopo aver avviato il programma su Windows Mobile. In Gnome basta selezionare "Crea nuova rete wireless" dall'applet di gestione della rete nel tray.

gian luca ha detto...

Attenzione soltanto alla configurazione: è possibile che dopo sia difficile collegarsi alle reti wifi con Windows Mobile. Non è un problema irreversibile, visto che anche il programma ripristina le impostazioni precedenti e di fatto non ho avuto problemi a tornare sui miei passi, però devo ancora fare qualche prova.

gian luca ha detto...

A quanto pare lo sviluppatore di WMWiFiRouter ha rimosso il programma e ha bloccato il sito (http://forum.xda-developers.com/showthread.php?t=357152&page=47). Dovrebbe tornare online entro breve. Incrociamo le dita. Naturalmente la guida è rimandata.

Anonimo ha detto...

a me alla fine di tutto compare nella tray: rete cablata (unknown USB miscellaneous interface)

ma rimane grigia e non si può spuntare...

cosa posso fare??? adesso che spegne la rete wirless il mio vicino sono di nuovo fottuto???

Articoli recenti

In questo momento