Linux tips and tricks/Bluetooth
Due righe per raccontare come ho imparato a smettere di avere paura e ad amare la tecnologia Bluetooth...
Introduzione
modificaDi seguito trovate un piccolo esempio pratico di collegamento bluetooth tra un sistema Linux ed un dispositivo Bluetooth (in questo caso un telefono Nokia), questo contributo non vuole certo essere completo, ma intende essere un punto di partenza, uno spunto aperto al contributo di tutti gli utenti Linux.
Si parte dal presupposto di aver installato sul computer Linux Mandrake 10.0 (Kernel 2.6.13).
Configurazione e Connessione
modificaDunque, per far funzionare una periferica bluetooth bisogna aver installato il protocollo Bluez (fortunatamente e gentilmente fornito dall'amico Mandrake tramite una serie di pacchetti RPM), ed avere avviato il servizio bluetooth, per far questo basta,da riga di comando (as root of course), digitare il comando:
[utente@dominio.org utente]# service bluetooth start
ora bisogna impostare il pin e (se proprio lo si vuole) il nome del proprio
dispositivo, a tal fine si deve editare, con il vostro editor di fiducia (io
uso joe), il file /etc/bluetooth/hcid.conf
così:
[utente@dominio.org utente]# joe /etc/bluetooth/hcid.conf
dove si devono apportare le seguenti modifiche:
stralcio per il pin:
# PIN helper pin_helper /etc/bluetooth/miopin.sh;
file da creare ad-hoc.
Stralcio per il nome:
# Local device name # %d - device id # %h - host name name "utentedominio (%d)";
N.B.: il file miopin.sh
deve contenere:
#!/bin/bash echo "PIN:XXX"
dove al posto di XXXX mettete il vostro pin.
A questo punto si può procedere ad esplorare per i dispositivi presenti in zona, io consiglio:
[utente@dominio.org utente]# hcitool scan
se tutto è ok si dovrebbe vedere qualcosa del tipo:
12:34:56:78:90:12 utente1
in pratica il bdaddr (l'indirizzo BT) ed il nome del dispositivo, consiglio vivamente di copiarsi il bdaddr, ora si devono scoprire i servizi disponibili nella periferica remota e su quali canali sono:
[utente@dominio.org utente]# sdptool browse 12:34:56:78:90:12
si dovrebbe vedere una serie piuttosto lunga di profili accessibili, supponiamo ora per un attimo di essere interessati ad usare il profilo dialup e che il dispositivo remoto lo renda disponibile sul canale 1:
Service Name: Dial-Up Networking Service RecHandle: 0x10007 Service Class ID List: "Dialup Networking" (0x1103) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100
poi si procede come segue:
[utente@dominio.org utente]# rfcomm bind 0 12:34:56:78:90:12 1
in pratica ho detto al tool rfcomm di creare una porta seriale virtuale
rfcomm0
(/dev/bluetooth/rfcomm/0
) "bindata" al modem del dispositivo
remoto.. non collegata, ma pronta ad intervenire su richiesta del SW,
vediamo che è successo:
[utente@dominio.org utente]# rfcomm show
si dovrebbe vedere qualcosa del tipo:
rfcomm0: 12:34:56:78:90:12 channel 1 clean
in pratica adesso abbiamo a nostra disposizione il modem BT come periferica
all'indirizzo /dev/bluetooth/rfcomm/0
si potrebbe creare un nodo con il comand mknod per avere un nome più facilmente digitabile, ma questo esula dallo scopo del presente articolo.
Uso del dispositivo Bluetooth come Modem
modificaAdesso passiamo a vedere come poter usare il dispositivo remoto come
modem, ad esempio tramite il dialer wvdial, editiamo il file
/etc/wvdial.conf
, ad esempio con joe, in modo da ottenere qualcosa del
genere:
[Dialer Defaults] Modem = /dev/bluetooth/rfcomm/0 Baud = 460800 Dial Attempts = 1 Init1 = ATZ Init3 = AT+CGDCONT=1,"IP","web.omnitel.it" Phone = *99# Carrier Check = no Stupid Mode = yes Username = "" Password = ""
N.B.: risulta evidente come i parametri qui sopra riportati siano specifici per la rete Vodafone.
Adesso non resta che digitare:
[utente@dominio.org utente]# wvdial
Incrociate le dita ed in bocca al lupo!