Ubuntu 16.04 ändert Sound-Gerät nach dem Suspendieren, wie man das behebt?

16

Mein Setup verwendet derzeit einen Monitor, der über HDMI an meinen Laptop angeschlossen ist, und verwendet die Lautsprecher für Audio, nicht die eingebauten für Laptops. Wenn das Gerät hochfährt, wird standardmäßig HDMI verwendet, aber ich werde den Laptop häufig den ganzen Tag über anhalten und jedes Mal, wenn es wieder hochfährt, wird das Audiogerät auf die eingebauten Lautsprecher umgeschaltet.

Es ist kein großes Problem, wie Sie sich vorstellen können, aber es ist ärgerlich. Ich frage mich, ob ich ein Skript verwenden könnte, um die Auswahl von HDMI nach dem Fortsetzen oder Deaktivieren der eingebauten Lautsprecher zu erzwingen oder wie dies standardmäßig festgelegt wird. Zu Ihrer Information, beide eingebauten Lautsprecher befinden sich auf derselben 'Soundkarte', sind aber zwei verschiedene Geräte

Danke für jede Hilfe!

MattJC
quelle
Was ist deine Grafikkarte? Verwenden Sie einen proprietären Treiber?
Marcos Silveira

Antworten:

16

Wenn Sie nicht neu starten möchten, starten Sie einfach pulseaudio neu:

pulseaudio --kill; pulseaudio --start
rubo77
quelle
1
Das funktioniert bei mir nicht
Elliott
1
Dies half schon ohne den zweiten Startbefehl. Ich musste ein paar Sekunden warten und die Stummschaltung aufheben .
try-catch-finally
DIESES ERSTE BEFEHL FUNKTIONIERT !!!! BOOM es ist wieder da!
markackerman8-gmail.com
7

Ich hatte das gleiche Problem auf Ubuntu 17.10. Nach dem Anhalten oder sogar nach dem Dimmen des Displays wird mein Audioausgang immer von Digital Output (gewünscht) auf HDMI geändert, obwohl mein Display keine Lautsprecher hat. Die Zeile auskommentieren

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

in /etc/pulse/default.pahat den Trick wie in Sound über HDMI dauerhaft deaktivieren beschrieben .

Beachten Sie, dass das Festlegen der oben genannten Standardsenken das Verhalten nicht geändert hat. Das oben bereitgestellte Skript zum Festlegen des Audiokartenprofils nach dem Anhalten ist benutzerspezifisch.

Sambura
quelle
1
Ich weiß, dass dies ziemlich alt ist, aber diese deaktivierte automatische Umschaltung beim Anschließen von Kopfhörern an meinem System.
AmbientCyan
3

Ich habe dieses Problem behoben, indem ich das feste Impulsprofil auf Ausgabe eingestellt habe: HDMI-Stereo bei Wiederaufnahme.

Um eine Liste der Pulsprofile zu erhalten: pacmd list-cards. Um Pulsprofil zB zu ändern: pacmd set-card-profile 0 output:hdmi-stereo.

Informationen zum Ausführen von Skripten nach dem Anhalten: Skript beim Aufwecken ausführen?

Informationen zum Ausführen von pacmd als root: [Gelöst] Steuern Sie pulseaudio mit einem Shell-Skript über pacmd / Newbie Corner / Arch Linux Forums:

Grzegorz
quelle
2

Lauf:

$ pacmd list-cards

So zeigen Sie den Index Ihrer Karten an. Beispielsweise befindet sich meine PCI-Soundkarte auf Index 2. Das Soundprofil für die analoge Ausgabe (ebenfalls als Beispiel) wird aufgerufen output:analog-stereo.

Dann:

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

Um dies als Ausgabe festzulegen (probieren Sie es aus). Um es dauerhaft zu machen, bearbeiten /etc/pulse/default.paund fügen Sie Folgendes hinzu:

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

Starten Sie pulseaudio neu oder starten Sie es neu, um die Persistenz zu überprüfen.

Jonathan Deal
quelle
Das HDMI-Audio war beim Neustart standardmäßig immer persistent. Es wird erst nach einer Unterbrechung des Ruhezustands zu eingebauten Lautsprechern. Das zu tun, was Sie sagen, hindert das HDMI nicht daran, nach dem Aufwachen in eingebaute Lautsprecher zu wechseln. Gibt es eine Möglichkeit, den Befehl set-card-profile auszuführen, wenn das System aus dem Ruhezustand zurückkehrt?
MattJC
2

Dieses Problem hängt möglicherweise mit einem Problem mit Pulseaudio, Version 8, zusammen, wie in diesem (langen) Bug-Thread auf freedesktop.org beschrieben .

Grundsätzlich leitet Pulseaudio den Ton um, wenn er den Kontakt zu HDMI verliert, und sendet ihn nicht zurück, nachdem HDMI wieder angeschlossen wurde. Es ist in Version 9 behoben.

