lunedì 16 giugno 2008

sincronizzare i contatti, eventi sul motorola a1200 con Linux

sincronizzare i contatti e i eventi sul a1200 con j2mesync e evolution.

certo, avendo un telefono con sistema operativo linux e non poterlo sincronizzare con il mio pc linux :(
per windows, Motorola mette a disposizione il MPT (Motorola phone tools) per LINUX NIENTE!
Meno male che nel mondo opensource trovi sempre qualcuno che .....
Sebastian Ohl ha scritto un programmino in java per i cellulari e un plugin per evolution per far si che si possa sincronizzare via bluetooth.
la sua pagina web di riferimento : http://www.ohli.de/?J2MESync
Scrivo un piccolo riassunto dell installazione fatta su Ubuntu Hardy 8.04, visto che non e semplicissimo da installare/usare.
Decido di provare con la parte opensync e di NON usare il pacchetto .deb già pronto ma di compilare a mano i sorgenti.
questo perchè il pacchetto e per opensync 0.1 mentre su Hardy e possibile installare la 0.22

RIASSUNTO
Preparo l' ambiente per poter compilare e installo le librerie necessarie con synaptic.
Da synaptic installo :
build-essentials, libbluetooth-dev, opensync-plugin-evolution, multisync-tools, libopensync0-dev, libxml2-dev, libtool.

Synaptic, provederà ad installare anche le dipendenze necessarie.
Scarico i sorgenti da j2mesync per opensync 0.22 : http://www.ohli.de/download/j2mesync_opensync-0.22.tar.bz2
decomprimo i sorgenti :
tar -xjvf j2mesync_opensync-0.22.tar.bz2
entro nella cartella appena creata : cd j2mesync-plugin-0.22
do il commando per l' autoconfigurazione :
./autogen.sh
poi provo a compilare dando il commando :
make
da subito un errore per il mancato riferimento alle libxml ( error -lxml) ma visto che uso le libxml2 non posso usare le libxml visto che vanno in conflitto.
Allora correggo semplicemente il secondo Makefile che si trova nella cartella /src la riga :
j2mesync_plugin_la_LIBADD = -lopensync -lxml2 -lglib-2.0 -lbluetooth -lxml
tolgo il riferimento -lxml
nuova riga :
j2mesync_plugin_la_LIBADD = -lopensync -lxml2 -lglib-2.0 -lbluetooth
rifaccio il make :
make clean
make
poi installo il tutto da root
sudo make install
poi passo all installazione del j2mesync.jar che si trova nella cartella /java/bin
installo il j2mesync.jar nell telefono e (molto importante) do i permessi per poter scrivere,leggere ed usare il bluetooth.
io i permessi li modifico a mano. per far questo bisogna dopo aver installato il j2mesync.jar nel telefono andare nella cartella "nascosta" .system/java/DownloadApps/MIDlet200XX per XX dipende dalle vostre installazioni. Di solito se l' avete appena installato e il numero maggiore.
Per essere sicuri che si tratta della cartella giusta, basta aprire il registry.txt che contiene anche i permessi e verificare il nome :
Jar-Path : /mmc/mmca1/.system/java/DownloadApps/MIDlet200XX/Files/j2mesync.jar
poi basta modificare 3 voci in :
DRM-Mode: Allowed
Ls-Trusted: 1
Domain: Manufacturer

salvare il tutto e far aquisire i nuovi permessi all applicazione, dalla schermata principale tenere premuto il pennino sul icona di j2mesync fino che si apre una finestra. Li scegliere : Gestione -> Autorizzazioni e senza modificare nulla premere su OK.
Adesso j2mesync dovrebbe essere abilitata ad usare il bluetooth ecc.

poi dovete rilevare il macaddress del vostro dispositivo bluetooth nell cellulare :
impostare il bluetooth nell cellulare su Disponibile e da pc dare il comando :
hcitool scan
Dovrebbe rilevare il vostro cellulare e visualizzare il macaddress tipo 00:XX:XX:XX:XX:XX
Adesso configuriamo il tutto ed inseriamo il macaddress rilevato el il canale 7 (normalmente e il 7)

configurazione del plugin j2mesync nel PC per evolution:
da un terminale (console) digitare i comandi :
msynctool --addgroup XXXXX ( XXXXX = nome_vostro_gruppo)
msynctool --addmember XXXXX j2mesync-plugin
msynctool --addmember XXXXX evo2-sync
msynctool --configure XXXXX 1 (configura il primo plugin)

inserire il macaddress e il canale : 00:XX:XX:XX:XX:XX7
salvare la configurazione
Adesso potete controllare se i due plugins sono configurati digitando:
msynctool --showgroup XXXXX

Per sincronizzare dovete avviare prima il j2mesync sul vostro cellulare e poi da PC (console digitare) :
msynctool --sync XXXXX ( XXXXX = nome_vostro_gruppo)
Naturalmente per funzionare il tutto, i due dispositivi bluetooth, devono essere associati correttamente.

mercoledì 28 maggio 2008

Rete-usb dopo aggiornamento kernel su ubuntu hardy

Ehmmmm, oggi e arrivato il primo aggiornameto per il kernel, infatti da 2.6.24-16-386 e passato a 2.6.24-17-386, dunque riavviato e collegato subito il mio motorola A1200 e ....
con il solito comando dmesg :
[ 301.275473] usb 1-1: new full speed USB device using uhci_hcd and address 3
[ 301.442595] usb 1-1: configuration #1 chosen from 1 choice

e basta mmmmhh.
era evidente che non ......
provo la soluzione più facile e copio il modulo zaurus.ko "vecchio" nella cartella:
/lib/modules/2.6.24-17-386/kernel/drivers/net/usb

sudo cp zaurus.ko /lib/modules/2.6.24-17-386/kernel/drivers/net/usb

o forse meglio :
sudo cp /lib/modules/2.6.24-16-386/kernel/drivers/net/usb/zaurus.ko /lib/modules/2.6.24-17-386/kernel/drivers/net/usb

poi do il solito :
sudo depmod -a

e provo a caricare il modulo manualmente con:
sudo modprobe zaurus

infatti adesso dando il comando dmesg :
[ 301.275473] usb 1-1: new full speed USB device using uhci_hcd and address 3
[ 301.442595] usb 1-1: configuration #1 chosen from 1 choice
[ 1007.930006] usbcore: registered new interface driver cdc_ether
[ 1007.966988] zaurus: no version for "struct_module" found: kernel tainted.
[ 1007.974094] usb0: register 'zaurus' at usb-0000:00:11.2-1, pseudo-MDLM (BLAN) device,
[ 1007.974693] usbcore: registered new interface driver zaurus
Dunque ci siamo, adesso basta configurare la rete con il solito ifconfig :
sudo ifconfig 192.168.1.1 netmask 255.255.255.0 mtu 900

Ok tutto a posto ;)

