web-dev-qa-db-fra.com

Ubuntu 16.04 change le périphérique audio après la suspension, comment y remédier?

Donc, ma configuration utilise actuellement un moniteur branché sur mon ordinateur portable via HDMI et utilise les haut-parleurs pour l'audio et non pour l'ordinateur portable intégré. Lorsque la machine démarre, elle utilise HDMI par défaut, mais je suspends souvent l'ordinateur portable toute la journée et, à chaque reprise, le périphérique audio est commuté sur les haut-parleurs intégrés.

Ce n'est pas un gros problème comme vous pouvez l'imaginer, mais c'est agaçant. Je me demande s'il existe un script que je pourrais utiliser pour le forcer à resélectionner HDMI après la reprise ou à désactiver les haut-parleurs intégrés, ou à définir par défaut une certaine manière. Pour votre information, les deux haut-parleurs intégrés se trouvent sur la même "carte son" mais sont deux appareils différents.

Merci pour toute aide!

12
MattJC

Si vous ne voulez pas redémarrer, redémarrez simplement pulseaudio:

pulseaudio --kill; pulseaudio --start
12
rubo77

J'ai eu le même problème sur Ubuntu 17.10. Après la suspension, ou même après la diminution de la luminosité de l’écran, la sortie audio (souhaitée) de ma sortie numérique (HDMI) sera toujours changée même si mon écran n’a pas de haut-parleur. Commentant la ligne

load-module module-switch-on-port-available

dans /etc/Pulse/default.pa a fait le tour comme décrit dans Désactiver le son via HDMI de façon permanente .

Notez que le réglage des puits par défaut comme indiqué ci-dessus n'a pas modifié le comportement. En outre, le script fourni ci-dessus pour définir le profil de la carte son après la suspension est spécifique à l'utilisateur.

6
sambura

J'ai résolu ce problème en réglant le profil Pulse fixe sur sortie: hdmi-stereo on resume.

Pour obtenir une liste des profils Pulse: pacmd list-cards. Pour modifier le profil Pulse, par exemple: pacmd set-card-profile 0 output:hdmi-stereo.

A propos de l'exécution du script après la suspension: Run Script on Wakeup?

À propos de l'exécution de pacmd en tant que root: [Résolu] Contrôlez pulseaudio avec un script shell via pacmd/Newbie Corner/Arch Linux Forums:

3
Grzegorz

Ce problème peut être lié à un problème avec Pulseaudio, version 8, comme indiqué dans ce fil de bogue (long) sur freedesktop.org .

Fondamentalement, Pulseaudio redirige le son lorsqu'il perd le contact avec HDMI et ne le renvoie pas après la reconnexion de HDMI. Il est corrigé dans la version 9.

Afin de ramener la version 8 au comportement des versions précédentes, suivez ces instructions et redémarrez.

éditez /etc/Pulse/default.pa pour commenter (ajoutez # au début de) la ligne:

#load-module module-switch-on-port-available

Réglez ensuite la sortie audio dans Paramètres audio et vérifiez qu’elle persiste en suspendant/reprend ou en effaçant l’écran. Cela a fonctionné pour moi.

2
Paul H.

Courir:

$ pacmd list-cards

Pour afficher l'index de vos cartes. Par exemple, ma carte son PCI est à l’indice 2. Le profil sonore de la sortie analogique (à nouveau à titre d’exemple) s’appelle output:analog-stereo.

Ensuite:

$ pacmd set-card-profile 2 output:analog-stereo

Pour définir ceci comme sortie (essayez-le). Pour le rendre permanent, éditez /etc/Pulse/default.pa et ajoutez:

set-card-profile 2  output:analog-stereo
set-default-sink 2

Redémarrez pulseaudio ou redémarrez pour vérifier la persistance.

2
Jonathan Deal

Correction de PulseAudio en désactivant le son HDMI sur Suspend

Cette "fonctionnalité non documentée" est apparue avec Ubuntu 16.04 et la nouvelle version de PulseAudio 8.

Créez un nouveau fichier /lib/systemd/system-sleep/tv-sound et copiez-le dans:

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    # Place your pre suspend commands here, or `exit 0`
    # if no pre suspend action required
    sleep 1
    ;;
  post/*)
    echo "Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` 
    # if no post suspend action required
    sleep 2
    export Pulse_RUNTIME_PATH="/run/user/1000/Pulse/"
    Sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo
    ;;
esac

NOTE: remplacez le nom d'utilisateur rick(troisième ligne à partir du bas) par votre nom d'utilisateur.

Puis marquez-le comme exécutable avec la commande:

Sudo chmod +x /lib/systemd/system-sleep/tv-sound

Une étape supplémentaire peut être requise si output:hdmi-stereo (le périphérique pour la plupart des utilisateurs) est différent sur votre système.

1
WinEunuuchs2Unix

Il en va de même pour moi, mais seulement si le moniteur HDMI n'est pas "réveillé" au démarrage ou à la reprise du système d'exploitation: la liste des périphériques dans Paramètres> Son ne s'affiche même pas HMDI/DisplayPort - Built -en Audio plus.

La solution pour moi est de suspendre la session, de s’assurer que le moniteur HDMI est activé, de reprendre la session.

Suspendre sous Ubuntu 18.04 LTS est caché derrière le bouton PowerOff du menu déroulant: maintenez la souris enfoncée ou appuyez sur Alt convertir le bouton PowerOff en suspension. Parlez de navigation cachée!

1
mr0

J'ai eu ce problème depuis Ubuntu 9.04. Cela n'a jamais fonctionné et maintenant que les enfants qui viennent juste de passer en HDMI ou juste Ubuntu pensent que le problème est quelque chose de nouveau, les gens qui essaient de regarder les derniers changements dans la configuration sont induits en erreur. Permettez-moi donc d’expliquer clairement: ce problème a toujours existé et personne n’y travaille. J'ai passé au moins 20 heures à étudier ce problème. Donc, ce que j'ai fait dans le passé:

  1. Redémarrer
  2. Tout en allumant le téléviseur (cible HDMI), si je bouge la souris au bon moment, le son est restitué peut-être 50% du temps. Il s'agit d'un problème de synchronisation/prise de contact.
  3. Dans Ubuntu 14, je changeais la résolution de l'écran pour qu'elle soit différente. Cela ne semble pas fonctionner avec Ubuntu 16
  4. Ne le laissez pas hiberner. Une alternative est juste de faire un arrêt chronométré. Plus tard, vous ne démarrez que votre ordinateur plutôt que de le redémarrer. N'oubliez pas qu'il s'agit d'un problème de timing. Je suppose donc que toutes les idées présentées ici peuvent fonctionner si le timing vous permet de piloter votre système correctement.
0
Guest