Connessione cellulare Nokia con Obexftp & Obextool: differenze tra le versioni
(→Tocchi Finali) |
m |
(8 versioni intermedie di un altro utente non mostrate) | |
(Nessuna differenza)
|
Versione attuale delle 08:56, 15 feb 2007
Indice
Premessa
La seguente guida spiega come connettere e interagire con i cellulari nokia tramite cavo usb, nel mio caso viene usato un Nokia 5300 xpress, ma va anche su altri modelli di cellulare, un esempio e' da dove sono stati presi gli spunti dalla guida del sito polly coke di cui trovate il link a fondo pagina.(L'autore mi ha dato il permesso di pubblicare i suoi pezzi) Tutti i comandi descritti qui sotto vanno effettuati da utente root.
Verificare Il kernel
Caricare il modulo con il kernel di Slackware
Se avete il kernel di default (Quello di Slackware) date
# modprobe cdc_acm
Se non vi dice nulla, ottimo avete il modulo! altrimenti dovrete procurarvelo ricompilando il kernel, penso che in questo wiki ci siano le istruzioni per far cio'.
Compilare il modulo dai sorgenti del kernel
Entrate nella directory dei sorgenti del kernel, seguite il passo qui sotto.
# make menuconfig
a questo punto entrate in
Drivers -> Usb support
e cercate la voce USB Modem (CDC ACM) support , una volta trovata segnatela come qui
<M> USB Modem (CDC ACM) support
ok ora uscite e date
#make && make modules && make modules_install && make install
Ora provate a collegare il telefono ed impostatelo in modalità Nokia(SE LO CHIEDE), se dando il comando
#ls -l /dev/ttyACM0
vi da un output del genere
#ls -l /dev/ttyACM0 crw-rw---- 1 root root 166, 0 2007-02-10 11:24 /dev/ttyACM0
tutto e' andato a buon fine!
Impostare i permessi Al device per gli utenti
Per accedere anche da utente dovrete fare alcune aggiunte a udev
Rilevamento dell'id del produttore e modello
Per capire l'id del produttore e del vostro modello di cellulare date prima
#lsusb
dovreste avere una schermata del genere
Bus 4 Device 1: ID 0000:0000 Bus 5 Device 7: ID 0421:04b8 Nokia Mobile Phones Bus 5 Device 1: ID 0000:0000 Bus 3 Device 2: ID 06d6:002b Aashima Technology B.V. Bus 3 Device 1: ID 0000:0000 Bus 2 Device 2: ID 04f9:018e Brother Industries, Ltd Bus 2 Device 1: ID 0000:0000 Bus 1 Device 1: ID 0000:0000
Come potrete vedere mi rivela il Nokia Mobile Phones (ho un nokia), date
#lsusb -v | less
e cercate la voce Nokia Mobile Phones (o il nome del vostro cellulare)
per cercare premete -> / e digitate il nome rilevato in alto (nel mio caso Nokia Mobile Phones) ATTENZIONE e' case senitive, vuol dire che scrivere Nokia e' diverso da scrivere nokia
ora cercate questi 2 termini -> (idVendor e idProduct)
Nel mio caso ottengo una schermata del genere
Bus 4 Device 3: ID 0421:04b8 Nokia Mobile Phones Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0421 Nokia Mobile Phones idProduct 0x04b8 bcdDevice 3.50 iManufacturer 1 Nokia iProduct 2 Nokia 5300 iSerial 0 bNumConfigurations 1 Configuration Descriptor:
bene! prendete i numeri o lettere dopo la x esempio:
idProduct 0x04b8 solo questo (04b8)
prendete nota di questi 2 valori, ora uscite premendo q
Creare la regola per Udev
ora che avete ottenuto l'id vendor e product create un file in /etc/udev/rules.d/
#cd /etc/udev/rules.d/ #touch cellular-devices.rules
dopo di che editatelo con il vostro editor preferito (nel mio caso vim) e inserite queste righe
- Spiegazione
- La voce BUS serve per indicare il tipo di bus, nel nostro caso usb
- La voce idVendor serve per indicare il tipo di id del venditore (quello che abbiamo preso prima)
- La voce idProduct serve per indicare il tipo di id del prodotto per far capire a udev cosa vogliamo fare con quel tipo di apparecchio collegato
- La voce GROUP serve per indicare il tipo di gruppo che vogliamo assegnare al device, senza di questo solo root puo' accederci e usarlo (Dovrete fare parte del gruppo)
Esempio:
BUS=="usb", SYSFS{idVendor}=="TUOIDVENDOR",SYSFS{idProduct}=="TUOIDPRODUCT", GROUP="GRUPO SCELTO DA TE"
- Esempio Pratico
BUS=="usb", SYSFS{idVendor}=="0421",SYSFS{idProduct}=="04b8", GROUP="users"
una volta impostati i vostri id vendors, product e gruppo, fate questi passaggi
- salvate
- staccate il cellulare(Se lo avete attaccato)
- riavviate udev
#/etc/rc.d/rc.udev restart
- riattaccate il cellulare
ecco fatto ora date
#ls -l /dev/ttyACM0 crw-rw---- 1 root users 166, 0 2007-02-03 00:25 /dev/ttyACM0
se vedete che il gruppo e' il vostro scelto (user in questo caso) potrete usare il cellulare anche da utente e possiamo passare all'installazione dei programmi appositi, altrimenti ripetete il passaggio sopra per le regole di udev, altrimenti non potrete usare il vostro cellulare da utente normale (ricordatevi che dovrete far parte del gruppo scelto da voi)
per verificare se fate parte del gruppo digitate da utente
#groups users wheel floppy audio video cdrom
come vedete faccio parte del gruppo users
ora bando alle ciance e passiamo all'installazione degli obextool e obexftp
Installare Openobex
NOTA: le versioni minori della 1.1 NON vanno bene
Prelevate dal seguente url l'ultima versione (Io ho usato per questa guida la 1.3)
[[1]]
prelevatela, estraetela, configurate il pacchetto, compilatelo e create il pacchetto
Esempio:
#tar -xzf openobex-1.3.tar.gz #cd openobex-1.3
Compilazione Openobex
#./configure --prefix=/usr --enable-apps #make
O vi fate il pacchetto o usate check install come faccio io o date il classico make install
#make install
Per aggiornare le librerie (Cosi' siamo sicuri che non avremo errori di librerie non trovate)
#ldconfig
Prova funzionamento di Openobex
Ora collegate il cellulare e date
#obex_test -u
nel mio caso appare
#obex_test -u Using USB transport, querying available interfaces Interface 0: Nokia Nokia 5300 (null) Interface 1: Nokia Nokia 5300 (null) Interface 2: Nokia Nokia 5300 (null)
se vi dovesse dare il messaggio che sta utilizzando gli infrarossi qualcosa e' andato storto e dovrete rivedere i passaggi
Installare Obexftp & Patch
Obexftp (per forza la versione 0.18 perche' la patch e' solo per quella versione al momento)
Che potrete scaricare da qui [[2]]
e qui la patch [[3]]
Aplicare la patch
Dopo aver scompattato il pacchetto e scaricato la patch, copiate il file di patch nella dir di obexftp
cp obexftp.patch obexftp-0.18/
entrate nella dir
cd obexftp-0.18
applicate la patch
cat obexftp.patch | patch -p1 cat aclocal.m4 >> acinclude.m4
e date
aclocal && autoconf
Compilare Obexftp
#./configure --prefix=/usr --sysconfdir=/etc --disable-perl --disable-python --disable-tcl #make
O vi fate il pacchetto o usate check install come faccio io o date il classico make install
#make install
Per aggiornare le librerie (Cosi' siamo sicuri che non avremo errori di librerie non trovate)
#ldconfig
Prova funzionamento di Obexftp
Se tutto e' andato a buon fine date
#obexftp -u 1 -c C: -l
Dovreste avere un output del genere:
Connecting...done Receiving "(null)"...\<?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd" [ <!ATTLIST folder mem-type CDATA #IMPLIED> ]> <folder-listing version="1.0"> <folder name="Memory card" user-perm="RW" mem-type="MMC"/> <folder name="predefgames" created="20040101T000000" user-perm="RWD" mem-type="DEV"/> <folder name="Immagini" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="File musicali" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="Temi" created="20060101T000000" user-perm="RW" mem-type="DEV"/> <folder name="Toni" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="Clip video" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="Foto" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="Registrazioni" created="20060101T000000" user-perm="R" mem-type="DEV"/> <folder name="File ricevuti" created="20060101T000000" user-perm="R" mem-type="DEV"/> </folder-listing> done Disconnecting...done
Come potrete vedere ci sono le vostre cartelle, nel mio caso ci sono le mie cartelle che ho nel cellulare, questo vuol dire che avete appena letto le directory del vostro nokia, ora potrete per esempio trasferire file cancellarli ecc, come se fosse uno spazio FTP.
Esempi:
- Lista di una dir:
#obexftp -u 1 -c 'Memory card' -l
- Mandare un file nel telefono
#obexftp -u 1 -c 'Memory card/Toni' -p suoneria.mp3
- Prendere un fiel dal telefono
#obexftp -u 1 -c 'Memory card/Temi' -g miotema.tema
Per il resto leggersi il man :P o la doc
#man obexftp
Tool grafico Obextool
- Dipendenze:
- Tk >= 8.0
- TCL >= 8.0
- BWidget
- Tablelist
Risoluzione delle dipendenze
Tk & Tcl
Le Tk,TCL le trovate sul repository di Slackware.
[[4]]
BWidget
- Link alla pagina dei download:
[[5]]
- Scompattiamo
#tar -xjf BWidget-1.8.0.tar.bz2
- Muoviamo le BWiget nella dir delle librerie tcl
#mv BWidget-1.8.0 /usr/lib/tcl8.4/BWidget
- Aggiorniamo le librerie di sistema
#ldconfig
ok finito!
Tablelist
- Link alla pagina dei download:
NOTE:Dovrebbe essere il pacchetto alla destra dello schermo comunque c'e' il nome
[[6]]
- Scompattiamo
#tar -xzf tablelist4.5.tar.gz
- Muoviamo le Tablelist nella dir delle librerie tcl
#mv tablelist4.5 /usr/lib/tcl8.4/Tablelist
- Aggiorniamo le librerie di sistema
#ldconfig
ok finito!
Installazione Obextool
- Link alla pagina dei download:
NOTE:C'e' la scritta download se non la vedete cercatela
[[7]]
- Scompattiamo & entriamo
#tar xzf obextool-0.33.tar.gz #cd obextool-0.33/
- Editing file
NOTA: etc non manca una slash davanti, e' scritto correttamente
- Edit obextool.cfg
#vim etc/obextool.cfg
Impostate a 0 il valore della chiave
NOTE:di default e' 1 per i telefoni siemens
set ObexConfig(config,memstatus) 0
salvate e uscite
- Edit obexwrap.sh
#vim etc/obexwrap.sh
Andate alla fine del file dovreste avere delle righe come questa:
### Version obexftp 0.10.4 (should also work with bluetooth) #obexftp -b <btaddr> -B <channel> "$@" 2>&1 #obexftp -t /dev/modem "$@" 2>&1 # $HOME/sw/cprog/obexftp-0.10.4/apps/obexftp -t /dev/modem "$@" 2>/dev/null obexftp -t /dev/modem "$@"
Sostituitela con questa (Come noterete commento la linea del dev/modem, potrebbe tornare utile)
### Version obexftp 0.10.4 (should also work with bluetooth) #obexftp -b <btaddr> -B <channel> "$@" 2>&1 #obexftp -t /dev/modem "$@" 2>&1 # $HOME/sw/cprog/obexftp-0.10.4/apps/obexftp -t /dev/modem "$@" 2>/dev/null #obexftp -t /dev/modem "$@" obexftp -u 1 "$@"
salvate e uscite.
Ecco fatto, ora rendete eseguibile se non lo e' (obextool.tk) dando:
#chmod +x obextool.tk
Ora provate ad avviare obextool dando
#./obextool.tk
Se il programma parte e vedete il contenuto del vostro cellulare ben fatto! Altrimenti puo' essere che vi manchino delle librerie, riguardate la lista in alto, o l'output da console di obextool.tk
Tocchi Finali
Per rendere il programma usabile da qualsiasi posizione come mplayer, vim ecc che basta che digitiate il comando e parta eseguite questi passi
Muovete la directory in
#mv obextool-0.33 /usr/share/obextool
e create un hard link
#ln /usr/share/obextool/obextool.tk /usr/bin/obextool
ora lo avrete da eseguire come un programma normale e come utente :D
Se voelte un link su desktop ecc potete usare la guida di polly coke qui sotto che e' spiegato.
Crediti
Parti della guida sono state prese da http://pollycoke.wordpress.com/2006/06/02/linux-e-nokia-6630-via-usb/