Son Bluetooth de mauvaise qualité - Debian Buster

Tags: #<Tag:0x00007f78b4a4ced0>

Salut tout le monde

Ça faisait longtemps que je n’avais pas fait un tour sur le forum ! :grin:
Sympa de voir que c’est resté en l’état où je l’avais laissé ou presque ^^

Bref, ce qui m’amène à vous c’est une mise à jour. Je suis passé de Stretch à Buster hier. :tada: :tada:

Et j’ai découvert que le bug qu’il y avait sur Stretch concernant le profil A2DP (pour avoir une meilleure qualité audio que le profil HFP) était toujours présent et m’empêchait de profiter de la bonne qualité de mon enceinte bluetooth…
https://wiki.debian.org/BluetoothUser/a2dp#Refused_to_switch_profile_to_a2dp_sink:_Not_connected

Qu’est-ce-que ce bug ?

Il s’agit en fait de GDM qui s’accapare le profil A2DP de pulseaudio pour l’écran de connexion, et du coup nous en tant qu’utilisateur, on ne peut pas utiliser ce profil pour l’enceinte Bluetooth et on a une qualité de **. :unamused:

Sauf que, je l’avais résolu sur Debian Stretch en suivant la méthode du wiki ci-dessus…
Là ça fonctionne pas sur Buster.

Capture%20du%202018-09-11%2021-05-39

La résolution que j’ai trouvée qui marche une fois sur deux

Bref, après quelques dizaines d’heures à explorer les recoins sombres du net et plusieurs fausses-pistes, j’ai réussi à trouver ma propre solution TEMPORAIRE.

À lancer une fois :
sudo systemctl --global disable pulseaudio.service pulseaudio.socket
(Désactive le démarrage de pulseaudio à l’ouverture de la session)

Connecter l’enceinte puis

sudo service ofono restart
sudo service bluetooth restart

et re-connecter l’enceinte puis choisir A2DP.
Si lorsque l’on active une autre sortie et qu’on revient sur le haut-parleur Bluetooth le champ est de nouveau en HSP/HFP, recommencer autant de fois que nécessaire les opérations ci-dessous :

pactl unload-module module-bluetooth-policy
pactl unload-module module-bluetooth-discover
pactl unload-module module-bluez5-discover
pactl unload-module module-bluez5-device
pactl load-module module-switch-on-connect
pactl load-module module-bluetooth-discover
sudo service ofono restart
sudo service bluetooth restart

Ma demande sur le forum

Néanmoins j’aimerais bien trouver une solution définitive et SURTOUT rapporter ce bug aux équipes concernées puisqu’il s’agit quand même d’utiliser une enceinte bluetooth sans se prendre la tête c’est pas rien pour la personne lambda !

Du coup, est-ce-que vous pourriez m’aider à chercher (d’abord) du côté de ofono puis de pulseaudio si c’est pas ofono le coupable ce qui ne fonctionne pas svp ?

Les logs pour mon problème

$ sudo alsactl init
No protocol specified
xcb_connection_has_error() returned true
Found hardware: "HDA-Intel" "Realtek ALC269VC" "HDA:10ec0269,15586707,00100202 HDA:80862809,15586507,00100000" "0x1558" "0x6707"
Hardware is initialized using a generic method
 $ sudo journalctl | grep pulse
 sept. 11 20:23:42 JEJE pulseaudio[1046]: [autospawn] core-util.c: Home directory not accessible: Permission non accordée