Spero possa essere di aiuto.

domenica 18 maggio 2008

Rete-usb per il motorola a1200 su ubuntu hardy

Hello
Allora aggiornato alla versione 8.04 Hardy Heron e ...... manca ancora il modulo zaurus che mi consente di utilizzare la usb-net (rete usb) del mio cellulare un motorola A1200E.
Cosa fare, possibile che non riescono ad integrare questo modulo essenziale per il funzionamento dei vari linuxphone tipo zaurus e ezxphones della motorola?
vabbe, dovrò ricompilare il kernel o anche solo il modulo .
metto giù due righe tanto per ricordarmi il percorso da fare visto che ultimamente uso solo la arch e su ubuntu (debian) la procedura per ricompilare il kernel alla ubuntuway e differente.
allora bisogna scaricarsi i sorgenti del kernel 2.6.24 :
si può fare con synaptic o per chi preferisce la console con il comando apt-get install.
Faccio con la console che si fa prima :)
però prima e forse meglio fare un bel sudo apt-get update.
Bene adesso serve anche un bel sudo apt-get install build-essentials libncurses5-dev per installare i tools necessari per pachettizare alla debian (ubuntu) way.
Era già un bel pò che non avevo più compilato un kernel con il sistema debian e sinceramente non mi ricordavo più bene il procedimento ;)
controllo sul wiki di ubuntu e vedo che per Hardy 8.04 ci son dei comandi "nuovi" che permettono di scaricare i sorgenti e le patch necessarie.
  • sudo apt-get build-dep linux-image-$(uname -r)
  • sudo apt-get source linux-image-$(uname -r)
