logo pulseaudio

Changer la sortie son par défaut de PulseAudio sous Gnome

Gnome


Depuis quelque temps, la sortie son sélectionnée par défaut par mon ordinateur au démarrage de Debian était HDMI / DisplayPort. Malheureusement, je n’ai pas de sortie son sur cet écran. Je ne dirais pas que ce problème m’empêchait d’utiliser mon ordinateur, d’ailleurs une technique à base de clics me permettait de rétablir la situation à chaque redémarrage. Cependant, ce problème me faisait perdre mon temps pour rien finalement. J’ai donc décidé de prendre ce problème à bras le corps et vous faire partager la correction de celui-ci.

La solution manuelle à base de clics

Vous allez dans les paramètres du son
Fenêtre paramètrage gnome
Pour ensuite choisir votre périphérique de sortie audio
Fenêtre paramètre audio de Gnome
Le mien étant Line Out, je sélectionne celui-ci et le son sort par mes enceintes, parfait mais j’ai fait pas loin de 4 clics pour ça.

La configuration de PulseAudio

Le son est géré, sous Debian / Gnome, par le serveur de sons PulseAudio, la configuration de la sortie par défaut se fera donc autour de celui-ci. PulseAudio, nous permet de le configurer depuis le fichier ~/.config/pulse/default.pa ou encore depuis /etc/pulse/default.pa. Il est exécuté en tant que utilisateur donc chaque utilisateur peut définir sa propre configuration.

Attention: PulseAudio cherche sa configuration dans cet ordre, d’abord le fichier dans le HOME puis le fichier par défaut si le précédent n’existe pas. Si il trouve un fichier de configuration dans le HOME de l’utilisateur, il le charge et ne charge pas celui par défaut. Le fichier du home doit donc contenir l’ensemble des instructions nécessaire à la recherche des cartes audio et à la bonne configuration.

Ne voulant pas avoir de problème lors des mises à jour du paquet PulseAudio, je choisis de configurer PulseAudio dans mon HOME. En prenant soin de copier le fichier /etc/pulse/default.pa dans celui-ci afin de récupérer l’ensemble de la configuration par défaut.

$ cp /etc/pulse/default.pa ~/.config/pulse/default.pa

Maintenant que la configuration est dans mon HOME, nous pouvons commencer la recherche du réglage de la sortie audio par défaut. PulseAudio peut être configuré en console via l’utilitaire pacmd lorsque le serveur tourne.

Dans un premier temps, récupérons la liste des cartes son disponibles et leurs profils respectifs.

$ pacmd list-cards
1 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_00_1b.0>
    driver: <module-alsa-card.c>
    owner module: 6
    properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xf7d10000 irq 45"
...
    profiles:
        input:analog-stereo: Stéréo analogique Input (priority 60, available: unknown)
        output:analog-stereo: Stéréo analogique Output (priority 6000, available: unknown)
        output:analog-stereo+input:analog-stereo: Duplex stéréo analogique (priority 6060, available: unknown)
...
        output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5400, available: unknown)
...
        output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI) Output + Stéréo analogique Input (priority 5260, available: unknown)
        off: Éteint (priority 0, available: unknown)
    active profile: 
    sinks:
        alsa_output.pci-0000_00_1b.0.hdmi-stereo/#0: Audio interne Digital Stereo (HDMI)
        alsa_output.pci-0000_00_1b.0.analog-stereo/#1: Audio interne Stéréo analogique
...
    ports:
...             
        analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: yes)
            properties:
...             
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: yes)
            properties:
                device.icon_name = "video-display"
                device.product.name = "ASUS PB238"
        hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: yes)
            properties:
                device.icon_name = "video-display"
                device.product.name = "SyncMaster"

Nous pouvons voir ici que je n’ai qu’une seule et unique carte son ayant comme index 0, celle-ci à par contre une vingtaine de profils différents (je ne vous ai mis ici que les principaux).

Après avoir fait de multiples recherches à base de man ou encore dans la documentation PulseAudio. Le moyen le plus simple que j’ai trouvé est d’utiliser les profiles.

Afin de ne pas modifier le fichier de configuration directement, j’ai fait différents tests avec l’utilitaire pacmd et la solution trouvée est la commande suivante :

$ pacmd set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo

Le prototype de la commande est du style :

$ pacmd set-card-profile [card] [profile]
  • card peut être spécifié soit par l’index de la carte (soit 0 dans mon cas) soit par le nom de la carte débarrassé des balises <> (soit alsa_card.pci-0000_00_1b.0).
  • profile désigne le profile voulu de la carte (soit output:analog-stereo pour ma part).

Maintenant que nous avons la configuration qu’il nous faut, il nous faut spécifier celle-ci dans le fichier de configuration de PulseAudio afin qu’elle soit chargé correctement à chaque redémarrage. Comme dit précédemment, j’ai copié l’ensemble de la configuration dans ~/.config/pulse/default.pa pour ne pas modifier le fichier de configuration amener par le paquet Debian. La commande suivante permet d’ajouter à la fin du fichier de configuration la commande permettant de spécifier la sortie analogique comme sortie par défaut.

echo 'set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo' >> ~/.pulse/default.pa

Mon problème est réglé, j’espère que le votre aussi. À bientôt.

Commentaires

  • Violinux

    bonjour,
    juste une précision. La dernière commande doit être plutôt :

    echo ‘set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo’ >> ~/.config/pulse/default.pa

  • Wildebeest

    Bonjour,

    Un grand merci ! Je galérais avec ça depuis le passage à Xubuntu 20 (64 bits) : d’autant plus étonnant que le problème ne s’était pas présenté en 32 bits…
    :/

    Encore merci !
    😉

  • jpv31

    Un grand merci pour cette page ! Je galérais depuis quelques jours avec ma sortie audio qui était devenue, pour une raison inconnue, S/PDIF plutôt que la sortie analogique standard, m’obligeant à chaque redémarrage à des clics pour rétablir la sortie audio analogique.
    Par contre la commande echo ‘set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo’ >> ~/.pulse/default.pa n’a pas changé le problème et j’ai résolu le problème en lançant la commande set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo au démarrage du PC, avec un autostart.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.