sept. 11 20:23:42 JEJE pulseaudio[1046]: [autospawn] lock-autospawn.c: Impossible d'accèder au verrou autonome.
sept. 11 20:23:42 JEJE pulseaudio[1046]: [pulseaudio] main.c: Failed to acquire autospawn lock
sept. 11 20:23:45 JEJE dbus-daemon[799]: [system] Activating via systemd: service name='org.freedesktop.RealtimeKit1' unit='rtkit-daemon.service' requested by ':1.41' (uid=117 pid=1253 comm="/usr/bin/pulseaudio --daemonize=no ")
sept. 11 20:23:59 JEJE pulseaudio[2280]: E: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.ofono.Error.InUse: The resource is currently in use
sept. 11 20:24:23 JEJE pulseaudio[2280]: E: [pulseaudio] backend-native.c: connect(): Périphérique ou ressource occupé
sept. 11 20:24:41 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="method_return", sender=":1.86" (uid=117 pid=1253 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.3" (uid=0 pid=814 comm="/usr/sbin/ofonod -n ")
sept. 11 20:24:41 JEJE pulseaudio[1253]: E: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.ofono.Error.InUse: The resource is currently in use
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="method_return", sender=":1.86" (uid=117 pid=1253 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.26" (uid=0 pid=1114 comm="/usr/lib/bluetooth/bluetoothd ")
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.86" (uid=117 pid=1253 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.26" (uid=0 pid=1114 comm="/usr/lib/bluetooth/bluetoothd ")
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.312" (uid=1000 pid=2280 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.26" (uid=0 pid=1114 comm="/usr/lib/bluetooth/bluetoothd ")
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.312" (uid=1000 pid=2280 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.26" (uid=0 pid=1114 comm="/usr/lib/bluetooth/bluetoothd ")
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.86" (uid=117 pid=1253 comm="/usr/bin/pulseaudio --daemonize=no ") interface="(unset)" member="(unset)" error name="org.freedesktop.DBus.Error.UnknownMethod" requested_reply="0" destination=":1.26" (uid=0 pid=1114 comm="/usr/lib/bluetooth/bluetoothd ")
sept. 11 20:24:49 JEJE dbus-daemon[799]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.312' (uid=1000 pid=2280 comm="/usr/bin/pulseaudio --daemonize=no ")
sept. 11 20:24:49 JEJE pulseaudio[1253]: E: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.ofono.Error.InUse: The resource is currently in use
sept. 11 20:25:03 JEJE pulseaudio[1253]: E: [pulseaudio] backend-native.c: connect(): Périphérique ou ressource occupé

Je tiens à préciser que dès que je modifie un fichier de configuration pulseaudio quelqu’il soit, il me crache à la figure et me fait ça :

Capture%20du%202018-09-12%2009-18-39

Du coup, pas de son, et je dois purger-installer pulseaudio :

$ sudo aptitude purge gnome gnome-core libcanberra-pulse libpulsedsp paprefs pavucontrol-qt pavucontrol-qt-l10n plasma-pa pulseaudio pulseaudio-equalizer pulseaudio-module-bluetooth pulseaudio-module-gsettings pulseaudio-module-zeroconf pulseaudio-utils python-dbus.mainloop.pyqt5 rtkit
Conserver les paquets suivants dans leur version actuelle :  
1)     python-sip [4.19.12+dfsg-1 (now, testing)]                 

     Leave the following dependencies unresolved:                 
2)     gnome-control-center recommande libcanberra-pulse          
3)     gnome-control-center recommande pulseaudio-module-bluetooth
4)     gnome-settings-daemon recommande pulseaudio                
5)     pavucontrol recommande pulseaudio                          
6)     speech-dispatcher recommande pulseaudio

un petit redémarrage ici…

sudo aptitude install gnome paprefs pavucontrol-qt pulseaudio-module-bluetooth pulseaudio-equalizer pulseaudio-module-gsettings pulseaudio-module-zeroconf pulseaudio-utils

Edit:
En fait il me fait ça tout le temps, c’est pas dû à mon intervention.
Pulseaudio est instable et ne fonctionne correctement que 1 démarrage sur 5 chez moi. J’ouvrirai un nouveau thread si le problème n’est pas résolu après celui-ci

Salut,

Est-ce-que ce tuto fonctionne chez vous svp ?

Ça m’a l’air de dater un peu vu qu’il est fait référence à l’utilisateur gdm.
Il faudrait peut-être tester avec Debian-gdm

Salut
Pas d’infos sur ton problème
Pour ce qui me concerne pulseaudio est très stable

apt policy pulseaudio
pulseaudio:
  Installé : 12.0-1
  Candidat : 12.0-1
 Table de version :
     12.2-2 200
        200 http://deb.debian.org/debian sid/main amd64 Packages
 *** 12.0-1 995
        995 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
     10.0-1+deb9u1 800
        800 http://deb.debian.org/debian stretch/main amd64 Packages

