Miałem również ten problem podczas aktualizacji mojego Xubuntu 14.04 do Xubuntu 16.04 (słuchawki wytwarzały dźwięk, ale nie głośniki). Mam kartę dźwiękową HD Intel z układem Realtek ALC259. Problem utrzymywał się podczas uruchamiania z różnymi jądrami od 3.13.X do 4.10.X.
NAPRAWIONO MNIE, a oto jak:
Ważne jest, aby zrozumieć, że Pulseaudio (PA) jest domyślnym systemem kontroli dźwięku dla Ubuntu i większości (wszystkich?) Jego wariantów. PA jest zasadniczo nakładką na rdzeń systemu dźwiękowego ALSA. Tak więc dla każdej akcji wykonanej w PA następuje reakcja w ALSA. Dla każdego wyjścia (aka port) zdefiniowanego w PA istnieje określone dopasowanie do systemu ALSA. To ustawienie jest znane jako „ścieżka mieszania”.
!!! WAŻNE !!!
Zanim przejdziesz dalej, teraz jest dobry moment, aby sprawdzić, czy to rzeczywiście twój problem i nie ma innego powodu, dla którego głośniki nie działają. Możesz to zrobić bardzo łatwo, wykonując następujący test. (Jeśli bawiąc się swoim systemem dźwiękowym, możesz chcieć przywrócić go do ustawień domyślnych przed testowaniem):
- Odłącz wszelkie słuchawki lub inne urządzenia dźwiękowe Z WYJĄTKIEM głośników, które NIE działają.
- Rozpocznij odtwarzanie pliku audio, który normalnie generowałby dźwięk z twoich głośników, chociaż obecnie nie jest. Następnie,
Otwórz terminal i uruchom polecenie:
alsamixer
Powinieneś zobaczyć następujące elementy:
Ze względu na różnice między kartami dźwiękowymi, moje urządzenia mogą się nieco różnić od tych na zdjęciu. W moim przypadku i przed rozwiązaniem problemu mój alsamixer wyglądał tak jak na powyższym obrazku.
- Wyłącz wyciszenie wszystkich aktualnie wyciszonych urządzeń (użyj klawisza „m”, aby przełączyć wyciszenie). Następnie podnieś suwaki głośności na urządzeniach, które nie są w 100%.
Jeśli słyszysz dźwięk z głośników, ta poprawka jest dla Ciebie!
Jeśli nie słyszysz żadnego dźwięku, wróć do „Google” i kontynuuj wyszukiwanie. Ta metoda NIE pomoże.
Jeśli udało Ci się uzyskać dźwięk z powyższego testu, musimy teraz grać z ustawieniami alsamixer, aby ustalić:
- Która regulacja głośności urządzenia faktycznie kontroluje głośność głośników, i
- Które z urządzeń należy wyłączyć, aby głośniki działały. Może być konieczne wyciszenie wielu urządzeń.
Po poznaniu ustawień ALSA, przy pomocy których będą działały głośniki, możemy wykorzystać te informacje do wprowadzenia niezbędnych zmian w ścieżkach miksera PA.
W moim przypadku odkryłem, że moje słuchawki i głośniki są połączone w ramach ALSA na następujące sposoby:
- Mój poziom głośności słuchawek jest kontrolowany przez urządzenie „Słuchawki”.
- Aby uzyskać dźwięk ze słuchawek, urządzenia „Master” i „Headphone” muszą być wyciszone.
- Głośność mojego głośnika jest również kontrolowana przez urządzenie „Słuchawki”. (Zaskakująco ustawienie głośności głośnika ALSA nie wpływa na głośność mojego głośnika).
- Pobieranie dźwięku z moich głośników wymaga, aby urządzenia „Master” i „Speaker” były wyciszone.
Domyślna ścieżka miksera głośnika w PulseAudio (PA) zakładała, że moje głośniki są niezależne od słuchawek. Co, jak wykazano powyżej w obserwacji 3, nie miało miejsca. Następnie domyślna ścieżka miksera w PA dla moich głośników wprowadziła następujące problematyczne zmiany w ALSA za każdym razem, gdy wyjście głośnika zostało wybrane w PA:
- Zmniejszono głośność słuchawek do 0.
- Ustaw urządzenie głośnikowe jako regulator głośności.
Biorąc pod uwagę, jak zaobserwowałem połączenie ALSA z moimi głośnikami i słuchawkami, jak opisano wcześniej, te zmiany w ALSA zapobiegłyby wydobywaniu się dźwięku z moich głośników.
Rozwiązanie tego problemu uzyskuje się przez modyfikację ścieżki miksera głośnika.
Pliki ścieżki miksera PA znajdują się w:
/ usr / share / pulseaudio / alsa-mixer / paths /
Aby ustalić, który plik ścieżki miksera steruje głośnikami, musisz:
Upewnij się, że wyjście głośnika jest wybrane w PA (tzn. Nie w słuchawkach).
Otwórz terminal i uruchom następujące polecenie:
pactl list | grep 'Active Port.*output.*'
Powinien wygenerować coś, co wygląda następująco:
Aktywny port: audiotype -output- device
to znaczy
„Aktywny port” to port PA kontrolujący obecnie ustawienia ALSA. Ponieważ już wybrałeś głośnik jako wyjście PA, to wyjście z polecenia terminalu informuje, że musisz edytować plik ścieżki miksera audiotype -output- device .conf. W moim przypadku plik ścieżki miksera to analog-output-speaker.conf.
Teraz, gdy mamy poprawny plik ścieżki miksera, musimy wprowadzić zmiany.
UWAGA: W tym folderze ścieżek miksera znajduje się plik o nazwie „analog-output.conf.common”. Zawartość tego pliku wyjaśnia, w jaki sposób interpretowane są pliki ścieżki miksera. Jeśli chcesz zrozumieć następujące zmiany, zdecydowanie zalecamy przejrzenie tego pliku przed edycją ścieżek miksera!
Każdy plik ścieżki miksera zawiera wiele „elementów”. Najlepiej, jeśli w każdym z plików jest element reprezentujący każde urządzenie ALSA na twoim komputerze. Prawdopodobnie są elementy, których również nie masz. To normalne.
W moim przypadku musiałem zmienić elementy słuchawek i głośników w ścieżce miksera dla analogowego wyjścia-głośnik.conf w następujący sposób:
- Pozwól, aby głośność PA dostosowała głośność ALSA słuchawek.
Oryginalny:
[Element Headphone]
switch = off
volume = off
Edytowane:
[Element Headphone]
switch = off
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
- (Opcjonalnie) Wyłącz głośność głośnika i zapobiegaj wpływowi głośności PA na głośność ALSA. (Jeśli tego nie zrobisz, dźwięk nadal będzie działał, ale ustawienia głośników w ALSA podskoczą bezgłośnie.)
Oryginalny:
[Element Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
Edytowane:
[Element Speaker]
required-any = any
switch = mute
volume = off
Następnie uruchom ponownie PA, wykonując:
pulseaudio -k && pulseaudio --start
Voilà!