Ubuntu 16.04 zmienia urządzenie dźwiękowe po zawieszeniu, jak to naprawić?

18

Tak więc moja konfiguracja polega obecnie na korzystaniu z monitora podłączonego do mojego laptopa przez HDMI i używania głośników do audio, a nie wbudowanych laptopów. Podczas rozruchu maszyna domyślnie korzysta z HDMI, ale często zawieszam laptopa na cały dzień i po wznowieniu przełącza urządzenie dźwiękowe na wbudowane głośniki.

Nie jest to duży problem, jak można sobie wyobrazić, ale jest denerwujący, zastanawiam się, czy istnieje skrypt, który mógłby użyć, aby zmusić go do ponownego wyboru HDMI po wznowieniu lub wyłączeniu wbudowanych głośników, lub ustawić jako domyślny jakiś sposób. FYI oba wbudowane głośniki znajdują się na tej samej „karcie dźwiękowej”, ale są to dwa różne urządzenia

Dzięki za wszelką pomoc!

MattJC
źródło
Jaka jest twoja karta graficzna Czy używasz jakiegoś zastrzeżonego sterownika?
Marcos Silveira

Odpowiedzi:

18

Jeśli nie chcesz restartować, po prostu uruchom ponownie pulseaudio:

pulseaudio --kill; pulseaudio --start
rubo77
źródło
1
to nie działa dla mnie
Elliott,
1
Pomogło to bez drugiego polecenia startu. Musiałem poczekać kilka sekund i wyłączyć wyciszenie wyjścia .
try-catch-wreszcie
TO DZIAŁA PIERWSZE POLECENIE !!!! BOOM to powraca!
markackerman8-gmail.com
7

Miałem ten sam problem na Ubuntu 17.10. Po zawieszeniu, a nawet po przyciemnieniu wyświetlacza, zawsze zmieniałbym wyjście audio z wyjścia cyfrowego (pożądanego) na HDMI, nawet jeśli mój wyświetlacz nie ma żadnych głośników. Komentowanie linii

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

w /etc/pulse/default.pazałatwiło sprawę, jak to opisano w Wyłączenie dźwięku przez HDMI na stałe .

Zauważ, że ustawienie domyślnych tonów, jak wskazano powyżej, nie zmieniło zachowania. Ponadto skrypt podany powyżej, aby ustawić profil karty dźwiękowej po zawieszeniu, jest specyficzny dla użytkownika.

sambura
źródło
1
Wiem, że to dość stare, ale to wyłączone automatyczne przełączanie podczas podłączania słuchawek w moim systemie.
AmbientCyan
3

Rozwiązałem ten problem, ustawiając stały profil impulsu na wyjście: hdmi-stereo przy wznowieniu.

Aby uzyskać listę profili impulsowych: pacmd list-cards. Aby zmienić profil tętna, np pacmd set-card-profile 0 output:hdmi-stereo. :

Informacje o uruchamianiu skryptu po zawieszeniu: uruchomić skrypt w Wakeup?

Informacje o uruchamianiu pacmd jako root: [Rozwiązane] Kontroluj pulseaudio za pomocą skryptu powłoki za pośrednictwem forum pacmd / Newbie Corner / Arch Linux:

Grzegorz
źródło
2

Biegać:

$ pacmd list-cards

Aby wyświetlić indeks swoich kart. Na przykład moja karta dźwiękowa pci ma indeks 2. Wywoływany jest profil dźwiękowy dla wyjścia analogowego (ponownie jako przykład) output:analog-stereo.

Następnie:

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

Aby ustawić to jako wynik (spróbuj). Aby było trwałe, edytuj /etc/pulse/default.pai dodaj:

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

Uruchom ponownie pulseaudio lub uruchom ponownie, aby sprawdzić trwałość.

Jonathan Deal
źródło
Dźwięk HDMI był zawsze domyślny przy ponownym uruchomieniu, zmienia się tylko w głośniki wbudowane po wznowieniu ze stanu uśpienia. Robienie tego, co mówisz, nie powstrzymuje zmiany HDMI na wbudowane głośniki po przebudzeniu. Czy istnieje sposób na uruchomienie komendy set-card-profile po wznowieniu działania systemu ze stanu uśpienia?
MattJC
2

Ten problem może być związany z problemem z Pulseaudio, wersja 8, jak opisano w (długim) wątku błędu na freedesktop.org .

Zasadniczo Pulseaudio przekierowuje dźwięk, gdy traci kontakt z HDMI i nie zwraca go po ponownym podłączeniu HDMI. Zostało to naprawione w wersji 9.