Ce n’est pas un service système mais un service utilisateur ( mon utilisateur ayant l’id 1001)

@debian:~$ systemctl status *pulse*
@debian:~$ systemctl --user status *pulse*
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-09-15 12:23:01 CEST; 3h 46min ago
 Main PID: 1449 (pulseaudio)
   CGroup: /user.slice/user-1001.slice/user@1001.service/pulseaudio.service
           └─1449 /usr/bin/pulseaudio --daemonize=no

sept. 15 12:22:58 debian systemd[1436]: Starting Sound Service...
sept. 15 12:23:01 debian systemd[1436]: Started Sound Service.
sept. 15 12:23:01 debian pulseaudio[1449]: E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedeskt

● pulseaudio.socket - Sound System
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-09-15 12:22:58 CEST; 3h 46min ago
   Listen: /run/user/1001/pulse/native (Stream)
   CGroup: /user.slice/user-1001.slice/user@1001.service/pulseaudio.socket

Re-salut :slight_smile:

J’ai exactement les mêmes sorties que toi :

$ apt policy pulseaudio
pulseaudio:
  Installé : 12.0-1
  Candidat : 12.0-1
 Table de version :
 *** 12.0-1 500
        500 http://ftp.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status

et

$ systemctl --user status *pulse*
● pulseaudio.socket - Sound System
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; disabled; vendor pre
   Active: active (running) since Sat 2018-09-15 15:13:20 CEST; 1h 41min ago
   Listen: /run/user/1000/pulse/native (Stream)
   CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.socket

sept. 15 15:13:20 JEJE systemd[2217]: Listening on Sound System.

● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor pr
   Active: active (running) since Sat 2018-09-15 15:13:22 CEST; 1h 41min ago
 Main PID: 2319 (pulseaudio)
   CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.service
           ├─2319 /usr/bin/pulseaudio --daemonize=no
           └─2320 /usr/lib/x86_64-linux-gnu/pulse/gsettings-helper

sept. 15 15:13:22 JEJE systemd[2217]: Starting Sound Service...
sept. 15 15:13:22 JEJE systemd[2217]: Started Sound Service.
sept. 15 15:13:22 JEJE pulseaudio[2319]: E: [pulseaudio] backend-ofono.c: Failed

SAUF cette derière ligne !

Edit:
Hum, il semble que même avec une carte son détectée, cette dernière ligne persiste :

$ systemctl --user status *pulse*
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor pr
   Active: active (running) since Sat 2018-09-15 17:00:59 CEST; 1min 40s ago
 Main PID: 2275 (pulseaudio)
   CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.service
           ├─2275 /usr/bin/pulseaudio --daemonize=no
           └─2278 /usr/lib/x86_64-linux-gnu/pulse/gsettings-helper

sept. 15 17:00:58 JEJE systemd[2172]: Starting Sound Service...
sept. 15 17:00:59 JEJE systemd[2172]: Started Sound Service.
sept. 15 17:00:59 JEJE pulseaudio[2275]: E: [pulseaudio] backend-ofono.c: Failed

● pulseaudio.socket - Sound System
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; disabled; vendor pre
   Active: active (running) since Sat 2018-09-15 17:00:56 CEST; 1min 42s ago
   Listen: /run/user/1000/pulse/native (Stream)
   CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.socket

sept. 15 17:00:56 JEJE systemd[2172]: Listening on Sound System.
Warning: Journal has been rotated since unit was started. Log output is incomple

je n’utilise pas ofono

apt policy ofono
ofono:
  Installé : (aucun)
  Candidat : 1.21-1
 Table de version :
     1.21-1 995
        995 http://deb.debian.org/debian buster/main amd64 Packages
        200 http://deb.debian.org/debian sid/main amd64 Packages
     1.18-1+b1 800
        800 http://deb.debian.org/debian stretch/main amd64 Packages

je ne peux pas t’en dire plus

