My Linux Bluetooth Experience

My Linux Bluetooth Experience
Release 1.1
25 / gennaio / 2006
Note:
Questo tutorial è stato riportato puramente per motivi storici legati al vecchio sito. Le moderne distribuzioni Linux permettono una gestione dei dispositivi Bluetooth attraverso comode applicazione grafiche in ambiente X.

TOC
PC Hardware e telefono cellulare utilizzati
Configurazione generale PC
Configurazione GPRS
Trasferimento di oggetti via OpenObex


Hardware di test

Terminale Bluetooth PC: Digicom Palladio Bluetooth 100M USB

Telefono Cellulare: Sony Ericsson T610

( up )



Configurazione generale PC

– Configurazione del kernel (Work in progress….)

Il test è stato effettuato con distribuzione Slackware 10.1 e kernel 2.6.10.
Il kernel utilizzato è quello fornito precompilato con la distribuzione
in cui tutti i moduli sono compilati e disponbili.
Viene comunque riportata la sezione relativa al Bluetooth per la configurazione del kernel.

Device Drivers ==> Networking Support ==>
Bluetooth Subsytem support

--- Bluetooth subsystem support
 <M>   L2CAP protocol support
 <M>   SCO links support
 <M>   RFCOMM protocol support
 [*]     RFCOMM TTY support
 <M>   BNEP protocol support
 [*]     Multicast filter support
 [*]     Protocol filter support
 <M>   CMTP protocol support
 <M>   HIDP protocol support
 Bluetooth device drivers  --->


Device Drivers ==> Networking Support ==>
Bluetooth Subsytem support ==> Bluetooth device drivers

 <M> HCI USB driver
 [*]   SCO (voice) support
 <M> HCI UART driver
 [*]   UART (H4) protocol support
 [*]   BCSP protocol support
 [*]     Transmit CRC with every BCSP packet
 <M> HCI BCM203x USB driver
 <M> HCI BlueFRITZ! USB driver
 <M> HCI DTL1 (PC Card) driver
 <M> HCI BT3C (PC Card) driver
 <M> HCI BlueCard (PC Card) driver
 <M> HCI UART (PC Card) device driver
 <M> HCI VHCI (Virtual HCI device) driver

– Installare le utility Bluez http://www.bluez.org

  1. bluez-libs
  2. bluez-utils
  3. bluez-pin
  4. bluez-firmware
  5. bluez-hcidump
  6. bluez-hciemu

Le prime 3 sono necessarie.

– Collegare il terminale USB Bluetooh al PC
nell’output del comando dmesg dovrebbe apparire qualcosa del genere:

Bluetooth: Core ver 2.7
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: HCI USB driver ver 2.7
usbcore: registered new driver hci_usb

– Attivare il dispositivo:

# hciconfig hci0 up

– Il tool hcitool:
questo tool fa parte delle Bluez-Utils ed ha svariate opzioni ma nel nostro caso ci interesserà solamente sapere l’indirizzo
hardware dei dispositivi bluetooth sotto copertura lanciando il comando:

#hcitool scan

– Il demone hcid
il demone hcid è necessario per tutte le operazioni relative al Bluetooth e quindi è bene lanciarlo inizialmente. Nel momento in cui si effettuano modifiche sul file /etc/bluetooth/hcid.conf il demone deve essere ucciso e riavviato:

#hcid

( up )



Configurazione cellurare come modem GPRS
– Editare e configurare

/etc/bluetooth/hcid.conf (vedi esempio)
/etc/bluetooth/pin (vedi esempio)
/etc/bluetooth/rfcomm.conf (vedi esempio)

il file /etc/bluetooth/pin deve avere i permessi di esecuzione

– Per conoscere il canale del cell riservato al Dial Up Networking (DUN):

# sdptool search DUN <hw-mobile-address>

(il tool sdptool fa parte delle Bluez-utils)

homer@springfield:# sdptool search DUN XX:XX:XX:XX:XX:XX
 Inquiring ...
 Searching for DUN on XX:XX:XX:XX:XX:XX ...
 Service Name: Dial-up Networking
 Service RecHandle: 0x10000
 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
homer@springfield:#

Notare nell’output presentato che il canale del telefono cellulare dedicato
al Dial Up Networking è il canale 1 ( Channel: 1 )

– Lanciare il demone hcid

# hcid

– Connessione tramite rfcomm:

# rfcomm connect /dev/rfcomm0 <hw-mobile-address> <channel>

homer@springfield:~# rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1
Connected /dev/rfcomm0 to XX:XX:XX:XX:XX:XX on channel 1
Press CTRL-C for hangup

Appena lanciato il precedente comando sul display del vostro cellulare
apparirà il messaggio di avvertimento se volete aggiungere alla lista dei dispositivi
il vostro PC. Accettate ed inserite lo stesso PIN contenuto nel file /etc/bluetooth/pin
L’avvio di rfcomm crea automaticamente il device /dev/rfcomm0
nel caso voleste crearlo manualmente:

# mknod /dev/rfcomm0 c 216 0

– Per testare il corretto funzionamento:

  • Entrare nel setup di minicom
  • Selezionare come porta del modem: /dev/rfcomm0
  • Abilitare il controllo di flusso software
  • Disabilitare il controllo di flusso hardware
  • Impostare la velocità della porta a 9600 baud
  • Salvare ed uscire dal setup di minicom
  • Se tutto è andato per il meglio il vostro modem GPRS
    su telefono cellulare è pronto
  • Inviate i comandi ATI 1, ATI 2,… per conoscere le info
Welcome to minicom 2.1

OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Sep 18 2004, 16:54:29.

Press CTRL-A Z for help on special keys

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
ati 3
T610 series Bluetooth(TM) Modem

OK
ati 7
T610 series Modem Configuration Profile

Product Type       Internal Terminal Adapter
Interfaces         Bluetooth, IrDA, System Bus
Options            FAX, GPRS, OBEX, RLP, V42bis

OK

A questo punto rimane da mettere a punto la connessione ad internet PPP…
file di configurazione e script di avvio connessione

( up )




Traserimento file via OpenObex
Cosa serve ?

– OpenObex e OpenObex Apps

Sito ufficiale OpenObex

– Bluez SDP

– OPD – OBEX Push Daemon

Cosa si puo’ fare?

Inviare file dal Cellulare al PC

Lanciare i seguenti comandi nell’ordine presentato (è necessario perchè opd si appoggia al demone
sdpd)

# sdpd
# opd –mode OBEX –channel 10 –daemonize –path /tmp –sdp

selezionare l’oggetto da inviare sul cell e spedirlo via Bluetooth al PC
rilevato dalla ricerca di nuovi dispositivi. Il file inviato dal cellulare
verrà salvato all’interno della cartella /tmp (vedi sopra il comando opd)

(alternativamente si potrebbe sfruttare il comando obexftp per ricevere
file dal telefono cellulare utilizzando la sintassi:

# obexftp -b <hw-mobile-address> -g <file-da-ricevere>

ma non sono riuscito a farlo funzionare. Se qualcuno ci riesce mi contatti 😉

Inviare file dal PC al Cellulare

– Installare ObexFTP

# obexftp -b <hw-mobile-address> -p <file-da-inviare>

( up )

( up )

Leave a Reply