Bluetooth è una tecnologia wireless per la connessione di dispositivi diversi, quali ad esempio cellulari, PDA, periferiche, computer portatili o componenti di sistema quali tastiera o mouse. Il nome deriva dal re danese Harold Bluetooth, che riunì diverse fazioni in guerra in Scandinavia. Il logo Bluetooth è basato sulle rune che corrispondono alla lettera «H» (assomiglia a una stella) e alla lettera «B».
Bluetooth si distingue da IrDA sotto molti aspetti importanti. Innanzitutto, non è necessario che i singoli dispositivi si «riconoscano» direttamente e, in secondo luogo, è possibile connettere diversi dispositivi alla rete. La velocità massima dei dati è 720 Kbps (nella versione corrente 1.2). In teoria, Bluetooth è in grado di comunicare persino attraverso le pareti. Nella pratica, tuttavia, la comunicazione dipende dalle proprietà della parete e dalla classe del dispositivo. Esistono tre classi di dispositivi con intervalli di trasmissione compresi tra dieci e cento metri.
Nelle sezioni seguenti vengono definiti i principi fondamentali del funzionamento di Bluetooth. Vengono fornite informazioni sui requisiti software necessari, sull'interazione di Bluetooth con il sistema e sul funzionamento dei profili Bluetooth.
Per utilizzare Bluetooth, è necessario un adattatore Bluetooth (integrato o esterno), i driver e uno stack del protocollo Bluetooth. Il kernel di Linux contiene già i driver principali per l'utilizzo di Bluetooth. Il sistema Bluez viene utilizzato come stack di protocollo. Per assicurarsi che le applicazioni funzionino con Bluetooth, è necessario installare i pacchetti di base bluez-libs e bluez-utils. Questi pacchetti forniscono diversi servizi e utilità necessari. Alcuni adattatori, quali ad es.Broadcom o AVM BlueFritz!, richiedono inoltre l'installazione del pacchetto bluez-firmware. Il pacchetto bluez-cups consente la stampa tramite connessioni Bluetooth.
Un sistema Bluetooth è composto da quattro strati interconnessi che forniscono la funzionalità desiderata:
L'adattatore e il driver adeguato per il supporto del kernel di Linux.
Utilizzati per il controllo del sistema Bluetooth.
Servizi che sono controllati dai file di configurazione e che forniscono la funzionalità.
Le applicazioni consentono la funzionalità fornita dai daemon che devono essere utilizzati e controllati dall'utente.
Quando si inserisce un adattatore Bluetooth, il sistema hotplug carica il relativo driver. Dopo aver caricato il driver, il sistema verifica i file di configurazione per controllare se è possibile avviare Bluetooth. In questo caso, stabilisce i servizi da avviare. Sulla base di queste informazioni, vengono avviati i rispettivi daemon. Gli adattatori Bluetooth vengono controllati dopo l'installazione. Quando ne viene rilevato uno o più di uno, Bluetooth viene abilitato. In caso contrario il sistema Bluetooth viene disattivato. Eventuali dispositivi Bluetooth aggiunti successivamente devono essere abilitati manualmente.
In Bluetooth, i servizi vengono definiti tramite i profili, quali ad es. il profilo di trasferimento dei file, il profilo principale di stampa e il profilo di rete personale PAN (personal area network). Per abilitare un dispositivo all'utilizzo dei servizi di un altro dispositivo, entrambi devono essere in grado di capire lo stesso profilo; questa parte di informazione di solito manca nel pacchetto e nel manuale del dispositivo. Purtroppo alcuni produttori non si uniformano rigorosamente alle definizioni dei singoli profili. Nonostante ciò, la comunicazione tra i dispositivi di norma funziona correttamente.
Nel testo seguente, i dispositivi locali sono quelli fisicamente connessi al computer. Tutti gli altri dispositivi ai quali è possibile accedere tramite connessioni wireless sono denominati dispositivi remoti.
In questa sezione viene descritta la configurazione di Bluetooth. Vengono fornite informazioni sui file di configurazione utilizzati, gli strumenti necessari e le modalità di configurazione di Bluetooth tramite YaST oppure manualmente.
Utilizzare il modulo Bluetooth di YaST, mostrato in Figura 22.2, «Configurazione di Bluetooth con YaST», per configurare il supporto Bluetooth nel sistema. Dopo che hotplug ha rilevato un adattatore Bluetooth nel sistema (ad es. durante l'avvio oppure all'inserimento dell'adattatore), Bluetooth viene avviato automaticamente con le impostazioni configurate in questo modulo.
Stabilire nella prima fase di configurazione se i servizi Bluetooth debbano essere avviati nel sistema. Se sono stati abilitati i servizi Bluetooth, è necessario eseguire due configurazioni. Innanzitutto il . Questo è il nome visualizzato da altri dispositivi quando viene individuato il computer. Sono disponibili due segnaposto: %h che indica il nome host del sistema (utile, ad esempio, se viene assegnato in modo dinamico dal server DHCP) e %d che inserisce il numero dell'interfaccia (utile solo se è presente più di un adattatore Bluetooth nel computer). Ad esempio, se si immette computer portatile %h nel campo e il DHCP assegna il nome unit123 al computer, gli altri dispositivi remoti lo risconosceranno come computer portatile unit123.
Il parametro si riferisce al comportamento del sistema locale durante il tentativo di connessione di un dispositivo remoto. La differenza è nella gestione del numero PIN. È possibile consentire la connessione di qualsiasi dispositivo senza il PIN oppure stabilire le modalità di scelta del PIN corretto se viene richiesto. Immettere il PIN (memorizzato nel file di configurazione) nell'apposito campo di input. Quando un dispositivo si connette deve utilizzare prima di tutto questo PIN. Se non riesce, tenta di nuovo senza alcun PIN. Per ottenere la sicurezza ottimale, si consiglia di scegliere l'opzione . Questa opzione consente di utilizzare PIN diversi per dispositivi (remoti) diversi.
Fare clic su per aprire la finestra di dialogo per la selezione e la configurazione dei servizi disponibili (denominati profili in Bluetooth). Tutti i servizi disponibili vengono visualizzati in un elenco; per attivarli o disattivarli fare clic su oppure . Fare clic su per aprire la finestra di dialogo in cui specificare argomenti aggiuntivi per il servizio selezionato (daemon). Si consiglia di non apportare nessuna modifica fino a quando non si è ascquistata familiarità con il servizio. Una volta completata la configurazione dei daemon, per uscire dalla finestra di dialogo fare clic su .
Nella finestra di dialogo principale, fare clic su per aprire la finestra di dialogo della sicurezza e specificare le impostazioni di cifratura, di autenticazione e di scansione. Quindi uscire dalla finestra di dialogo della sicurezza e tornare alla finestra di dialogo principale. Dopo aver chiuso la finestra di dialogo principale con , il sistema Bluetooth è pronto per l'utilizzo.
Dalla finestra di dialogo principale, è possibile anche aprire la finestra di dialogo . I servizi Bluetooth sono raggruppati in varie classi di dispositivi. In questa finestra di dialogo, scegliere la classe corretta per il proprio computer, quale ad es. o . La classe di dispositivo non è molto importante, a differenza della classe di servizio, anche questa impostata in questa sede. A volte i dispositivi remoti Bluetooth, quali ad esempio i cellulari, consentono soltanto determinate funzioni se sono in grado di rilevare la classe di servizio corretta nel sistema. Ciò avviene spesso per i cellulari che prevedono una classe denominata prima di consentire il trasferimento di file dal o al computer. È possibile scegliere più classi. Non risulta utile selezionare tutte le classi «senza motivo.» Nella maggior parte dei casi la selezione di default si rivela appropriata.
Per utilizzare Bluetooth per la configurazione di una rete, attivare nella finestra di dialogo e impostare la modalità del daemon con . Per una connessione di rete Bluetooth funzionale, un PAND deve funzionare nella modalità e il peer nella modalità . Per default, la modalità è preimpostata. Adattare il comportamento del PAND locale. Configurare inoltre l'interfaccia bnepX (X indica il numero del dispositivo nel sistema) nel modulo di YaST.
I file di configurazione dei singoli componenti del sistema Bluez si trovano nella directory /etc/bluetooth. Con la sola eccezione del file /etc/sysconfig/bluetooth per l'avvio dei componenti, che è modificato dal modulo di YaST.
I file di configurazione descritti di seguito possono essere modificati soltanto dall'utente radice. Attualmente, non esiste alcuna interfaccia utente grafica per la modifica di tutte le impostazioni. Le più importanti possono essere configurate mediante il modulo Bluetooth di YaST, descritto nella Sezione 22.2.2.1, «Configurazione di Bluetooth con YaST». Tutte le altre impostazioni sono rilevanti soltanto per gli utenti esperti che devono affrontare casi speciali. Di norma, le impostazioni di default risultano adeguate.
Un numero PIN fornisce la protezione di base contro connessioni indesiderate. I cellulari in genere chiedono il PIN al momento di stabilire il primo contatto (o quando viene configurato un contatto del dispositivo sul telefono). Perché due dispositivi siano in grado di comunicare, entrambi devono identificarsi con lo stesso PIN. Sul computer, il PIN si trova nel file /etc/bluetooth/pin.
![]() | Sicurezza delle connessioni Bluetooth |
|---|---|
Nonostante i numeri PIN, la trasmissione tra due dispositivi potrebbe non essere completamente sicura. Per default, l'autenticazione e la cifratura delle connessioni Bluetooth è disattivata. L'attivazione dell'autenticazione e della cifratura possono causare problemi di comunicazione con alcuni dispositivi Bluetooth. | |
Diverse impostazioni, quali ad esempio i nomi dei dispositivi e la modalità di sicurezza, possono essere modificate nel file di configurazione /etc/bluetooth/hcid.conf. Di norma, le impostazioni di default risultano adeguate. Il file contiene commenti che descrivono le opzioni delle diverse impostazioni.
Due sezioni nel file incluso sono definite come opzioni e dispositivo. La prima contiene informazioni generali che il file hcid utilizza per l'avvio. La seconda contiene impostazioni per i singoli dispositivi locali Bluetooth.
Una delle impostazioni più importanti della sezione opzioni è sicurezza automatica;. Se viene impostata su auto, il file hcid utilizzerà il PIN locale per le connessioni successive. Se non riesce, passa a nessuna e stabilisce comunque la connessione. Per maggiore sicurezza, si consiglia di configurare questa impostazione di default su utente per assicurarsi che all'utente venga richiesto di immettere il PIN ogni volta che viene stabilita una connessione.
Impostare il nome da visualizzare sull'altro computer nella sezione dispositivo. La classe di dispositivo, quale ad esempio Desktop, Laptop, o Server, viene definita in questa sezione. È inoltre possibile abilitare o disabilitare l'autenticazione o la cifratura.
L'operabilità di Bluetooth dipende dall'interazione dei diversi servizi. Sono necessari almeno due daemon di background: hcid (host controller interface daemon), che funge da interfaccia per il dispositivo Bluetooth e lo controlla, e sdpd (service discovery protocol daemon), che consente al dispositivo di individuare quali servizi sono resi disponibili dall'host. Se non vengono attivati automaticamente all'avvio del sistema, è possibile attivare sia hcid che sdpd con il comando rcbluetooth start. Questo comando può essere eseguito come utente radice.
Nei paragrafi seguenti vengono descritti in breve i maggiori strumenti shell da utilizzare con Bluetooth. Sebbene siano disponibili diversi componenti grafici per il controllo di Bluetooth, può risultare utile verificare questi programmi.
Alcuni dei comandi possono essere eseguiti solo come utente radice. Tra questi vi è il comando l2ping per la verifica della connessione al dispositivo remoto.
indirizzo_dispositivo
È possibile utilizzare hcitool per stabilire se sono stati rilevati dispositivi locali e remoti. Il comando hcitool dev elenca i dispositivi locali. L'output genera una riga nel formato nome_interfaccia indirizzo_dispositivo per ciascun dispositivo locale rilevato.
È possibile cercare i dispositivi remoti con il comando hcitool inq. Per ciascun dispositivo rilevato vengono restituiti tre valori: l'indirizzo del dispositivo, l'impostazione dell'orologio e la classe di dispositivo. L'indirizzo del dispositivo è importante poiché viene utilizzato dagli altri comandi per identificare il dispositivo di destinazione. L'impostazione dell'orologio serve principalmente per motivi tecnici. La classe specifica il tipo di dispositivo e il tipo di servizio come valore esadecimale.
Il comando hcitool nome può essere utilizzato per stabilire il nome del dispositivo di un dispositivo remoto. In caso di computer remoto, la classe e il nome del dispositivo corrispondono alle informazioni contenute in indirizzo-dispositivo/etc/bluetooth/hcid.conf. Gli indirizzi dei dispositivi locali generano un output di errore.
Il comando /usr/sbin/hciconfig fornisce ulteriori informazioni sul dispositivo locale. Se hciconfig viene eseguito senza argomenti, l'output mostra le informazioni sul dispositivo, quali ad esempio il nome del dispositivo (hciX), l'indirizzo fisico del dispositivo (un numero a 12 cifre nel formato 00:12:34:56:78) e le informazioni sulla quantità di dati da trasmettere.
hciconfig nome hci0 visualizza il nome che viene restituito dal computer quando riceve delle richieste dai dispositivi remoti. Come per le richieste di impostazioni del dispositivo locale, hciconfig può essere utilizzato per modificare tali impostazioni. Ad esempio, hciconfig PROVA nome hci0 imposta il nome su PROVA.
È possibile utilizzare il programma sdptool per verificare quali servizi sono resi disponibili da un dispositivo specifico. Il comando sdptool sfoglia restituisce tutti i servizi di un dispositivo. Utilizzare il comando sdptool indirizzo_dispositivocerca per cercare un servizio specifico. Questo comando esegue la scansione dei dispositivi accessibili per il servizio richiesto. Se uno dei dispositivi offre il servizio, il programma stampa il nome del servizio completo restituito dal dispositivo con una breve descrizione. Per visualizzare l'elenco di tutti i possibili codici di servizio, immettere sdptool senza parametri.
codice_servizio
In Konqueror, immettere l'URL bluetooth:/ per elencare i dispositivi Bluetooth remoti. Fare doppio clic su un dispositivo per ottenere una panoramica dei servizi da esso forniti. Spostandosi su uno dei servizi specificati con il mouse, la barra di stato del browser visualizza il profilo utilizzato dal servizio. Facendo clic sul servizio, si apre una finestra di dialogo dove specificare le operazioni da eseguire: salvare, utilizzare il servizio (è necessario avviare un'applicazione per farlo), oppure annullare l'azione. Contrassegnare la casella di controllo se non si desidera visualizzare di nuovo la finestra di dialogo ma si desidera che sia eseguita l'azione selezionata. Per alcuni servizi non è ancora disponibile il relativo supporto. Per altri è invece necessario installare pacchetti aggiuntivi.
In questa sezione vengono forniti due esempi tipici di possibili scenari Bluetooth. Nel primo esempio viene mostrato come stabilire una connessione di rete tra due host tramite Bluetooth. Nel secondo viene mostrata la connessione tra un computer e un cellulare.
Nel primo esempio, viene stabilita una connessione di rete tra gli host H1 e H2. I due host hanno gli indirizzi del dispositivo Bluetooth baddr1 e baddr2 (stabiliti su entrambi gli host con il comando hcitool dev come descritto sopra). È necessario identificare gli host con gli indirizzi IP 192.168.1.3 (H1) e 192.168.1.4 (H2).
La connessione Bluetooth viene stabilita utilizzando il pand (personal area networking daemon). I comandi seguenti devono essere eseguiti dall'utente radice. La descrizione concerne le azioni specifiche di Bluetooth e non fornisce una spiegazione dettagliata del comando di rete ip.
Immettere pand -s per avviare il pand nell'host H1. Successivamente, è possibile stabilire una connessione nell'host H2 con il comando pand -c . Se si immette ip baddr1link show in uno degli host per elencare le interface di rete disponibili, l'output deve contenere una voce del tipo seguente:
bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff
Invece di 00:12:34:56:89:90, l'output deve contenere l'indirizzo del dispositivo locale baddr1 oppure baddr2. Ora è necessario assegnare un indirizzo IP a questa interfaccia e attivarla. In H1, l'operazione può essere eseguita con i due comandi seguenti:
ip addr add 192.168.1.3/24 dev bnep0 ip link set bnep0 up
In H2:
ip addr add 192.168.1.4/24 dev bnep0 ip link set bnep0 up
Ora è possibile accedere a H1 da H2 tramite l'IP 192.168.1.3. Utilizzare il comando ssh 192.168.1.4 per accedere a H2 da H1, premesso che H2 esegua sshd, che in SUSE Linux è attivato per default. Il comando ssh 192.168.1.4 può essere eseguito anche da un normale utente.
Nel secondo esempio viene mostrata la modalità di trasferimento di una fotografia creata con un cellulare con fotocamera digitale integrata a un computer (senza costi aggiuntivi per la trasmissione di un messaggio multimediale). Anche se la struttura dei menu può variare da cellulare a cellulare, in genere la procedura è piuttosto simile. Fare riferimento al manuale del cellulare, se necessario. In questo esempio viene descritto il trasferimento di una fotografia da un cellulare Sony Ericsson a un computer portatile. È necessario che il computer disponga del servizio Obex-Push e consenta l'accesso al cellulare. Nella prima fase, viene reso disponibile il servizio sul computer portatile. L'operazione viene eseguita con il daemon opd dal pacchetto bluez-utils. Avviare il daemon con il comando seguente:
opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp
Vengono utilizzati due parametri importanti: --sdp registra il servizio con sdpd e --path /tmp indica al programma dove salvare i dati ricevuti, in questo caso in /tmp. È anche possibile specificare qualsiasi altra directory per la quale si dispone di accesso in scrittura.
Ora il cellulare deve riconoscere il computer. Per eseguire questa operazione, aprire il menu sul cellulare e selezionare . Se necessario, fare clic su prima di selezionare . Selezionare e attendere che il cellulare cerchi il computer portatile. Quando viene rilevato un dispositivo, sul display ne viene visualizzato il nome. Selezionare il dispositivo associato al computer portatile. Se viene richiesto il PIN, immettere il PIN specificato in /etc/bluetooth/pin. A questo punto il cellulare riconosce il computer portatile ed è in grado di scambiare i dati con esso. Uscire dal menu corrente e passare al menu dell'immagine. Selezionare l'immagine da trasferire e premere . Nel menu successivo, premere per selezionare una modalità di trasmissione. Selezionare . Nell'elenco deve essere visualizzato il computer portatile come dispositivo di destinazione. Selezionare il computer portatile per avviare la trasmissione. L'immagine viene quindi salvata nella directory specificata con il comando opd. Con la stessa procedura è possibile trasferire sul computer portatile anche le tracce audio.
Nel caso si incontrino difficoltà per stabilire la connessione, si consiglia di procedere come descritto nell'elenco seguente. Tenere presente che l'errore può essere presente sia da una sola parte che da entrambe le parti. Identificare possibilmente il problema con un altro dispositivo Bluetooth per verificare che il dispositivo non sia difettoso.
dev.
Nel caso non sia elencato in questo output, hcid non viene avviato oppure il dispositivo non viene riconosciuto come dispositivo Bluetooth. Le cause possono essere diverse. Il dispositivo potrebbe essere difettoso oppure potrebbe mancare il driver corretto. I computer portatili con Bluetooth integrato in genere dispongono di un comando di accensione e spegnimento per i dispositivi wireless, quali ad esempio WLAN e Bluetooth. Controllare nel manuale del computer portatile se questo comando è presente. Riavviare il sistema Bluetooth con il comando rcbluetooth restart e verificare la presenza di eventuali errori in /var/log/messages.
In caso positivo, installare bluez-bluefw e riavviare il sistema Bluetooth con il comando rcbluetooth restart.
inq restituisce altri dispositivi.Ripetere questo comando più di una volta. Potrebbero esserci interferenze nella connessione poiché la banda di frequenza di Bluetooth viene utilizzata anche da altri dispositivi.
Verificare che il numero PIN del computer (in /etc/bluetooth/pin) corrisponda a quello del dispositivo di destinazione.
Stabilire la connessione dal dispositivo remoto. Verificare se questo dispositivo riconosce il computer.
È possibile che la configurazione descritta nella Sezione 22.2.5.1, «Connessione di rete tra due host» non funzioni per diversi motivi. Ad esempio, è possibile che uno dei due computer non supporti il protocollo ssh. Provare il ping 192.168.1.3 oppure il ping 192.168.1.4. Se funziona, verificare che sshd sia attivo. Un altro possibile problema è che uno dei due dispositivi dispone già di impostazioni di rete che sono in conflitto con l'indirizzo 192.168.1.X dell'esempio. In questo caso, provare indirizzi diversi, quali ad esempio 10.123.1.2 e 10.123.1.3.
In , selezionare il dispositivo rispettivo e visualizzare l'elenco dei . Nel caso Obex-Push non sia visualizzato (anche dopo l'aggiornamento dell'elenco), il problema è dovuto a opd sul computer portatile. Verificare che opd si attivo. Verificare se si dispone dell'accesso in scrittura nella directory specificata.
Se è installato il pacchetto obexftp, su alcuni dispositivi è possibile utilizzare il comando obexftp -b . Su alcuni modelli di cellulari Siemens e Sony Ericsson è stata eseguita la prova con risultati positivi. Per ulteriori informazioni, fare riferimento alla documentazione in indirizzo_dispositivo -B 10 -p immagine/usr/share/doc/packages/obexftp.
Per una panoramica completa delle varie istruzioni per l'uso e la configurazione di Bluetooth, visitare il sito http://www.holtmann.org/linux/bluetooth/. Per ulteriori informazioni e istruzioni, vedere:
HOWTO ufficiale dello stack del protocollo Bluetooth integrato nel kernel: http://bluez.sourceforge.net/howto/index.html
Connessione a PDA PalmOS: http://www.cs.ucl.ac.uk/staff/s.zachariadis/btpalmlinux.html