Befolgen Sie diese Anweisungen, um Version 8 auf das Verhalten früherer Versionen zurückzusetzen, und starten Sie den Computer neu.

Bearbeiten /etc/pulse/default.pa, um #die Zeile zu kommentieren ( an den Anfang zu setzen):

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

Stellen Sie dann die Tonausgabe in den Toneinstellungen ein und überprüfen Sie, ob sie bestehen bleibt, indem Sie den Bildschirm anhalten / fortsetzen oder ausblenden. Es hat bei mir funktioniert.

Paul H.
quelle
@PaulH. , @Toilal Wie haben Sie die /etc/pulse/default.paDatei bearbeitet ? sudo geditfunktioniert bei mir nicht
Py-ser
Verwenden Siegksu gedit /etc/pulse/default.pa
rubo77
Es wurde bereits auskommentiert - SNIF! aber der befehl .... pulseaudio --kill ..... funktioniert gut!
markackerman8-gmail.com
1

Das gleiche passiert für mich, aber nur, wenn der HDMI-Monitor beim Starten oder Fortsetzen des Betriebssystems nicht "wach" ist: In der Geräteliste unter Einstellungen> Ton wird nicht einmal HMDI / DisplayPort - Integriertes Audio angezeigt angezeigt.

Die Lösung für mich besteht darin, die Sitzung zu unterbrechen, sicherzustellen, dass der HDMI-Monitor eingeschaltet ist, und die Sitzung fortzusetzen.

Suspend in Ubuntu 18.04 LTS ist etwas verrückt hinter der PowerOff-Schaltfläche im Dropdown-Menü versteckt: Halten Sie die Maus Altdarauf gedrückt , oder drücken Sie , um die PowerOff-Schaltfläche in Suspend zu konvertieren. Sprechen Sie über versteckte Navigation!

mr0
quelle
+1, und danke, dass du beschrieben hast, wie du das versteckte Suspend findest! Einige (die vielleicht ein offenes Terminal haben) ziehen es möglicherweise vor, systemctl suspendstattdessen den Befehl auszuführen !
Zanna
Sorry Leute, ich muss gegen meinen eigenen Kommentar stimmen, da er völlig zufällig zu sein scheint: ob HDMI Audio in der Liste der Audiogeräte erscheint oder nicht :(
mr0
1

Behebung des Problems, dass PulseAudio den HDMI-Ton beim Anhalten ausschaltet

Diese "undokumentierte Funktion" erschien mit Ubuntu 16.04 und der neuen Version von PulseAudio 8.

Erstelle eine neue Datei /lib/systemd/system-sleep/tv-soundund kopiere in:

#!/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

HINWEIS: Benutzernamen ersetzenrick (dritte Zeile von unten) durch Ihren Benutzernamen.

Dann markieren Sie es ausführbar mit dem Befehl:

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

Ein zusätzlicher Schritt kann erforderlich sein, wenn sich output:hdmi-stereo(das Gerät für die meisten Benutzer) auf Ihrem System unterscheidet.

WinEunuuchs2Unix
quelle
Entschuldigung, aber das hat es nicht behoben. Muss ich mehr als das tun? alles neu starten? (Ich möchte nicht neu
starten
@ rubo77 Haben Sie die Benutzer-ID rickin Ihre eigene Benutzer-ID geändert ?
WinEunuuchs2Unix
Sicher. Wie du gesagt hast 😃
rubo77
0

Ich habe dieses Problem seit Ubuntu 9.04 gehabt. Es hat nie funktioniert und jetzt, wo die Kinder, die gerade HDMI oder Ubuntu haben, denken, dass das Problem etwas Neues ist, werden die Leute, die versuchen, sich die neuesten Änderungen im Setup anzusehen, in die Irre geführt. Lassen Sie mich das klarstellen: Dieses Problem gab es schon immer und niemand arbeitet daran. Ich habe mindestens 20 Stunden damit verbracht, dieses Problem zu untersuchen. Also, was ich in der Vergangenheit getan habe:

  1. Starten Sie neu
  2. Wenn ich beim Einschalten des Fernsehgeräts (HDMI-Ziel) die Maus zum richtigen Zeitpunkt bewege, wird der Ton in etwa 50% der Fälle wiederhergestellt. Dies ist ein zeitbezogenes / Handshake-Problem.
  3. In Ubuntu 14 würde ich die Bildschirmauflösung auf etwas anderes ändern als damals. Dies scheint mit Ubuntu 16 nicht zu funktionieren
  4. Lass es nicht überwintern. Eine Alternative ist nur ein zeitgesteuertes Herunterfahren. Später booten Sie einfach Ihren Computer und nicht neu. Denken Sie daran, dass es sich um ein TIMING-Problem handelt. Ich gehe also davon aus, dass eine der hier vorgestellten Ideen funktionieren kann, wenn das Timing Ihr System richtig antreibt.
Gast
quelle