Linux: Rozwiązywanie problemów z dźwiękiem - www.srebniak.pl
Linux: Rozwiązywanie problemów z dźwiękiem
2 lutego 2013
Categories: Linux
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 pulseaudiopomoż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.
© 2021 Więcej informacji
o mnie