Après la mise à jour vers 16.04, le mode audio Bluetooth A2DP a cessé de fonctionner

29

J'ai un joli récepteur audio bluetooth connecté à ma chaîne stéréo HiFi, et je pouvais le connecter en 14.04 en tant que récepteur A2DP avec une belle qualité.

Après la mise à niveau vers 16.04, l'appareil se connecte uniquement en tant que casque et lorsque j'essaie de le basculer en mode A2DP, j'ai cette erreur dans mon syslog:

May 21 11:35:50 RRyS pulseaudio[6159]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink: Not connected

et la qualité de l'audio est abismal. Comment puis-je le réparer?

Rmano
la source
J'espère que cela sera utile à quelqu'un. J'ai perdu 3 heures à creuser dedans ... J'adore les mises à jour! ;-)
Rmano

Réponses:

39

Ce qui fonctionne pour moi, c'est de connecter le périphérique Bluetooth, de passer en mode HSP / HFP, de se déconnecter, de se reconnecter, puis de passer en mode A2DP.

rmfought
la source
4
Pareil ici. Cependant, il n'est pas censé être de cette façon et il fonctionnait correctement dans la version précédente.
eldad-a
Pour moi aussi, cela a fonctionné. Mais une vraie grosse douleur dans l'a ** pour quelque chose qui fonctionnait (presque) parfaitement en 15.10 et avant.
Dolanor
Oh croyez-moi, je suis d'accord. c'est une énorme douleur. La seule distribution que j'ai trouvée qui gère correctement BT dès la sortie de l'emballage est Solus OS.
rmfought
2
C'est super bizarre mais ça a marché!
ArcaneDominion
1
Merde. Je ne m'attendais pas à ce que cela fonctionne, mais c'est le cas.
Parth Thakkar
35

Il y a plusieurs bogues ouverts à ce sujet, vérifiez par exemple celui-ci (commencé en 15.05) et cet autre, bien plus ancien ; les causes en général ne sont pas bien comprises.

Avant de commencer à modifier les fichiers système, vous pouvez également vérifier qu'aucun haut-parleur Bluetooth ne sonne dans Ubuntu 16.04 (semble un bug différent) et que le bluetooth A2DP ne fonctionne pas sur 16.04 (résolu dans les commentaires par une mise à niveau du noyau).

