25 votes

Remplacement de Pulseaudio par Pipewire dans Ubuntu 20.04

Depuis que j'ai installé ubuntu 20.04, je rencontre des problèmes avec le microphone de mon casque bluetooth qui n'est pas détecté par le système. Mon casque fonctionnait parfaitement sous Windows. De plus, je n'arrive pas à passer de AD2P à HFP dans ubuntu. J'ai donc décidé de supprimer pulseaudio et d'installer pipewire en espérant que cela résoudra mes problèmes.

Quelqu'un peut-il nous indiquer la marche à suivre pour procéder de la même manière ? J'ai fait des recherches à plusieurs reprises mais je n'ai pas réussi à trouver les bonnes étapes.

Merci beaucoup !

41voto

1nfern0 Points 1474

J'ai rencontré le même problème avec le Oneplus Wireless Z Bass edition. Le microphone de mon casque n'était pas détecté par PulseAudio et le problème est que mon casque n'a pas le profil HSP, seulement le profil HFP. Après avoir essayé pendant 2 jours, je suis arrivé à la solution de remplacer PulseAudio par le serveur de son Pipewire, qui supporte lui-même les profils HSP, HFP et A2DP. Il n'y aura donc pas besoin d'installer d'autres utilitaires comme ofono , phonesim . A noter également que mon problème n'a pas été résolu même après avoir suivi toutes les étapes de la configuration. ofono dans PulseAudio. J'ai donc décidé de remplacer PulseAudio par PipeWire.

Voici l'article détaillé que j'ai écrit pour résoudre ce problème, dont j'ajoute également les étapes ici. Vous pouvez les suivre et très probablement résoudre votre problème.

Le microphone du casque Bluetooth n'est pas détecté

Ouvrez votre terminal et suivez les étapes suivantes :

  1. Nous utiliserons un PPA pour ajouter Pipewire à Ubuntu 20.04, qui est maintenu régulièrement :

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
  2. Pour mettre à jour les paquets PPA dans votre système, procédez comme suit :

    sudo apt update
  3. Installer le paquet :

    sudo apt install pipewire
  4. Une dépendance doit également être installée avec Pipewire, sinon vous serez confronté au problème suivant "Le casque Bluetooth ne se connecte pas après l'installation de pipewire" . Installez la dépendance en :

    sudo apt install libspa-0.2-bluetooth
  5. Maintenant, il faut installer les bibliothèques du client :

    sudo apt install pipewire-audio-client-libraries
  6. Recharger le démon :

    systemctl --user daemon-reload
  7. Désactiver PulseAudio :

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
  8. Si vous êtes sous Ubuntu 20.04, vous devez également "masquer" le PulseAudio par :

    systemctl --user mask pulseaudio

Je n'en suis pas sûr mais, si possible, vous pouvez essayer de l'exécuter sur d'autres versions.
9. Après une nouvelle mise à jour de Pipewire, vous devez également activer l'option pipewire-media-session-service :

   systemctl --user --now enable pipewire-media-session.service
  1. Vous pouvez vous assurer que Pipewire fonctionne maintenant à travers :

    pactl info

    Cette commande donnera le résultat suivant, dans Nom du serveur vous pouvez voir :

    PulseAudio (on PipeWire 0.3.28)

    Les choses devraient maintenant fonctionner et vous pouvez voir votre microphone.

S'il n'apparaît pas, essayez de redémarrer Pipewire par cette commande :

systemctl --user restart pipewire

Editer : Vous devez désinstaller ofono et phonesim de votre système si vous les avez installés.

sudo apt remove ofono
sudo apt remove ofono-phonesim

Si votre microphone ne s'affiche toujours pas, vous pouvez essayer de redémarrer une fois, puis de retirer et d'appairer à nouveau votre périphérique Bluetooth pour vérifier s'il fonctionne maintenant.

J'espère vous avoir aidé à résoudre votre problème.

Si vous souhaitez annuler tous les changements que nous avons effectués, vous pouvez le faire en utilisant :

systemctl --user unmask pulseaudio
systemctl --user --now disable pipewire{,-pulse}.{socket,service}    
systemctl --user --now enable pulseaudio.service pulseaudio.socket

11voto

Sudeepam Pandey Points 111

Pour compléter la réponse de 1nfern0, pactl info me donnait un échec de connexion après avoir suivi toutes les étapes. J'ai contourné le problème en exécutant : systemctl --user --now enable pipewire pipewire-pulse .

Il se peut également que vous deviez redémarrer votre système une fois.

3voto

Zack Points 478

Les réponses ci-dessus étaient importantes, il y a une autre chose qui est possible, c'est que vous avez un ancien fichier de configuration dans /etc/pipewire/pipewire.conf qui empêchera le pipewire de fonctionner correctement, j'ai supprimé l'ensemble des /etc/pipewire et réinstallé pipewire y pipewire-pulse pour résoudre les problèmes et maintenant les choses fonctionnent.

1voto

BrunoF Points 149

Après en suivant les étapes décrites dans Réponse de 1nfern0 (lorsque PipeWire fonctionne), vous pouvez utiliser le Bash script suivant pour basculer entre A2DP (lecture haute fidélité, avec le microphone désactivé) et mSBC (pour une utilisation en tant qu'oreillette, avec le microphone activé) :

#!/bin/bash

# Toggle your bluetooth device (e.g., Bose Headphones) between A2DP mode (high-fidelity playback with NO microphone) and HSP/HFP, codec mSBC (lower playback quality, microphone ENABLED)
function tbt {
    current_mode_is_a2dp=`pactl list | grep Active | grep a2dp`
    card=`pactl list | grep "Name: bluez_card." | cut -d ' ' -f 2`

    if [ -n "$current_mode_is_a2dp" ]; then
        echo "Switching $card to mSBC (headset, for making calls)..."
        pactl set-card-profile $card headset-head-unit-msbc
    else
        echo "Switching $card to A2DP (high-fidelity playback)..."
        pactl set-card-profile $card a2dp-sink
    fi
}

Le script ci-dessus est une adaptation de : https://bbs.archlinux.org/viewtopic.php?pid=1973205#p1973205

1voto

AsrieltheGoat Points 11

pactl info me donnait un refus de connexion (après avoir suivi l'étape 9 de la réponse acceptée sur Ubuntu 20.04 LTS). J'ai corrigé le problème en utilisant wireplumber au lieu de pipewire-media-session-service .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X