Aby przywrócić wersję 8 do zachowania poprzednich wersji, postępuj zgodnie z tymi instrukcjami i uruchom ponownie komputer.

edytuj, /etc/pulse/default.paaby skomentować (dodaj #na początku) linię:

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

Następnie ustaw wyjściowy dźwięk w Ustawieniach dźwięku i sprawdź, czy nadal występuje, zawieszając / wznawiając lub wygaszając ekran. To zadziałało dla mnie.

Paul H.
źródło
@PaulH. , @Toilal Jak edytowałeś /etc/pulse/default.paplik? sudo geditnie działa dla mnie
Py-ser,
usegksu gedit /etc/pulse/default.pa
rubo77
Zostało to już skomentowane - SNIF! ale polecenie .... pulseaudio --kill ..... działa dobrze!
markackerman8-gmail.com
1

To samo dzieje się dla mnie, ale tylko wtedy, gdy monitor HDMI nie jest „wybudzony” podczas uruchamiania lub wznawiania systemu operacyjnego: lista urządzeń w Ustawieniach> Dźwięk nawet nie pokazuje HMDI / DisplayPort - Wbudowane audio .

Rozwiązaniem dla mnie jest zawieszenie sesji, upewnienie się, że monitor HDMI jest włączony, wznowienie sesji.

Zawieszenie w Ubuntu 18.04 LTS jest nieco szaleńczo ukryte za przyciskiem PowerOff w rozwijanym menu: przytrzymaj wciśnięty przycisk myszy lub naciśnij, Altaby przekształcić przycisk PowerOff w Suspend. Mów o ukrytej nawigacji!

mr0
źródło
+1 i dziękuję za opisanie, jak znaleźć ukryte zawieszenie! Niektórzy (którzy mogą mieć otwarty terminal) może wolą systemctl suspendzamiast tego uruchomić polecenie !
Zanna,
Niestety, muszę głosować przeciwko własnemu komentarzowi, ponieważ wydaje się całkowicie przypadkowy: czy HDMI Audio pojawia się na liście urządzeń dźwiękowych, czy nie :(
mr0
1

Naprawianie PulseAudio wyłączające dźwięk HDMI przy zawieszeniu

Ta „nieudokumentowana funkcja” pojawiła się wraz z Ubuntu 16.04 i nową wersją PulseAudio 8.

Utwórz nowy plik /lib/systemd/system-sleep/tv-soundi skopiuj w:

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

UWAGA: zastąp nazwę użytkownika rick(trzeci wiersz od dołu) nazwą użytkownika.

Następnie zaznacz plik wykonywalny za pomocą polecenia:

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

Dodatkowy krok może być wymagany, jeśli output:hdmi-stereo(urządzenie dla większości osób) jest inne w twoim systemie.

WinEunuuchs2Unix
źródło
przepraszam, ale to nie naprawiło. Czy muszę robić więcej niż to? zrestartować coś? (Nie chcę restartować, bo to i tak rozwiązuje problem w moim systemie)
rubo77 29.04.17
@ rubo77 Czy zmieniłeś identyfikator użytkownika rickna własny?
WinEunuuchs2Unix
Pewnie. Jak powiedziałeś 😃
rubo77
0

Miałem ten problem od Ubuntu 9.04. To nigdy nie zadziałało, a teraz, gdy dzieci, które właśnie dostały HDMI lub właśnie Ubuntu, myślą, że problem jest czymś nowym, więc ludzie próbujący spojrzeć na najnowsze zmiany w konfiguracji są wprowadzani w błąd. Pozwólcie, że wyjaśnię: ten problem zawsze istniał i nikt nad nim nie pracuje. Badałem ten problem przez co najmniej 20 godzin. Więc co zrobiłem w przeszłości:

  1. Restart
  2. Włączając telewizor (cel HDMI), jeśli poruszę myszką w odpowiednim momencie, przywraca dźwięk może 50% czasu. Jest to problem związany z synchronizacją / uzgadnianiem.
  3. W Ubuntu 14 zmieniłbym rozdzielczość ekranu na coś innego niż z powrotem. To nie wydaje się działać z Ubuntu 16
  4. Nie pozwól mu się hibernować. Alternatywą jest po prostu zamknięcie na czas. Później wystarczy uruchomić komputer, a nie uruchomić ponownie. Pamiętaj, że jest to kwestia CZASU, więc zakładam, że którykolwiek z pomysłów tutaj może zadziałać, jeśli czas zadziała poprawnie w twoim systemie.
Gość
źródło