Jak mogę sprawdzić, czy domyślnie używam alsa lub puls-audio? (Przełączanie na i3-wm)

51

Być może nie rozumiem podstawowej koncepcji, w takim przypadku popraw mnie, jeśli się mylę.

Ubuntu jest wyposażony w dwa różne serwery renderowania dźwięku, puls i alsa. Czy Alsa jest pośrednią warstwą do pulsowania? Zasadniczo muszę wiedzieć, którego używam.

Powodem, dla którego muszę wiedzieć, jest to, że próbuję przejść z jedności na i3-wm. Podczas konfigurowania i3 odkryłem, że nie mam dźwięku i natknąłem się na ten wątek . Określa różne opcje powiązania klawiszy zwiększania i zmniejszania głośności laptopa z ich funkcjami, a po majsterkowaniu kilkoma opcjami uzyskałem bardzo chropowaty dźwięk, dlatego (zakładam) muszę wiedzieć, z którego faktycznie korzystam.

Paul Nelson Baker
źródło

Odpowiedzi:

82

Ubuntu używa zarówno ALSA, jak i Pulseaudio do kontrolowania wejścia i wyjścia dźwięku.

ALSA

ALSA służy jako system oparty na jądrze do połączenia sprzętu dźwiękowego z systemem operacyjnym. Wszystkie karty dźwiękowe w systemie będą kontrolowane za pomocą sterowników i ustawień specyficznych dla karty. Większość z tego odbywa się pod maską, bez potrzeby ingerencji użytkowników.

Ponadto ALSA oferuje biblioteki i narzędzia do sterowania naszym systemem dźwiękowym. Narzędziem, z którym większość z nas mogła się spotkać, może być alsamixerpółgraficzna aplikacja terminalowa do kontrolowania głośności dźwięku i wyciszania wszystkich kart i profili w naszym systemie.

Możemy wydać dźwięk na naszą kartę dźwiękową po prostu za pomocą ALSA bez potrzeby korzystania z PulseAudio lub jakiegokolwiek innego serwera dźwięku.

Pulse Audio

Oprócz bazy ALSA serwer dźwięku PulseAudio zapewnia dalsze narzędzia do lepszej kontroli naszego systemu dźwiękowego. Odbywa się to za pomocą modułów do definiowania poziomów głośności, profili kart dźwiękowych, odbiorników wyjściowych lub źródeł wejściowych i innych elementów w celu łatwego dostępu z większości aplikacji Ubuntu.

Podobnie jak ALSA, PulseAudio zaprojektowano tak, aby działało przy jak najmniejszej liczbie interakcji użytkownika. Ilekroć musimy zmienić głośność, balans lub urządzenia wejścia / wyjścia, jest to moduł PulseAudio lub aplikacja, którą my lub nasza aplikacja wywołuje.

Profesjonalną alternatywą dla PulseAudio jest serwer audio JACK z większą liczbą opcji interakcji z naszym sprzętem dźwiękowym i lepszą obsługą niskich opóźnień. Tylko nieliczne aplikacje do produkcji muzyki mają uruchomić JACK, co można zrobić równolegle z PulseAudio.

Integracja aplikacji / pulpitu

Systemem dźwiękowym Ubuntu można ponadto sterować z aplikacji uruchamianych z pulpitu Unity / GNOME, takich jak aplet regulacji głośności.

To, czy dana aplikacja korzysta z kontroli dźwięku, zależy od twórców aplikacji. Niektóre aplikacje będą używać tylko ALSA, niektóre wymagają PulseAudio, niektóre wymagają JACK.

Dlatego za każdym razem, gdy instalujemy inny menedżer pulpitu na Ubuntu, możemy stracić specyficzne dla komputera aplikacje do sterowania dźwiękiem, ale nadal ALSA i PulseAudio będą działać w tle w celu kontroli dźwięku.

Być może będziemy musieli zainstalować dodatkowe pakiety, takie jak np. Pavucontrol Zainstaluj pavucontrol , aplikacja do regulacji głośności oparta na pulseaudio GTK.

Czy działa ALSA lub PulseAudio?

Zarówno ALSA, jak i PulseAudio są dostarczane z aplikacjami wiersza poleceń, aby wydrukować stan naszego systemu dźwiękowego.

  • PulseAudio:

    pactl list
    
  • ALSA:

    aplay -l
    

Oba dadzą błąd, jeśli system dźwiękowy nie działa. ALSA zostanie załadowane z jądrem, PulseAudio zostanie uruchomione później. Jeśli tak nie jest, możemy uruchomić PulseAudio ręcznie z terminala za pomocą:

pulseaudio [options]  ## option -D starts the daemon

W przypadku problemów z dźwiękiem polecam przeczytanie posta napisanego przez Davida Henningssona na temat rzeczy, których nie powinniśmy robić, zanim przejdziemy do debugowania naszego problemu z dźwiękiem .

Takkat
źródło
1
@Takkat niesamowite wyjaśnienie, wielkie dzięki. Od dłuższego czasu staram się zrozumieć podstawy systemu audio w Linuksie i Ubuntu.
AlexN
W moim systemie Raspberry Pi „lista pactl” zwraca „odmowa połączenia”, ale „lista pactl - serwer 127.0.0.1” działa. eksportowanie zmiennej środowiskowej „PULSE_SERVER = 127.0.0.1” umożliwia poprawne połączenie klientów pulseaudio. Jakieś pomysły, których mi brakuje? To jest na malinowym pi.
Joao Costa