Menu Chiudi

Debian + Bluetooth Palladio 3com + nokia7650

di imu

debian + palladio + nokia7650

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

connessione complatata <—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 ###

scegli immagine<—-scegliamo le foto o i file e li selezioniamo nel caso siamo molti

scegli tipo invio <—-scegliamo di inviarli via bluetooth

invio in corso <—-invio in corso

inviati <—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

2 commenti

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo:
Vai alla barra degli strumenti