User Tools

Site Tools


doc:appunti:software:rpi_kodi_bluetooth_headset

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:software:rpi_kodi_bluetooth_headset [2020/06/07 08:16] – [Pulsanti delle cuffie] niccolodoc:appunti:software:rpi_kodi_bluetooth_headset [2020/08/14 10:18] (current) niccolo
Line 1: Line 1:
-====== Cuffia Bluetooth con Kodi su Rapsberry Pi ======+====== Cuffia Bluetooth con Kodi su Raspberry Pi ======
  
-Come ascoltare l'audio con una cuffia bluetooth con Kodi installato su Raspberry Pi. Questa la piattaforma hardware e software:+Come ascoltare l'audio da Kodi con una cuffia Bluetooth, il tutto su Raspberry Pi. Questa è la piattaforma hardware e software:
  
   * **Raspberry Pi 3 Model B**.   * **Raspberry Pi 3 Model B**.
Line 15: Line 15:
 ===== BlueZ, PulseAudio e BlueALSA ===== ===== BlueZ, PulseAudio e BlueALSA =====
  
-Molte ricette prevedono di installare **[[https://www.freedesktop.org/wiki/Software/PulseAudio|PulseAudio]]** per collegare **[[http://www.bluez.org/|BlueZ]]** (il software che fornisce il supporto al protocollo Bluetooth) al sistema audio **[[https://alsa-project.org/|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 **[[https://github.com/Arkq/bluez-alsa|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**.+La nostra soluzione non prevede l'utilizzo di **[[https://www.freedesktop.org/wiki/Software/PulseAudio|PulseAudio]]**. Molte ricette invece prevedono di installare PulseAudio per collegare **[[http://www.bluez.org/|BlueZ]]** al sistema audio **[[https://alsa-project.org/|ALSA]]**. Questo perché è necessario un //middleware// per far comunicare il software che implementa il protocollo Bluetooth (BlueZ) con i driver del kernel e relative librerie che gestiscono la scheda audio (ALSA). In passato vi era una integrazione diretta 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 **[[https://github.com/Arkq/bluez-alsa|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 [[..:linux:sa:pulseaudio]].+Pertanto le istruzioni che seguono utilizzano **bluealsa** e **non richiedono l'installazione di PulseAudio**. Per altri dettagli vedere la pagina [[..:linux:sa:pulseaudio]].
  
 ===== Pairing delle cuffie Bluetooth ===== ===== Pairing delle cuffie Bluetooth =====
Line 24: Line 24:
  
 <code> <code>
 +# bluetoothctl
 [bluetooth]# power on [bluetooth]# power on
 Changing power on succeeded Changing power on succeeded
Line 46: Line 47:
 <code> <code>
 pair EB:06:EF:F6:11:B4 pair EB:06:EF:F6:11:B4
-trust EB:06:EF:F6:11:B4 
 connect EB:06:EF:F6:11:B4 connect EB:06:EF:F6:11:B4
 +trust EB:06:EF:F6:11:B4
 </code> </code>
  
-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**.+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. Quando si esegue il comando **connect** le cuffie segnalano l'evento con il messaggio vocale **connected**. Con il comando **trust** si indica che d'ora in poi vorremo effettuare il paring e il connect automaticamente ogni volta che la cuffia viene accesa.
  
 **ATTENZIONE**: Se il pacchetto **bluealsa** non è installato, il connect fallisce con il seguente errore: **ATTENZIONE**: Se il pacchetto **bluealsa** non è installato, il connect fallisce con il seguente errore:
Line 82: Line 83:
 </code> </code>
  
-Lo stato delle connessioni Bluetooth vengono salvate nella directory **/var/lib/bluetooth/**.+Le preferenze delle connessioni Bluetooth (compreso lo stato di trust, ecc.) 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). 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).
Line 101: Line 102:
 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 **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#Advanced_Audio_Distribution_Profile_(A2DP)|Advanced Audio Distribution Profile]]** e serve per lo streaming audio da un device all'altro. È quello che useremo nel nostro caso. Il protocollo **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_protocols#Synchronous_Connection-Oriented_(SCO)_link|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. 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 **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#Advanced_Audio_Distribution_Profile_(A2DP)|Advanced Audio Distribution Profile]]** e serve per lo streaming audio da un device all'altro. È quello che useremo nel nostro caso. Il protocollo **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_protocols#Synchronous_Connection-Oriented_(SCO)_link|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 =====+===== Configurazione /etc/asound.conf =====
  
-FIXME Come rendere BlueALSA il device di default.+La configurazione appena fatta **non è sufficiente** per poter selezionare le cuffie Bluetooth in Kodi; se andiamo nel menu **Settings** = //System settings// => //Audio// => **Audio output device** vediamo che compaiono le periferiche integrate del Raspberry Pi (**PI: HDMI** e **PI: Analogue**) ed altre eventuali periferiche ALSA (ad esempio **ALSA: USB Advanced Audio Device, Analog** per una scheda audio USB), ma non vi è traccia del dispositivo Bluetooth.
  
-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**.+È necessario dichiarare il plugin bluealsa nel file **/etc/asound.conf** in questo modo:
  
 <file> <file>
Line 120: Line 121:
     }     }
 } }
 +</file>
  
 +Dopo aver **riavviato Kodi** - e solo se le cuffie hanno fatto il **connect** Bluetooth - sarà possibile selezionare il device audio **ALSA: Mpow H1 Bluetooth Headset** dal menu.
 +
 +Il file **/etc/asound.conf** ha valenza per l'intero sistema, in alternativa è possibile creare un file **$HOME/.asoundrc** valido solo per l'utente che esegue Kodi.
 +
 +Se si desidera che la periferica BlueALSA sia quella predefinita dal sistema ALSA (cioè quella utilizzata se non si indica il device con l'opzione -D), è sufficiente aggiungere una sezione al file di configurazione ''asound.conf'' (oppure alla versione personale dell'utente):
 +
 +<file>
 pcm.!default { pcm.!default {
     type plug     type plug
Line 131: Line 140:
 ==== Audio output device ==== ==== 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.+In Kodi 17 è possibile scegliere il device per l'uscita audio dal menu **Settings** = //System settings// => //Audio// => **Audio output device**. Qui vengono elencati tutti i dispositivi di tipo **ALSA Kernel** e quelli di tipo **PCM I/O plugin** che siano dichiarati in ''/etc/asound.conf''. Purtroppo Kodi crea l'elenco di questi dispositivi al suo avvio**se il connect avviene dopo che Kodi è già avviato, la cuffia Bluetooth non viene mostrata**. È necessario riavviare Kodi per poterla selezionare.
 ==== Pulsanti delle cuffie ==== ==== Pulsanti delle cuffie ====
  
 I pulsanti delle cuffie Mpow H1 vengono riconosciuti da Kodi per le seguenti funzioni: I pulsanti delle cuffie Mpow H1 vengono riconosciuti da Kodi per le seguenti funzioni:
  
-^ +         | Brano successivo +^ Cornetta           | Pausa              | 
-^ Cornetta Pausa             +^ +                  | Brano successivo   | 
--         Brano precedente  |+^ -                  | Brano precedente   | 
 + 
 +Le funzioni integrate direttamente nella cuffia e confermate da messaggi vocali nella cuffia stessa sono invece: 
 + 
 +^ Tenere permuto +                   | Alza il volume     | 
 +^ Tenere permuto -                   | Abbassa il volume  | 
 +Tenere permuto Cornetta per 3 sec  Disconnect         
 +Tenere permuto Cornetta per 4 sec  Pairing            | 
 +^ Tenere permuto Cornetta per 6 sec  | Power off          |
  
 ===== Web References ===== ===== Web References =====
  
   * **[[http://denvycom.com/blog/playing-audio-over-bluetooth-on-rasbperry-pi-command-line/|Playing Audio over Bluetooth on Rasbperry Pi (Using Bluealsa, Command Line)]]**   * **[[http://denvycom.com/blog/playing-audio-over-bluetooth-on-rasbperry-pi-command-line/|Playing Audio over Bluetooth on Rasbperry Pi (Using Bluealsa, Command Line)]]**
 +  * **[[https://www.raspberrypi.org/forums/viewtopic.php?t=247334|Set bluealsa as default sound output device]]**
   * **[[https://peppe8o.com/fixed-connect-bluetooth-headphones-with-your-raspberry-pi/|Connect Bluetooth Headphones with your Raspberry PI]]** - Using PulseAudio instead of BlueALSA.   * **[[https://peppe8o.com/fixed-connect-bluetooth-headphones-with-your-raspberry-pi/|Connect Bluetooth Headphones with your Raspberry PI]]** - Using PulseAudio instead of BlueALSA.
   * **[[https://stackoverflow.com/questions/6482798/a2dp-sco-pcm-hci|A2DP/SCO -PCM/HCI]]**   * **[[https://stackoverflow.com/questions/6482798/a2dp-sco-pcm-hci|A2DP/SCO -PCM/HCI]]**
   * **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles|List of Bluetooth profiles]]**   * **[[https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles|List of Bluetooth profiles]]**
   * **[[http://hitechreview05.blogspot.com/2018/09/mpow-h1-cuffie-bluetooth-recensione.html|Recensione cuffie Bluetooth Mpow H1]]**   * **[[http://hitechreview05.blogspot.com/2018/09/mpow-h1-cuffie-bluetooth-recensione.html|Recensione cuffie Bluetooth Mpow H1]]**
doc/appunti/software/rpi_kodi_bluetooth_headset.1591510602.txt.gz · Last modified: 2020/06/07 08:16 by niccolo