Translation(s): English - Français- Italiano - 日本語 (Nihongo)


Usare il Bluetooth in un sistema Debian

Nota: la pagina tratta del Bluetooth su Debian per l'utente finale, per le informazioni per gli sviluppatori si veda la pagina Bluetooth.

Introduzione

Si suppone di avere un adattatore Bluetooth sul computer e un dispositivo Bluetooth (telefono cellulare o PDA). Questo documento descrive cosa fare per utilizzare la tecnologia Bluetooth per comunicare con altre periferiche Bluetooth.

I passi descritti di seguito sono necessari prima di poter utilizzare i servizi che offre Bluetooth, una volta configurato è ad esempio possibile

Per i dettagli si vedano i collegamenti a fondo pagina.

Preparazione

Installare il supporto per Bluetooth (pacchetto bluetooth):

Consultare il file /usr/share/doc/bluez/README.Debian.gz per capire come funzionano le cose.

Assicurarsi che il demone Bluetooth sia in esecuzione. In caso contrario farlo partire:

# service bluetooth status
bluetooth is running

# service bluetooth start

Accoppiamento

Per ragioni di sicurezza i dispositivi Bluetooth dialogheranno tra loro solo se sono stati prima "presentati" (un po' come nella vita reale :-)), questo processo viene chiamato accoppiamento.

Si noti che l'accoppiamento è solitamente necessaria solo la prima volta che due dispositivi interagiscono, dopodiché si ricorderanno l'uno dell'altro e non sarà necessario alcuno scambio di PIN. Tuttavia dipende dai dispositivi coinvolti (in alcuni ciò è configurabile).

Per accoppiarli serve un agente di chiavi d'accesso, le scelte sono:

Accoppiamento usando uno strumento grafico

Installare uno dei seguenti pacchetti:

Disconnettersi dalla sessione desktop e rifare l'accesso; questo è necessario affinché appaia correttamente il riquadro a comparsa sull'accoppiamento.

È ora possibile provare l'accoppiamento, sul dispositivo bisogna scegliere un menu simile a "impostazioni", "connessione" o "Bluetooth" e avviare una ricerca di altri dispositivi. Si dovrebbe trovare il sistema Debian con un nome simile a debian-0, dove debian è il nome dell'host, quindi selezionarlo; verrà richiesto un PIN, sceglierne uno di quattro cifre, tipo 2309.

Sul computer apparirà un avviso a comparsa che richiede il PIN, qualcosa come Accoppiamento richiesto dal telefono (xx:xx:xx:xx:xx:xx) dove telefono è il nome del telefono e xx:xx:xx:xx:xx:xx è il MAC.

Fare clic sull'avviso, ne apparirà un altro che chiede il PIN, inserire quello creato in precedenza e premere il tasto [Invio]; il telefono vede che il PIN corrisponde e lo visualizza sul suo display.

Entrambi i dispositivi sono ora accoppiati.

Accoppiamento usando la riga di comando

Se non si vuole o non si può usare Gnome o KDE, è anche possibile utilizzare bluetooth-agent o bluetoothctl per l'accoppiamento.

Usare bluetooth-agent

bluetooth-agent fa parte del pacchetto bluez, quindi se si utilizza Debian testing o unstable dovrebbe essere già installato.

Eseguire bluetooth-agent (da root), fornendo un PIN a caso tipo 4835:

# bluetooth-agent 4835

Poi, come sopra descritto, scegliere qualcosa di simile a "impostazioni", "connessione" o "Bluetooth" sul dispositivo ed avviare la ricerca di dispositivi Bluetooth. Selezionare il computer, una volta trovato; verrà poi richiesto un codice PIN: inserire quello fornito a bluetooth-agent e l'operazione sarà completata.

Nota: Invece di avviare il processo di accoppiamento del telefono, è anche possibile farlo dal computer: avviare bluetoogh-agent come spiegato sopra, quindi eseguire un comando che tenterà di connettersi al cellulare, ad esempio:

rfcomm connect hci0 <indirizzo telefono>

dove <indirizzo telefono> è l'indirizzo bluetooth come mostrato da hcitool scan (si noti che funzionerà solo se il telefono è rilevabile, anche se il computer non necessita di esserlo). A questo punto il telefono dovrebbe chiedere di confermare il tentativo di connessione tramite un PIN, inserire quello utilizzato con bluetooth-agent.

Usare bluetoothctl

Se bluetooth-agent non è disponibile, provare bluetoothctl:

Avviare il comando interattivo bluetoothctl. Inserire "help" per ottenere un elenco dei comandi disponibili.

Usare un mouse Bluetooth

Per usare un mouse Bluetooth, è prima necessario che il supporto per Bluetooth sia installato nel sistema . Vedere sopra.

Se la macchina ha un ambiente grafico con una GUI per l'accoppiamento dei dispositivi Bluetooh, è probabile che si possa rilevare e appaiare facilmente il proprio dispositivo da lì. Vedere sopra come fare l'accoppiamento usando uno strumento grafico.

Se ciò non ha successo o si necessita di usare la riga di comando si può provare eseguendo:

hcitool scan

per ottenere l'indirizzo MAC bluetooth del mouse.

Una connessione iniziale può essere fatta con

hidd --connect <BTaddress>

dove <BTaddress> è l'indirizzo MAC ottenuto con il comando precedente.

Per abilitare riconnessioni automatiche successive (ad esempio al riavvio), è necessario eseguire

/usr/share/doc/bluez/examples/test-device trusted <BTaddress>

per contrassegnare il dispositivo come fidato.

Risoluzione dei problemi

Problemi generici di accoppiamento

Affinché l'accoppiamento funzioni come descritto, l'interfaccia Bluetooth del computer deve essere rilevabile, un dongle Bluetooth può partire in modalità nascosta (qui la segnalazione del bug).

Per risolvere questo problema è possibile eseguire:

# dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable

Oppure usando hciconfig:

# hciconfig hci0 piscan

hciconfig dovrebbe mostrare il flag ISCAN PSCAN, indicando che il bluetooth è rilevabile (cioè può essere scansionato); una volta terminato l'accoppiamento è bene nascondere nuovamente il computer:

# dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:off

Oppure usando hciconfig:

# hciconfig hci0 noscan

Comandi utili

Mostrare il dispositivo Bluetooth (per dimostrare che è stato installato correttamente)

hcitool dev

Cercare dispositivi Bluetooth remoti

hcitool scan

Riavviare il servizio Bluetooth

sudo service bluetooth restart

Forzare la connessione al dispositivo

sudo hidd --connect <indirizzo_BT>

File di configurazione utili

/etc/default/bluetooth - Impostazione predefinita HID bluez, abilitare per mouse e tastiere:

HID2HCI_ENABLED=1

/etc/bluetooth/hcid.conf - Impostazioni HCI bluez, configura le informazioni statiche del dispositivo:

device 00:1E:52:FB:68:55 {
    name "Apple Wireless Keyboard";
    auth enable;
    encrypt enable;}

Problemi di KDE

Dal momento che il PIN dovrebbe essere implementato a livello utente, bisogna apportare alcune modifiche al file /etc/bluetooth/hcid.conf.

commentare la seguente riga:

passkey "2309";

e aggiungere questa subito sotto (nota: kdebluetooth include il programma kbluepin):

# passkey "2309";
pin_helper /usr/bin/bluez-pin;

KDE si aspetta anche che sia presente il file /etc/bluetooth/link_key:

# touch /etc/bluetooth/link_key
# chmod 644 /etc/bluetooth/link_key
# service bluetooth restart

Eseguire kbluetoothd, cliccare sull'icona Bluetooth nella barra delle applicazioni, questo esegue Konqueror con l'URL Bluetooth://. Si dovrebbe essere in grado di vedere il dispositivo e fare alcuni trasferimenti di file scegliendo l'adeguato protocollo di trasferimento.

Scansionare alla ricerca del PC dal dispositivo dovrebbe aprire una finestra in KDE che chiede un PIN, ora è possibile inviare file al PC (KDE dovrebbe avviare un programma per gestire questa operazione).

Informazioni relative a GNOME

In Debian Wheezy con Gnome Shell le impostazioni per il Bluetooth possono essere trovate in

BluetoothUser/Personal_File_Sharing_Preferences_Receive_Files_over_Bluetooth.png

Impossibile connettersi a HSP/HFP

La versione 3.6 di Bluez è affetta da bug e non può commutare da A2DP a HSP/HFP. Questo protocollo permette all'utente di usare il microfono (ma il suono ha una qualità inferiore). Si può vedere in /var/log/syslog:

[pulseaudio] module-bluez5-device.c: Refused to switch profile to headset_head_unit: Not connected

Per risolvere questo problema, si deve retrocedere la versione a Bluez 3.5 o aggiornarlo. Ecco un esempio di come installare la versione che è contenuta nel repository experimental (3.40 al momento della stesura di questo articolo). Prima aggiungere in /etc/apt/sources.list la riga

deb http://httpredir.debian.org/debian experimental main

e poi eseguire

sudo apt-get update && sudo apt-get -t experimental install bluez 

Dopo un riavvio di pulseaudio o un riavvio di sistema, si dovrebbe poter usare HSP/HFP.

Impossibile riconnettersi dopo sospensione

Può succedere che non è possibile riconnettersi automaticamente ad un dispositivo dopo che va in sospensione. Per esempio, si potrebbero vedere gli errori seguenti nei propri log:

bluetoothd[487]: Authentication attempt without agent
bluetoothd[487]: Access denied: org.bluez.Error.Rejected

Ciò può essere dovuto al fatto che il dispositivo non è contrassegnato come "fidato". Per risolvere il problema provare il comando seguente in una shell bluetoothctl:

trust 00:1D:43:6D:03:26

dove 00:1D:43:6D:03:26 è l'identificativo del dispositivo per l'altoparlante.

Si può anche volere avere Pulsaudio che si connette automaticamente ad un output appena rilevato, aggiungendo quanto segue a ~/.config/pulse/default.pa:

# passare automaticamente ai dispositivi appena connessi
load-module module-switch-on-connect

Nota: questa soluzione è stata presa dal wiki di Arch Linux.

Ci si può connettere, ma non c'è audio

Se si ottiene l'errore:

Connection Failed: blueman.bluez.errors.DBusFailedError: Protocol Not available

è dovuto al fatto che il backend Pulseaudio non può comunicare con Bluetooth a causa di un pacchetto mancante. Installarlo:

sudo apt install pulseaudio-module-bluetooth

poi assicurarsi che il modulo venga caricato:

pactl load-module module-bluetooth-discover

Una volta fatto ciò, eliminare il dispositivo Bluetooth dalla propria configurazione e rifare l'appaiamento.

Problemi di qualità/A2DP

Per maggiori informazioni vedere BluetoothUser/a2dp.

Vedere anche

Collegamenti esterni


CategoryHardware CategoryModem CategorySound CategoryNetwork CategoryWireless