What ?!
Tu m’as donné l’idée de supprimer ofono. J’avais déjà essayé la dernière fois et y’avait tout plein de dépendances GNOME !
Maintenant j’essaie et ça part tout seul ! − Comprends pas −

Bon, après redémarrage la fameuse ligne s’est transformée en :
sept. 15 17:10:24 JEJE pulseaudio[1609]: E: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.freedesktop.DBus.Error.ServiceUnknown: The name org.ofono was not provided by any .service files

Du coup comment savoir quel service essaie en vain d’appeler ofono ?

Edit:
C’est probablement pas important : https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1747878

il traine peut-etre une référence à ofono dans un fichier de configuration par exemple dans
/etc/pulse/default.pa

grep -i ofono /etc/pulse/default.pa

Non, c’est pas dans pulse.pa à priori…
j’ai essayé un grep sur /
Il m’a juste retourné l’entrée AppArmor de telepathy j’ai rien d’autre qui contienne ofono

De toute façon ça n’a pas l’air d’être dû à ça mon bug…
Faudrait essayer de chercher autre part qu’ofono

Que dit ceci:

systemctl list-unit-files --user|egrep 'pulse|blue'
grep blue /etc/pulse/default.pa
ls ~/.config/pulse/

Est-ce une bonne idée d’essayer de configuer avec “alsactl” (log de ton “problème”)
As-tu essayé de configurer tes sorties pulse avec hdajackretask ? (du paquet alsa-tools-gui)

sudo hdajackretask

Dans mon cas, sans hdajackretask, impossible de configurer un simple toggle casque/HP, raison pour laquelle je n’avais jamais utilisé pulseaudio.

Pulseaudio, c’est un peu…
1 - soit on arrive à le configurer (plutôt usine à gaz);
2 - ou on le quitte et on utilise un mixer audio.
ps: apulse permet d’avoir du son pour les applis qui n’auraient pas de son sans pulseaudio

»» apulse: PulseAudio emulation for ALSA
Pour lancer une appli / par exemple: “apulse firefox”
-.-.-.-.-.-.-.-.-.-.-.-.-
Et pour info, évolutions en cours pulseaudio unstable / rien de transcendant à priori:

pulseaudio (12.2-2) unstable;

  • Allow rounding without having to allow a random number of errors in tests/volume-test.c
  • Bump debhelper compat level to 11.
  • Bump Standards-Version
    Fri, 14 Sep 2018 20:16:14 -0300

pulseaudio (12.2-1) unstable;

  • New upstream version 12.2
  • Do not build esound compatibility anymore.
    Esound will not be part of buster, so no need to have the compat code built.
  • Add patch to allow a higher deviation for volume-test.c
1 J'aime

Salut @Verner

Merci pour ta réponse !
Voilà le retour des commandes :

$ systemctl list-unit-files --user|egrep 'pulse|blue'
pulseaudio.service                    disabled
pulseaudio.socket                     disabled
bluetooth.target                      static  
$ grep blue /etc/pulse/default.pa
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
$ ls ~/.config/pulse/
a150c8c5b0014899a1dc28e5fed624e3-card-database.tdb
a150c8c5b0014899a1dc28e5fed624e3-default-sink
a150c8c5b0014899a1dc28e5fed624e3-default-source
a150c8c5b0014899a1dc28e5fed624e3-device-volumes.tdb
a150c8c5b0014899a1dc28e5fed624e3-stream-volumes.tdb
cookie

Bah vu que (je crois) pulseaudio est une surcouche ALSA, j’ai pensé à redémarrer ALSA aussi, et l’erreur xcb_connection_has_error() returned true ne m’inspire pas vraiment confiance…

Non, je n’étais pas au courant de l’existence de cet outil ^^
J’essaie dès que j’ai du temps

bah le truc c’est qu’il y a tellement de liens entre pulseaudio et GNOME… que c’est difficile de troubleshooter où ça foire après un dist-upgrade. Et comme j’ai dit plus haut j’ai l’impression que PA se fout totalement de mes fichiers de configuration c’est ça qui m’embête.

PS: je précise que le paquet pulseaudio-module-bluetooth est bien installé chez moi

