Zamknięty Temat
Pokaż wyniki od 1 do 7 z 7

Temat: ALSA - dźwięk w Linuksie

  1. #1
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092

    ALSA - dźwięk w Linuksie

    Opiszę tutaj jak zainstalować i skonfigurować sterowniki do karty dźwiękowej. Są z tym problemy więc myślę, że to się komuś przyda.
    Ostatnio edytowane przez fnmirk ; 24-07-2010 o 02:08

  2. #2
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Krótki wstęp


    Dla systemu Debian dostępne są dwa rodzaje sterowników kart dźwiękowych. Są to OSS (Open Sound System) oraz ALSA (Advanced Linux Sound Architecture). Tutaj skupię się tylko i wyłącznie na ALSA. Dlaczego? Cóż, OSS jest tak zabytkowe jak windows 95 ALSA po prostu wspiera więcej kart, ma większe możliwości i działa stabilniej.

  3. #3
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Instalacja ALSA


    Przed instalacją upewnij się, że jesteś w grupie audio. Jeżeli nie jesteś w tejże grupie to, jako root, wpisz:

    Kod:
    adduser nazwa_użytkownika audio
    Jeżeli używasz jądra 2.6, to wszystkie niezbędne moduły są już dołączone, jeżeli jednak posiadasz jądro z serii 2.4 to takowe moduły musisz do instalować.

    Jeżeli posiadasz kernel z serii 2.4 to wpisujesz:

    Kod:
    aptitude install alsa-modules-`uname -r`
    Jeżeli posiadasz kernel z serii 2.6 to wystarczy:

    Kod:
    aptitude install alsa-base alsa-utils

  4. #4
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Konfiguracja ALSA


    Teraz po zainstalowaniu ALSA wydajemy jako root:

    Kod:
    alsaconf
    Program ten dokona próby automatycznego wykrycia karty dźwiękowej, jaka jest w Twoim komputerze. Jeżeli proces ten nie powiedzie się, to będziesz miał możliwość ręcznego dokonania konfiguracji i wybrania odpowiedniego modelu karty z listy obsługiwanych kart.

    Jeżeli wszystko się powiodło, to należy teraz w Twoim środowisku skonfigurować serwer dźwięku tak aby korzystał ze sterowników ALSA. W KDE to jest:

    Menu KDE -> Centrum sterowania -> Dźwięk i Multimedia -> System dźwiękowy

    W GNOME bodajże jest to w System -> Ustawienia multimediów

    We wszystkich programach używających dźwięku zmieniamy wtyczkę wyjściową na ALSA lub na serwer dźwięku z którego będziemy mieli zamiar korzystać.

    Teraz restartujemy komputer.

    Po restarcie uruchamiamy jako zwykły użytkownik alsamixer. W alsamixer włączamy (klawisz M) i zwiększamy poziom natężenia dźwięku następujących kanałów: Master, PCM, Line, CD, Aux.


    I to już wszystko. Jeżeli zrobiłeś wszystko dokładnie jak opisałem to powinien Ci dobrze działać dźwięk.

  5. #5
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Serwer dźwięku


    Cóż to jest serwer dźwięku? Zacytuję tekst z http://linux-muzyka.ixion.pl :

    "Serwery dźwięku to procesy (demony) działające w tle, odpowiedzialne za wzajemną komunikację programów audio i obsługę kart muzycznych zainstalowanych w komputerze. Obecnie stosuje się co najmniej kilka serwerów dźwięku o zróżnicowanym przeznaczeniu. Najpopularniejsze z nich to:

    aRts - działający w środowisku KDE,
    ESD - dla środowiska GNOME,
    JACK - dla zastosowań profesjonalnych.

    Wybierając serwer dźwięku powinniśmy zwrócić uwagę na jego przeznaczenie. Jeżeli zamierzamy jedynie odtwarzać pliki dźwiękowe i prezentacje multimedialne oraz korzystać z gier, to najlepszym wyborem będzie prosty w konfiguracji i niewidoczny dla użytkownika serwer ESD lub aRts. Dla osób wykorzystujących Linuksa do profesjonalnej pracy z dźwiękiem niezmiernie ważna jest z kolei niska latencja, pełny dupleks oraz możliwość pracy w trybie 32-bitowym - wszystkie te funkcje posiada serwer JACK. Pozostałe dostępne serwery pozwalają na prosty transfer dźwięku poprzez sieci (NAS), korzystanie z wielu kart jednocześnie i inne zaawansowane sposoby pracy z materiałem audio."

    Tyle teorii Ja powiem, że używam aRts ponieważ korzystam z KDE. Gdybym wyłączył serwer dźwięku to nie miałbym tych dźwięków które są w KDE. Gdy na przykład zminimalizuje okno to odtwarza się jakiś dźwięk, itd. Gdyby nie serwer dźwięku to by tego nie było. Tak samo w GNOME. Choć muszę przyznać, że aRts jest lepszy od ESD (w ESD dźwięk ma słabą jakość). Można oczywiście skorzystać jeszcze z JACK ale wątpię żeby ktoś z nas potrzebował by tak zaawansowaną rzecz, ale zdarzają się i takie osoby.

  6. #6
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Miksowanie dźwięku - dmix i asoundrc


    Sama konfiguracja ALSA pewnie nikomu nie sprawiła kłopotu, ale problemy mogą się zacząć gdy nie możemy odtwarzać dźwięków z kilku źródeł na raz.

    Pierwszą rzeczą jaką powinniśmy zrobić to, sprawdzenie, czy nasza karta dźwiękowa obsługuje sprzętowe miksowanie. Jak to sprawdzić? Uruchom np. serwer dźwięku aRts, i program xmms, i jeszcze totem, i kadu (możesz oczywiście uruchomić inne programy - ja daje tylko przykład). Jeżeli dźwięk w każdym z tych programów będzie odtwarzany równocześnie, to oznacza to, że Twoja karta dźwiękowa obsługuje sprzętowe miksowanie, lub Twój administrator już skonfigurował Ci poprawnie dźwięk. Jeżeli nie będzie wszędzie słychać dźwięku to zapewne twoja karta nie obsługuje sprzętowego miksowania lub źle skonfigurowałeś programy.

    Karty, które nie obsługują sprzętowego miksowania to najczęściej stare zintegrowane karty. Chociaż ostatnie karty, nawet te zintegrowane, mają już wsparcie dla sprzętowego miksowania.


    1) Zakładając jednak, że karta obsługuje sprzętowe miksowanie, ale gdy na przykład słuchamy muzyki to nie słyszymy dźwięku oglądając jakiś film w internecie. Dlaczego? Otóż firefox jak i wiele innych przeglądarek używa OSS (/dev/dsp). Niestety OSS nie jest automatycznie miksowane - musimy to sami zrobić. Najpierw instalujemy odpowiedni pakiet:

    Kod:
    aptitude install alsa-oss
    Po tym tworzymy w katalogu domowym plik asoundrc:

    Kod:
    touch ~/.asoundrc
    Teraz otwieramy ten plik. Następnie dodajemy do niego podany niżej wpis:

    Kod:
    pcm.dsp { 
    type plug 
    slave.pcm "hw:0" 
    }
    Teraz należy załadować odpowiednie moduły (jako root):

    Kod:
    modprobe snd-pcm-oss

    Teraz powinno być wszystko ok. Jeżeli wszystko teraz działa to ustawiamy tak aby odpowiedni moduł był automatycznie ładowany przy starcie systemu. Otwieramy, jako root, plik /etc/modules i dodajemy do niego:

    Kod:
    snd-pcm-oss 
    snd-mixer-oss

    2) Cóż jednak zrobimy jeśli nasza karta dźwiękowa nie obsługuje sprzętowego miksowania - nie możemy odtwarzać dźwięku równolegle w kilku programach. Wystarczy chwila zabawy z plikiem ~/.asoundrc. Najpierw instalujemy odpowiednie pakiety:

    Kod:
    aptitude install mpg321
    Po tym tworzymy w katalogu domowym plik .asoundrc:

    Kod:
    touch ~/.asoundrc
    Do tego pliku dodajemy:

    pcm.card0 {
    type hw
    card 0
    }

    pcm.!default {
    type plug
    slave.pcm "dmixer"
    }


    pcm.dmixer {
    type dmix
    ipc_key 1025
    slave {
    pcm "hw:0,0"
    period_time 0
    period_size 2048
    buffer_size 32768
    rate 44100
    }
    bindings {
    0 0
    1 1
    }
    }

    Możemy zamiast tego wyżej wpisu dodać ten co podałem niżej:

    pcm.!default {
    type plug
    slave.pcm "kombinace"
    }

    pcm.vystup {
    type dmix
    ipc_key 1024
    slave {
    pcm "hw:0,0"
    format S32_LE
    period_time 0
    period_size 1024
    buffer_size 8192
    rate 44100
    }
    }

    pcm.dsp0 {
    type plug
    slave.pcm "vystup"
    }

    pcm.vstup {
    type dsnoop
    ipc_key 2048
    slave {
    pcm "hw:0,0"
    channels 2
    period_size 1024
    buffer_size 4096
    rate 44100
    periods 0
    period_time 0
    }
    bindings {
    0 0
    0 1
    }
    }

    pcm.kombinace {
    type asym
    playback.pcm "vystup"
    capture.pcm "vstup"
    }
    Do /etc/mpd.conf dodajemy:

    ao_driver "alsa09"
    ao_driver_options "dev=plug:dmix s51"
    A po co w ogóle te wpisy? Otóż bez nich to nie moglibyśmy odtwarzać dźwięku równolegle w kilku programach, jeśli nie posiadamy karty dźwiękowej która obsługuje sprzętowe miksowanie. Jeśli obsługuje to te kroki są zbędne.

    Po tym nie będziemy słyszeć dźwięku z programu który używa OSS. Będziemy musieli wyłączyć serwer dźwięku i wszystkie programy które aktualnie odtwarzają dźwięki. Dopiero po tym można skorzystać z programy który używa OSS. Można jeszcze spróbować odpalić program w taki sposób:

    Kod:
    artsd nazwa_programu
    i

    Kod:
    aoss nazwa_programu
    ale nie gwarantuję, że to zadziała.


    3) W obu przypadkach (kiedy karta obsługuje lub nie obsługuje sprzętowego miksowania) i kiedy używam serwera dźwięku esd, powinniśmy dodać poniższą linijkę do /etc/esound/esd.conf

    [esd]
    auto_spawn=1
    spawn_options=-terminate -nobeeps -as 2 -d default // -d dmixer
    spawn_wait_ms=100
    # default options are used in spawned and non-spawned mode
    default_options=

  7. #7
    Senior Member
    Wersja: Sid amd64
    Na Forum od
    Jul 2006
    Skąd
    Kartuzy
    Postów
    3,092
    Podsumowanie

    Cóż mogę tutaj powiedzieć. Linux bez dźwięku to nie linux Przedstawiłem tu proces instalacji sterowników ALSA.

    To co napisałem o miksowaniu dźwięku może być dla was skomplikowane, macie prawo nie rozumieć wszystkiego, ale w miarę używania linuksa zrozumiecie czemu zrobiłem tak a nie inaczej. Podpowiem jeszcze, że niektóre kroki które tutaj opisałem są zbędne ale dzięki nim później zrozumiecie o co tu tak naprawdę chodzi


    Pozdrawiam i życzę miłego słuchania muzyki

Zamknięty Temat

Bookmarks

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów