Linux: Rozwiązywanie problemów z dźwiękiem

Witam.
Podczas testowania różnych dystrybucji, co jakiś czas wracał do mnie problem z dźwiękiem.
Zazwyczaj system usilnie próbował mi wmówić, że chcę używać wyjścia HDMI zamiast normalnej karty dźwiękowej. Zdarzało się również, że subwoofer nie grał lub widget regulacji głośności po prostu wyłączał się przy wyciszeniu.
Poniżej opisuję kilka przypadków, z którymi spotykałem się co jakiś czas.

Aby poniższe czynności przyniosły rezultat musimy ponownie uruchomić komputer.

System zmienia domyślną kartę dźwiękową

Rozwiązań jest kilka.

  1. Jeśli system zmienia kartę na HDMI,a my wyjścia HDMI nie używamy to po prostu wyłączmy je w BIOSie.
  2. Użycie programu pavucontrol do wyłączenia karty.
  3. Usunięcie pulseaudio – czasem po prostu działa. Szczegóły poniżej.
  4. Ustawienie domyślnej karty dźwiękowej w konfiguracji ALSA

Do punktu czwartego potrzebujemy moduł naszej karty dźwiękowej. Uzyskujemy go za pomocą polecenia lspci -k, wyszukując tylko wpisy oznaczone jako Audio device lub Multimedia audio controller.

$ lspci -k
02:00.0 Multimedia audio controller: Yamaha Corporation YMF-724F [DS-1 Audio Controller] (rev 03)
	Subsystem: Yamaha Corporation DS-XG PCI Audio CODEC
	Kernel driver in use: snd_ymfpci
02:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd-hda-intel

Interesują nas tutaj linijki Kernel driver in use. Właśnie w nich mamy nazwy modułów używanych przez nasze karty, w tym przypadku: snd_ymfpci oraz snd-hda-intel.

Mając nazwy modułów dodajemy poniższą linijkę do pliku /etc/modprobe.d/alsa-base.conf

options snd slots=snd_ymfpci,snd-hda-intel

Wpisując najpierw moduł karty domyślnej, a potem resztę.

Subwoofer nie gra

Czasami w ogóle nie gra, a czasami ustawienia resetują się po zmianie piosenki.

Powinna pomóc zmiana w pliku /etc/pulse/daemon.conf
Szukamy wpisu:

; enable-lfe-remixing = no

i zmieniamy go na:

enable-lfe-remixing = yes

Głośniki/słuchawki grają zbyt głośno

Powinna pomóc modyfikacja pliku: /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
Zmiana z:

[Element PCM]
volume = merge

na

[Element PCM]
volume = ignore

Po tym zabiegu zmieniamy głośność kanału PCM narzędziem alsamixer. Regulacja głośności nie wpłynie teraz na kanał PCM.

Całkowite wyłączenie pulseaudio

Aby pulseaudio się nie włączył usuwamy prawa wykonywania i uruchamiamy ponownie komputer.

sudo chmod -x /usr/bin/pulseaudio

Wtedy nikt nie ma praw do uruchomienia pulseaudio. Jest to jednak rozwiązanie chwilowe, tylko dla sprawdzenia czy wyłączenie pulseaudio pomoże.
Działa, aż do aktualizacja pulseaudio.

Jeśli zdecydujemy się na całkowite usunięcie pulseaudio to polecam najpierw skorzystanie z trybu symulacji za pomocą polecenia:

sudo apt-get -s --purge remove pulseaudio

Usuwamy tylko wtedy, gdy wiemy za co odpowiadają pakiety przeznaczone do usunięcia. Dodatkowo proponuje zrobić sobie listę pakietów, aby w razie czego można było je przywrócić. Jest to operacja niebezpieczna i złe jej wykonanie może skutkować tym, że system się nie uruchomi.

Widget regulacji głośności pulseaudio wyłącza się przy wyciszeniu

Tą przypadłość spotkałem tylko na Sabayon’ie, przy Gnome3. Wymagane było użycie widgetu Alsa.
Tutaj mamy dwie opcję:

  1. Pakiet: volumeicon-alsa, dostępny w repozytorium Debiana
  2. Projekt alsa-tray.

Do współpracy z tym drugim używałem kilka skryptów podpiętych pod klawisze regulacji na klawiaturze.

Zmiejszenie głośności

[ ! -z "`pidof -s alsa-tray`" ] && alsa-tray -5 || alsa-tray

Zwiększenie głośności

[ ! -z "`pidof -s alsa-tray`" ] && alsa-tray +5 || alsa-tray

Wyciszenie włącz/wyłącz

[ ! -z "`pidof -s alsa-tray`" ] && alsa-tray mute || alsa-tray

Mam nadzieję, że artykuł się nie przyda, a dźwięk będzie działał tak jak powinien. Jeśli nie, artykuł powinien pomóc.

Comments

comments

Comments

Leave a Reply

You must be logged in to post a comment.