di imu
+
+
Questa mia piccola guida e’ orientata al trasferimento di file via bluetooth da linux al telefono e viceversa, non trattero’ gprs perche’ non lo uso, nel caso il vostro interesse sia quello della connessione gprs date uno sguardo all’ ottima guida di AAAle.
Controllate innanzitutto che il vostro adattatore bluetooth sia compatibile con linux prima di comprarlo e magari anche dopo se siete fortunati a questo link –>http://www.holtmann.org/linux/bluetooth/devices.html
Iniziamo con la messa a punto del kernel molto importante per il corretto funzionamento di tutto il sistema, ricordate che per la release 2.4 dovrete mettervi delle patch che trovate a quest’altro link —> http://www.holtmann.org/linux/kernel/ io parlero’ della release 2.6 che dovrebbe essere esente da patch, ma non posso dirvelo con certezza perche’ io uso i kernel-source di Debian-SID voi cercate con google !!!
Nel caso abbiate la release 2.4 scaricate la patch esempio “patch-2.4.25-mh3.gz” che significa sto nome? Allora significa —> patch-(versione_del_kernel)-mh(numero_di_release_patch).gz questo significa che dovrete prendere la patch per il vostro kernel (versione_del_kernel) e con il numero piu’ alto di release patch perche incorpora miglioramenti.
Come la installiamo, mi verrebbe spontaneo dirvi di leggere il kernel-howto ma oggi saro’ buono :P allora scaricate da root mettete i sorgenti in /usr/src/ avrete dunque /usr/src/linux-2.4.5.bz2 a questo punto decomprimeteli vi mostro i passaggi :
$: mv dove_sta_salvato_il_kernel/linux-2.4.25.tar.bz2 /usr/src $: cd /usr/src <---- ci spostiamo in /usr/src $: tar xvjf linux-2.4.25.tar.bz2 <----decomprimiamo $: ln -s linux-2.4.25 linux <---- facciamo un link simbolico $: cd linux <---- entriamo nel link $: zcat dove_sta_la_patch/patch- 2.4.25-mh3.gz | patch -p1 <---- la patch $: make mrproper <---- puliamo i sorgenti $: make menuconfig <---- configuriamo il nostro kernel
Ora vi faro vedere solo la sezione dedicata al nostro bluetooth se no avrei chiamato questa guida kernel-hownto :) andiamo nella sezione ” Device Drivers —> ” poi in ” Networking support —> ” Bluetooth support —>” e settiamo tutto come segue:
Poi spostiamoci in ” Bluetooth device drivers —> ” e settiamo ancora come segue:
A questo pure siete ok avete abilitato tutto !!! Questo serve non solo per il trasferimento file ma anche per il gprs ;) per chi ha l’adattatore bluetooth su usb come me DEVE STARE ATTENTO A NON ABILITARLO PRIMA IN ” USB support —>” MA DEVE FARLO QUI POI ANDANDO NELLA SEZIONE ” USB support —>”NOTERA’ CHE a’ DISABILITATO COME DA FIGURA:
PENA… BLOCCO DI SISTEMA! SIETE STATI AVVERTITI LASCIATE STARE IL SUPPORTO BLUETOOTH IN “USB support —>
Bene torniamo a noi configurate tutto il kernel a vostro paicimento e salvate !!! Poi date gli ultimi comandi:
$: make clean && make dep && make bzImage && make modules && make modules_install
A questo punto avete il vostro bel kernel installatelo e riavviate lilo !!! Spero che nessuno mi chieda come fare -_-
Per la serie 2.6 canbia solo il fatto che non dovete applicare la patch e naturalmente cambiano i comandi per ricompilare il kernel tutto si riduce a:
$: make && make modules_install
installatelo e riavviate lilo
Piccola nota per chi ama debian facciamoci un kernel alla nostra :) potete dare una lettura quiFAQ di DEBIAN oppure cercare con Google “kernel debian way”
$: apt-get update $: apt-get install kernel-package module-init-tools kernel-source-2.6.4 $: cd /usr/src $: tar xvjf kernel-source-2.6.4.tar.bz2 $: ln -s kernel-source-2.6.4 linux && cd linux $: make mrproper && make menuconfig
### Seguire quanto detto sopra per settare il bluetooth###
$: make-kpkg clean && make-kpkg kernel_image
### piccola nota se usate dei sorces di moduli tipo nvidia lirc pcmcia eseguire dopo”make-kpkg kernel_image modules_images”###
ora installiamo i nostri pacchetti:
$: dpkg -i kernel_image-2.6.4-xxxxx.deb ed eventualmente moduli
seguiamo le indicazioni del tools che vi chiederanno prima se volete fare un dischetto di boot ( io rispondo sempre no ) poi vi chiedera’ se volete usare il lilo.conf per l’installazione del kernel E LI’ DOVETE DIRE SI! poi date un bel riavvio alla macchina
appena riavviato con il nuovo kernel e tutto e’ ok installiamo i pacchetti necessari
$: apt-get install bluez-utils bluez-sdp bluez-hcidump obexserver
scarichiamoci questo pacchetto e installiamoloussp-push a questo punto ci siamo quasi inseriamo il nostro adattatore bluetooth e vediamo se esiste agli occhi del sistema di regola avrete i bluez-utils e bluez-sdp gia avviati io per comodita’ li avvio a mano avendo rimosso i link dagli script di init in questo modo:
root# update-rc.d -f bluez-utils remove && update-rc.d -f bluez-sdp remove
quindi li avvio ogni volta come di seguito:
$: /etc/init.d/bluez-utils start Starting bluez-utils: hcid rfcomm. $: /etc/init.d/bluez-dsp start - questo potete farlo anche da user ;) Starting bluez-sdp: sdpd.
### Ora prima di continuare dobbiamo configurare i bluez-utils per associare il cell al pc ###
Facciamo uno scan e vediamo di trovare il MAC address del nostro telefono per associarlo ad una RFCOMM del pc, vi spiego in poche parole noi avremo una volta avviati i bluez-utils “hcid ” che e’ il demone per la connessione usb via bluetooth ed rfcomm che ci creera’ i device che abbiamo bisogno ( fino a 256 )che assoceremo al MAC address del nostro cellulare.Vediamo come trovare sto benedetto indirizzo MAC, useremo i sdptool—> man sdptool oppure sdptool –help
$: sdptool browse Inquiring... Browsing 00:02:EE:82:88:36 <----- ECCOLO QUI Service Name:Fax <----- Occhio a servizi Service RecHandle: 0x10000 Service Class ID List: "Fax" (0x1111) "Generic Telephony" (0x1204) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 <---- ed occhio ai canali Profile Descriptor List: "Fax" (0x1111) Version: 0x0100 Service Name: Dial-up Networking <--- Questa e' per il GPRS se notate e' uguale a quella del fax logico non vi spiego perche'! Service RecHandle: 0x10001 Service Class ID List: "Dialup Networking" (0x1103) "Generic Networking" (0x1201) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100 Service Name:Bluetooth Serial Port <--- Questo abilita' la rfcommi ma noi non la useremo quindi non fatevi illusioni di aver gia' capito :) Service RecHandle: 0x10002 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 2 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Service Name:OBEX Object Push <--- Questa ancora non ho capito ci sto studiando ... vi faro sapere! Service RecHandle: 0x10003 Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 9 "OBEX" (0x0008) Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100 Service Name: OBEX File Transfer <---Finalmente eccolo e' il canale che ci serviva USEREMO QUESTO Service RecHandle: 0x10005 Service Class ID List: "OBEX File Transfer" (0x1106) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 10 "OBEX" (0x0008) Profile Descriptor List: "OBEX File Transfer" (0x1106) Version: 0x0100
### Ora non ci resta che editare il file /etc/bluetooth/rfcomm.conf come segue ###
root# vim /etc/bluetooth/rfcomm.conf <--- qualsiasi editor io ho usato vim voi quello che volete ;) # # RFCOMM configuration file. # # $Id: rfcomm.conf,v 1.1 2002/10/07 05:58:18 maxk Exp $ # # example: # rfcomm0 { bind yes; # # Bluetooth address of the device device 00:02:EE:82:88:36; # # RFCOMM channel for the connection channel 10; # # Description of the connection comment "Nokia7650"; } ~ "/etc/bluetooth/rfcomm.conf" 17L,313C
### attenzione cosi’ facendo abbiamo occupato la rfcomm0 per il trasferimento file, questa nota e’ per chi vuole avere all’avvio abilitate automaticamente sia il trasferimento file che il gprs se volete potete usare la rfcomm1 sul canale 1 per questo telefono, lo schema e’ uguale cambiate solo ” rfcomm1″ ed il canale “channel 1” ;) ###
perfetto salviamo e diamo i comandi di prima:
$: /etc/init.d/bluez-utils start Starting bluez-utils: hcid rfcomm. root# /etc/init.d/bluez-sdp start Starting bluez-sdp: sdpd.
Il piu’ e’ fatto controlliamo con questo comando basta dare rfcomm senza argomenti
root#rfcomm rfcomm0: 00:02:EE:82:88:36 channel 10 clean
A questo punto felicitatevi per l’ottimo lavoro ;) Piccola nota nel file /etc/bluetooth/pin controllate che ci sia un pin
$: cat /etc/bluetooth/pin $: 1234 Altrimenti mettetecelo $: echo "1234" > /etc/bluetooth/pin
### Ora attivate il bluetooth sul cellulare come segue ed abilitiamo il pc a ricevere e trasferire file ###
Menu —> Connettivita’ —-> Bluetooth —-> Attiva
<—attiviamo il bluetooth
<—cerchiamo i disposistivi
<—troviamo il nostro nome quello del localhostcon lo zero cioe’ il primo dispositivo
<—proviamo a collegarci
<—ci chiede il codice che deve essere uguale a quello nel pc
<—inseriamo il codice che di default e’ 1234
<—verifica codice
<—perfetto siamo collegati
Perfetto ora ritorniamo user e vai trasferiamo tutto quello che ci va useremo ” obexserver ” per traferire dal telefono a linux e “ussp-push” per il contrario, procediamo:
Innanzitutto diamo man obexserver quello che uscira’ sara’ la soluzione riporto in breve il man
user$ man obexserver
OK reso l’idea! ogni volta che avviate bluez-sdp dovete dare questo comando:
user$ sdptool add --channel=10 OPUSH OBEX Object Push service registered
### Trasferiamo i file dal tel al pc occhio che li mette in /tmp leggete l’ultima riga del man :) ###
user$ obexserver <--- lanciamo il comando Waiting for connection... <--- pronto a ricevere
### Ora dal telefono scegliamo cosa inviare, anche file multipli basta selezionare e poi dare invia via bluethoot e scegliere i dispositivo ###
<—-scegliamo le foto o i file e li selezioniamo nel caso siamo molti
<—-scegliamo di inviarli via bluetooth
<—-invio in corso
<—questa parla da sola non commento :)
Ora torniamo al nostro pc eravamo rimasti che avevamo lanciato obexserver ora vediamo cosa succede
user$: obexserver Waiting for connection... .......HEADER_LENGTH = 6879 put_done() Skipped header 42 put_done() Skipped header 44 Filename = 11.jpg Wrote /tmp/11.jpg (6879 bytes)
Be che ne dite il file e’ arrivato :) ora fatene quello che volete!
### Passiamo al trasferimento file dal pc al telefono usiamo ussp-push ###
Naturalmente stessa storia i dispositivi connessi i server avviati etc da user lanciamo ussp-push! Per prima cosa vediamo come si usa siccome e’ piccolo non ha il man ma basta dare ” ussp-push -h ” per avere le spiegazioni
user$: ussp-push -h Usage: ussp-push <rfcomm tty device> <local file><remote name>
Bene semplice bisogna lanciarlo con la rfcoom usata nel nostro caso la 0 nome_del_file_da_inviare come_lo_si_vuole_chiamare_sul_telefono
### PROCEDIAMO ###
user$: ussp-push /dev/rfcomm0 debian.jpg debian.jpg <--- io li richiamo uguali poi fate voi !!!ora vediamo cosa succede qui poi vi illustro sul cell . pushing file Debian.jpg name=Debian.jpg, size=49797 Registered transport set user data created new objext Wrote 7 fragmentWrote 7 bytes (expected 7) started a new request expect 7 bytesRead 7 bytesreqdone Command (00) has now finished, rsp: 20Connected! Connection return code: 0, id: 0 Connection established connected to server Sending file: Debian.jpg, path: Debian.jpg, size: 49797 Wrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 1024 fragmentWrote 1024 bytes (expected 1024)Made some progress... expect 3 bytesRead 3 bytesWrote 969 fragmentWrote 969 bytes (expected 969)expect 3 bytesRead 3 bytesreqdone Command (02) has now finished, rsp: 20Wrote 3 fragmentWrote 3 bytes (expected 3)Connection terminated.Error while doing OBEX_HandleInput()pushed!! user$:
Vi rida’ il prompt e la foto e’ stata inviata
Ora vediamo sul telefono che succede:
<—richiesta connessione
<—notate una volta accettato appare la letterina
<—eccolo il nostro sfondo modificato con gimp ;) per il nostro nokia che poi e’ quello di su!
Finisce qui la nostra avventura ma prima di lasciarvi i consueti link e saluti ultima nota carina per avere piu’ comodo ussp-push io ho fatto cosi’ mi sono creato uno script semplice vi pasto di seguito:
#!/bin/bash ## ussp-push /dev/rfcomm0 $1 $1
editatelo in un file io lo uso da user usando nel PATH /home/user/bin ma voi potete farlo da root una volta creato dategli i permessi di eseguzione e mettetelo nel PATH di sistema l’ho chiamato ” invia ” quindi invece di dare tutta la pappardella do soltanto:
user$ invia nome_file
ed il gioco e’ fatto ;) Ciao alla prossima
Per qualsiasi problema mi trovate su IRC.AZZURRA.ORG nel canale #linux-help…
Link Utili
questo qui sotto li contiene tutti good luck:
http://www.holtmann.org/linux/bluetooth/
BY ANTONIO DE LUCI
il cell invia i file al pc ma non viceversa :D
nooo tutta sta pappardella e poi….nooooooooooo