Le correctif qui a fonctionné pour moi est le suivant --- grâce à l' utilisateur RobertFM dans Launchpad et SimFox3 dans les forums Arch . Toutes les instructions suivantes doivent être exécutées à partir d'un shell racine ( sudo -i). Faites attention et vérifiez.

  1. Tout d'abord, faites une sauvegarde de ces fichiers (on ne sait jamais):

    cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak
    cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
    cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
    
  2. Modifiez /etc/bluetooth/audio.confet rendez-le similaire à celui-ci:

    # Configuration file for the audio service
    # This section contains options which are not specific to any
    # particular interface
    [General]
    Enable=Gateway,Source
    
    # Switch to master role for incoming connections (defaults to true)
    Master=true
    
    # If we want to disable support for specific services
    # Defaults to supporting all implemented services
    #Disable=Gateway,Source,Socket
    Disable=Socket
    
    # SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
    # Defaults to HCI
    #SCORouting=HCI
    
    # Automatically connect both A2DP and HFP/HSP profiles for incoming
    # connections. Some headsets that support both profiles will only connect the
    # other one automatically so the default setting of true is usually a good
    # idea.
    AutoConnect=true
    
    # Headset interface specific options (i.e. options which affect how the audio
    # service interacts with remote headset devices)
    [Headset]
    
    # Set to true to support HFP, false means only HSP is supported
    # Defaults to true
    HFP=true
    
    # Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
    MaxConnected=2
    
    # Set to true to enable use of fast connectable mode (faster page scanning)
    # for HFP when incoming call starts. Default settings are restored after
    # call is answered or rejected. Page scan interval is much shorter and page
    # scan type changed to interlaced. Such allows faster connection initiated
    # by a headset.
    FastConnectable=true
    
    # Just an example of potential config options for the other interfaces
    #[A2DP]
    #SBCSources=1
    #MPEG12Sources=0
    
  3. Modifier /etc/pulse/default.paet commenter la ligne

    #load-module module-bluetooth-discover
    

    (il suffit vraiment d'ajouter le #au début)

  4. Modifiez /usr/bin/start-pulseaudio-x11et ajoutez la ligne /usr/bin/pactl load-module module-bluetooth-discoveraprès le chargement du module module-x11-xsmp; dans la pratique, vous devez modifier le fichier vers la fin pour avoir une strophe comme

    if [ x"$SESSION_MANAGER" != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
        # add this line here:
        /usr/bin/pactl load-module module-bluetooth-discover
    fi
    
  5. Redémarrez.

    Vous devriez maintenant pouvoir configurer votre appareil sur A2DP et profiter d'une musique de haute qualité:

    Paramètres sonores

    Notez que vous devez parfois déconnecter et reconnecter votre appareil pour réactiver A2DP:

    Appareils Bluetooth

    ... oui, c'est une boîte de bugs. Mais quand ça marche ça marche à merveille.

  6. Problèmes après le redémarrage

    Après tout cela, l'astuce semble parfois fonctionner juste après le prochain redémarrage. Dans un tel cas, essayez de suivre la réponse de rmfought :

    Ce qui fonctionne pour moi, c'est de connecter le périphérique Bluetooth, de passer en mode HSP / HFP, de se déconnecter, de se reconnecter, puis de passer en mode A2DP.

    ... fonctionne aussi pour moi (encore une fois, parfois). J'ai même dû désappairer une nouvelle fois le dongle.

  7. Si ça ne marche toujours pas ...

    Si cela ne fonctionne pas non plus pour vous, vous pouvez essayer avec ce script --- son auteur le tient à jour.

Rmano
la source
5
audio.conf n'est pas présent dans Ubuntu 16.04, seulement main.conf, cela fonctionnera-t-il?
Joakim Koed
2
@JoakimKoed --- vous avez raison, j'ai vérifié --- J'avais audio.conf-removeprobablement un reste de la mise à niveau. Je l'ai simplement recréé --- alors maintenant je suis dans le doute, peut-être que les points 3 et 4 sont nécessaires?
Rmano
1
Les étapes 3 et 4 n'ont pas été corrigées pour moi, et j'ai recréé audio.conf comme indiqué ci-dessus et aucune correction. Supprimer le périphérique Bluetooth et réparer les correctifs, mais cela à chaque fois que vous souhaitez utiliser l'audio Bluetooth n'est pas possible.
Thomas Carlisle
@ThomasCarlisle désolé d'entendre cela - ici cela a fonctionné (pas besoin de se réassocier) après la première fois.
Ça
1
Brillant! Ça fait l'affaire avec moi! Je vous suggère d'y ajouter une référence dans votre réponse, car tous ensemble semblent donner une solution pleinement opérationnelle au problème. À votre santé!
romanovzky
5

Ce n'est pas nécessairement une solution pour ceux qui ont besoin du micro, mais cela a fonctionné dans Ubuntu 16.04 pour moi:

sudo nano /etc/bluetooth/audio.conf

Et puis ajoutez Disable=Headsetsous [General].

[General]
Disable=Headset

Et redémarrez le service Bluetooth

sudo service bluetooth restart

Et tous les crédits à ce gars: https://jimshaver.net/2015/03/31/going-a2dp-only-on-linux/

Helgis
la source
Malheureusement, cela n'a pas fonctionné pour moi. L'icône de ma station d'accueil Bluetooth est grisée… Peut-être que c'est le pilote / module? XPS 13 9350 et ubuntu 16.04.
Dolanor
@Dolanor Je ne sais pas si c'est toujours un problème, mais si l'icône de la station d'accueil est grisée, cela signifie très probablement que votre adaptateur Bluetooth est bloqué. Essayez rfkill unblock bluetoothet peut-être même bluetoothctlet ensuite power on(dans le bluetoothctl-CLI).
FMaz
Cela a fonctionné dans mon cas zorinos 12
FDisk
Sur Ubuntu 18, il n'y a pas de /etc/bluetooth/audio.conffichier. J'ai ajouté Disable=Headsetà /etc/bluetooth/main.conf, redémarré le service, reconnecté mes écouteurs, mais le profil audio était par défaut off. Vous n'êtes pas sûr que cela a fonctionné?
Dan Dascalescu