il primo comando risolve eventuali dipendenze
il secondo comando scarica i sorgenti del kernel più le patch poi decomprime automaticamente i sorgenti e applica le patch. Dunque adesso mi trovo dei sorgenti già patchati pronti per la configurazione e successiva compilazione.
Adesso vediamo dove mi ha messo i sorgenti apt, in teoria dovrebbero essere in /usr/src e infatti ci sono i sorgenti
compressi linux_2.6.24.orig.tar.gz più la patch linux_2.6.24-16.30.diff.gz più una cartella linux-2.6.24 con dentro i sorgenti decompressi e patchati.entro nella cartella :
  • cd /usr/src/linux-2.6.24
e copio il file di configurazione config-xxxxx del kernel attuale che si trova in /boot.per sapere come si chiama questo file di configurazione digito :
  • uname -r
la risposta nel caso mio e : 2.6.24-16-386 dunque il file di configurazione si chiama config-2.6.24-16-386 .
Copio il file di configurazione nell attuale cartella con un :
  • sudo cp /boot/config-2.6.24-16-386 .config praticamente viene copiato e rinominato in .config.
Adesso passo alla configurazione, io preferisco la configurazione semigrafica con il make menuconfig, altre soluzoni make xconfig o make config per i tradizionalisti. prima però, visto che parto con il file di configurazione vecchio do un :
  • sudo make oldconfig.
Inizio con la configurazione vera e propria.:
  • sudo make menuconfig
vado in Device Drivers --> Network device support --> scendo fino a --> USB Network adapters e imposto una in Sharp Zaurus (stock ROMs) and compatible.Adesso in teoria potrei anche uscire e salvare la configurazione, visto che mi interessava solo abilitare/compilare il modulo per la rete USB Zaurus. lo faccio e provo a compilare solo il modulo necessario per poi caricarlo al attuale kernel, questa e la soluzione più veloce.
Do il comando per la compilazione del solo modulo zaurus:
  • sudo make drivers/net/usb/zaurus.ko
e copio il modulo compilato in /lib/modules/2.6.24-16-386 :
  • sudo cp /usr/src/linux-2.6.24/drivers/net/usb/zaurus.ko /lib/modules/2.6.24-16-386/kernel/drivers/net/usb
poi do il comando :
  • sudo depmod -a
faccio subito una prova se me lo carica :
  • sudo modprobe zaurus
se non da nessun errore sono a "cavallo".
connetto il mio A1200 in modalità usb-net alla porta usb e do un :
  • dmesg
alla fine mi dice :
[ 3201.714691] usb0: register 'zaurus' at usb-0000:00:11.2-1, pseudo-MDLM (BLAN) device, da:
[ 3201.716538] usbcore: registered new interface driver zaurus
bene tutto ok, adesso basta configurare la rete (ip) con :
  • sudo ifconfig usb0 192.168.1.1 netmask 255.255.255.0 mtu 900
adesso provo subito con telnet :
  • telnet 192.168.1.2
come pass basta inserire: root
per l' uso con samba :aprire il browser e digitare:
  • smb://192.168.1.2
Fatto, adesso bisogna fare attenzione quando ci sono i aggiornamenti ubuntu tipo quelli per il kernel, può essere che dopo un aggiornamento vi manchi di nuovo il modulo in questo caso bisogna rifare la procedura sopra descritta.
Un altra soluzione e compilare un nuovo kernel con il modulo abilitato e delle ottimizzazioni, poi disabilitare l' aggiornamento per il kernel, cosi vi rimane per sempre.
i comandi per la compilazione del kernel completo e successiva pacchettizzazione .deb sono

sudo make-kpkg --initrd --append-to-version -quellochevolete kernel_image kernel_headers

poi basta installare i .deb creati con il comando :

sudo dpkg -i linux-image-2.6.24.xxxxxx.deb
sudo dpkg -i linux-headers-2.6.24.xxxxxx.deb