This is an old revision of the document!
Table of Contents
Cuffia Bluetooth con Kodi su Rapsberry Pi
Come ascoltare l'audio con una cuffia bluetooth con Kodi installato su Raspberry Pi. Questa la piattaforma hardware e software:
- Raspberry Pi 3 Model B.
- Cuffie Bluetooth Mpow H1.
- Sistema Operativo Raspbian basato su Debian Stretch 9.11.
- Kodi 17.6 Krypton.
Il Raspberry Pi 3 include un controller Bluetooth, i pacchetti da installare sono:
- bluez - Include il demone bluetoothd che fornisce il servizio bluetooth e il programma di controllo bluetoothctl.
- bluealsa - Include il demone bluealsa che fornisce il servizio omonimo.
BlueZ, PulseAudio e BlueALSA
Molte ricette prevedono di installare PulseAudio per collegare BlueZ (il software che fornisce il supporto al protocollo Bluetooth) al sistema audio ALSA (i driver del kernel e relative librerie che gestiscono la scheda audio). In passato vi era una diretta integrazione fra BlueZ e ALSA e non era necessario alcun middleware, ma con BlueZ versione >= 5 è necessario una componente in più. In molti tuttavia preferiscono non installare PulseAudio a causa delle dipendenze e complicazioni che ciò comporta, perciò è nato BlueALSA. Questa componente software fornisce un device PCM chiamato bluealsa che risponde alle specifiche ALSA software PCM I/O plugin, non è una ALSA Kernel proc interface.
Questa ricetta utilizza bluealsa e non richiede lìinstallazione di PulseAudio. Per altri dettagli vedere la pagina PulseAudio e ALSA.
Pairing delle cuffie Bluetooth
Con il servizio bluetooth attivo è possibile eseguire il programma bluetoothctl che fornisce una console di controllo a riga di comando. Le prime operazioni da fare sono abilitare l'interfaccia Bluetooth del Raspberry Pi con il comando power on, attivare l'agente Bluetooth che gestirà il pairing con agent on, quindi definire tale agent come quello predefinito con default-agent e infine ricevere la lista dei device rilevati con scan on:
[bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent registered [bluetooth]# default-agent Default agent request successful [bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:AA:27:A0 Discovering: yes
Tenendo premuto il tasto cornetta delle cuffie per circa 7 secondi, queste entrano in modalità pairing (il LED lampeggia blu/rosso). Nella console bluetoothctl
si vede comparire il device Mpow H1 con il suo MAC address:
[NEW] Controller B8:27:EB:AA:27:A0 kodi [default] [NEW] Device EB:06:EF:F6:11:B4 Mpow H1
a questo punto è possibile fare il pairing, trust e connect:
pair EB:06:EF:F6:11:B4 trust EB:06:EF:F6:11:B4 connect EB:06:EF:F6:11:B4
Il pairing è la procedura per cui controller e device si riconoscono l'uno con l'altro, poiché le cuffie non hanno un'interfaccia di input (es. una tastiera) il pairing avviene senza digitare un PIN. Con il comando trust si indica che d'ora in poi vogliamo effettuare il paring automaticamente ogni volta che il device viene acceso. Quando si esegue il comando connect le cuffie segnalano l'evento con il messaggio vocale connected.
ATTENZIONE: Se il pacchetto bluealsa non è installato, il connect fallisce con il seguente errore:
[bluetooth]# connect EB:06:EF:F6:11:B4 Attempting to connect to EB:06:EF:F6:11:B4 Failed to connect: org.bluez.Error.Failed
Con il comando info è possibile verificare lo stato del device:
[Mpow H1]# info EB:06:EF:F6:11:B4 Device EB:06:EF:F6:11:B4 Name: Mpow H1 Alias: Mpow H1 Class: 0x240404 Icon: audio-card Paired: yes Trusted: yes Blocked: no Connected: yes LegacyPairing: no UUID: Headset (00001108-0000-1000-8000-00805f9b34fb) UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
Lo stato delle connessioni Bluetooth vengono salvate nella directory /var/lib/bluetooth/.
Da questo momento in poi la cuffia Bluetooth è disponibile come device per le librerie ALSA (e quindi per i comandi aplay, alsamixer, ecc.) semplicemente indicando come device la stringa bluealsa:HCI=hci0,DEV=EB:06:EF:F6:11:B4,PROFILE=a2dp (ovviamente il MAC address deve essere quello specifico del vostro dispositivo).
Test delle cuffie
I tool ALSA possono adesso usare la cuffia Bluetooth, è sufficiente indicare il device con l'opzione -D:
aplay -D bluealsa:HCI=hci0,DEV=EB:06:EF:F6:11:B4,PROFILE=a2dp \ /usr/share/sounds/alsa/Front_Center.wav
Purtroppo la periferica Bluetooth non viene elencata tra quelle disponibili dal comando aplay --list-devices, poiché BlueALSA è un plugin I/O, non un driver del kernel. Anche lanciando il comando alsamixer e premendo F6, la scheda audio bluealsa non viene elencata, ma è possibile scegliere l'opzione enter device name e digitare appunto bluealsa. Nella figura seguente ecco come viene evidenziata la periferica:
Esistono due canali di output: A2DP e SCO. Si tratta di due protocolli differenti per il trasporto dell'audio su Bluetooth. Il primo è l'acronimo per Advanced Audio Distribution Profile e serve per lo streaming audio da un device all'altro. È quello che useremo nel nostro caso. Il protocollo Synchronous Connection-Oriented è invece generalmente utilizzato per canali audio mono, ad esempio per l'auricolare dello smartphone. Esiste anche un canale di input, infatti la cuffia Mpow H1 ha un microfono integrato per effettuare le telefonate (infatti utilizza il protocollo SCO). Infine il mixer mostra anche il livello della batteria della cuffia.
/etc/asound.conf
Non è necessario rendere il device BlueALSA quello predefinito!
Impostare configurazione di sistema, non utente.
Il sistema ALSA utilizza un file di configurazione a livello di sistema /etc/asound.conf. In alternativa è possibile crearne uno per l'utente che esegue Kodi, nel nostro caso sarebbe /home/kodi/.asoundrc.
pcm.btheadset { type plug slave.pcm { type bluealsa device "EB:06:EF:F6:11:B4" profile "a2dp" } hint { show on description "Mpow H1 Bluetooth Headset" } } pcm.!default { type plug slave.pcm "btheadset" }
Integrazione con Kodi
Audio output device
In Kodi 17 è possibile scegliere il device per l'uscita audio dal menu Settings = System settings ⇒ Audio ⇒ Audio output device. Fortunatamente vengono elencati tutti i dispositivi ALSA, anche quelli di tipo PCM I/O plugin come BlueALSA. Purtroppo Kodi crea l'elenco dei dispositivi al suo avvio, quindi se il pairing avviene quando Kodi è già in esecuzione, la cuffia Bluetooth non viene mostrata; è necessario riavviare Kodi per poterla scegliere.
Pulsanti delle cuffie
I pulsanti delle cuffie Mpow H1 vengono riconosciuti da Kodi per le seguenti funzioni:
+ | Brano successivo |
---|---|
Cornetta | Pausa |
- | Brano precedente |