$ apt policy pulseaudio-module-bluetooth
pulseaudio-module-bluetooth:
  Installé : 12.0-1
  Candidat : 12.0-1
 Table de version :
 *** 12.0-1 500
        500 http://ftp.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status

Je viens d’essayer de lancer hdajackretask comme tu me l’as conseillé. Quand je configure le override de mon haut-parleur interne, il me met ce message :

Capture%20d%E2%80%99%C3%A9cran%20de%202018-09-17%2000-52-42

Si je killall pulseaudio ça ne change rien puisqu’il respawn automatiquement

Il y aurait pas mal de commentaires à rajouter, mais pas ce soir. En attendant, essaie ça:

pulseaudio -k
systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service

. + pour info

 pactl list sinks

pour savoir qui à la main sur la carte son

fuser -v /dev/snd/*
1 J'aime

Contre toute attente ce n’est non pas PulseAudio qui a la main sur la carte son mais :

$ sudo fuser -v /dev/snd/*
                     UTIL.       PID ACCÈS  COMMANDE
/dev/snd/controlC0:  timidity    958 F.... timidity
/dev/snd/pcmC0D0p:   timidity    958 F...m timidity
/dev/snd/seq:        timidity    958 F.... timidity
/dev/snd/timer:      timidity    958 f.... timidity

Après désinstallation de timidity,

$ sudo fuser -v /dev/snd/*
                     UTIL.       PID ACCÈS  COMMANDE
/dev/snd/controlC0:  jerome     2433 F.... pulseaudio

Et je vois ré-apparaître ma sortie son normale :tada: :tada:
Bravo pour le dépistage @grandtoubab ! :+1:

Merci beaucoup à toi aussi @Verner

Bon maintenant ya plus qu’à faire fonctionner correctement ce foutu Bluetooth en audio A2DP :wink:
Je reprends les tutos qui fonctionnaient pas et je vous donne des nouvelles très bientôt ^^

Edit:
La solution 2 du tutoriel debian fonctionne maintenant !
Un grand merci à vous deux, je m’en sortais vraiment pas dans ce problème :slightly_smiling_face:

1 J'aime

j’ai fait une modif pour eviter l’erreur sap tel que décrit https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803265

Dans /lib/systemd/system/bluetooth.service
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap

En tout cas bluetooth à l’air d’être prêt pour A2DP

systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-09-17 11:23:14 CEST; 5min ago
     Docs: man:bluetoothd(8)
 Main PID: 15594 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4317)
   Memory: 1.2M
   CGroup: /system.slice/bluetooth.service
           └─15594 /usr/lib/bluetooth/bluetoothd --noplugin=sap

sept. 17 11:23:14 debian systemd[1]: Starting Bluetooth service...
sept. 17 11:23:14 debian bluetoothd[15594]: Bluetooth daemon 5.50
sept. 17 11:23:14 debian systemd[1]: Started Bluetooth service.
sept. 17 11:23:14 debian bluetoothd[15594]: Starting SDP server
sept. 17 11:23:14 debian bluetoothd[15594]: Excluding (cli) sap
sept. 17 11:23:14 debian bluetoothd[15594]: Bluetooth management interface 1.14 initialized
sept. 17 11:23:14 debian bluetoothd[15594]: Failed to set mode: Blocked through rfkill (0x12)
sept. 17 11:23:14 debian bluetoothd[15594]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSource
sept. 17 11:23:14 debian bluetoothd[15594]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSink

Fait une modif ? où ? Quelle erreur SAP ?

lire attentivement mon message précédent
dans blueman l’enceinte bluetooth est affichée comme une oreillette mais pas grave:

  • appairage ok,
  • sélection pour sortie son ( synchroniser audio)ok,
  • profil audio AD2P sink ok.
    Sinon sans bidouille particulière, choix de l’enceinte bluetooth dans pavucontrol
    Capture%20d%E2%80%99%C3%A9cran%20du%202018-09-20%2013-25-13

Capture%20d%E2%80%99%C3%A9cran%20du%202018-09-20%2013-38-31

Capture%20d%E2%80%99%C3%A9cran%20du%202018-09-20%2013-27-10