PLD-doc/book/pl_book__uslugi/pl_uslugi__alsa.sec

ciesiel cvs w pld-linux.org
Pon, 4 Kwi 2005, 20:54:49 CEST


Author: ciesiel
Date: Mon Apr  4 20:54:46 2005
New Revision: 5719

Added:
   PLD-doc/book/pl_book__uslugi/pl_uslugi__alsa.sec
Log:
- nowa usluga: ALSA


Added: PLD-doc/book/pl_book__uslugi/pl_uslugi__alsa.sec
==============================================================================
--- (empty file)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi__alsa.sec	Mon Apr  4 20:54:46 2005
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<section id="uslugi_alsa_step">
+<title>ALSA - Dźwięk w Linuksie</title>
+<para>Przez dłuższy czas, obsługa kart dźwiękowych w Linuksie była traktowana po
+	macoszemu. W końcu dźwięk na poważnych serwerach nigdy nie był
+	priorytetem, jednak kiedy systemy unixowe zaczęły zaglądać pod
+	strzechy zdano sobie sprawę, że taka obsługa jest potrzebna. Prace
+	były prowadzadzone nad kilkoma systemi obsługi m.in.:
+	<productname>OSS</productname>, <productname>JACK</productname>,
+	<productname>ARTS</productname>, <productname>ESD</productname> i
+	opisywana przez nas <productname>ALSA</productname> (skrót: Advanced Linux
+	Sound Architecture). W tej chwili <productname>ALSA</productname> jest
+	najdynamiczniej rozwijającym się projektem obsługującym dźwięk. Zalety
+	i stabilność spowodowały, że moduły <productname>ALSA</productname>-y są wbudowane w kernelach od
+	serii 2.6.x
+</para>
+	<section id="uslugi_alsa_inst_konf">
+	<title>Instalacja i konfiguracja</title>
+	<para>
+		Instalacje <productname>ALSA</productname>-y w PLD dokonujemy
+		wykorzystując program <productname>poldek</productname>:
+	</para>
+	<screen># poldek -i alsa-utils kernel-sound-alsa alsa-lib alsa-utils-init</screen>
+	<para>
+		Po instalacji powyższych pakietów konfigurujemy nasz system.
+		Dokonujemy tego wywołując polecenie:
+	</para>
+	<screen># /usr/sbin/alsaconf</screen>
+	<para>
+		Po ukazaniu się ekranu z napisem "Searching sound cards"
+		czekamy ok. 10 sekund i wciskamy <keycap>ctrl-c</keycap> (konfigurator szybko
+		 znajduje naszą właściwą kartę - a ponieważ szuka również kart
+		 starego typu oraz różnych egzotycznych, co zajmuje mu bardzo dużo czasu dlatego
+		 przerywamy wyszukiwanie).
+	 </para>
+	 <para>
+		 Następne okno pokazuje nam listę znalezionych kart muzycznych
+		 (bądź najczęściej jedną). Zatwierdzamy wyświetloną kartę i na
+		 pytanie:
+	 </para>
+	 <screen>Do you want to modify /etc/modprobe.conf?</screen>
+	 <para>
+		 Odpowiadamy twierdząco. Spowoduje to dopisanie odpowiednich
+		 modułów kernela do pliku konfigurującego. Następnie pozostaje nam
+		 uruchomić jeden z mikserów dźwieku i ustawić jego parametry oraz 
+		 wyłączyć standardowo zwykle włączone wyciszenie
+		 (MUTE) np:
+	 </para>
+	<screen># /usr/bin/alsamixer</screen>
+	<para>
+		lub:
+	</para>
+	<screen>/usr/bin/amixer</screen>
+	<para>
+		Następnym krokiem jest przetestowanie naszego serwera:
+	</para>
+	<screen>alsaplayer -o alsa test.mp3</screen>
+	<para>
+		To już praktycznie koniec instalacji. Pamiętać należy, że do
+		niektórych programów należy doczytać odpowiednie wtyczki,
+		które umożliwią prace z <productname>ALSA</productname>-ą.
+		Wtyczki te łatwo rozpoznać po dopisce "alsa" w nazwie pakietu.
+	</para>
+	</section>
+	<section id="uslugi_alsa_zaawan">
+		<title>Mikser</title>
+		<para>
+			W wielu przypadkach okazuje się, że posiadamy kartę
+			muzyczną, która nie potrafi miksować dźwięku
+			sprzętowo - co powoduje m.in., że jednocześnie może z
+			karty korzystać jeden program lub proces. Zdarza się
+			także, że niektóre programy na sztywno próbują
+			połączyć się np. z OSS w celu obsługi dźwięku (np.
+			<productname>Skype</productname>). W takim przypadku możemy
+			skorzystać z wtyczki <productname>ALSA</productname>-y
+			o nazwie <emphasis>dmix</emphasis>. Wbrew nazwie nie
+			musimy niczego dogrywać - wszystko odbywa się w
+			plikach: <filename>/etc/asound</filename> (gdy chcemy
+			ustawień globalnych) lub
+			<filename>~/.asoundrc</filename> (czyli indywidualnych
+			ustawień dla każdego użytkownika). Przykładowy wpis
+			przedstawimy poniżej - po więcej szczegółów odsyłamy
+			na strony projektu <ulink
+				url="http://www.alsa-project.org/">ALSA</ulink>:
+		</para>
+		<screen># definiujemy urzadzenie virtualne demixer:
+
+pcm.demixer	
+	{
+	type dmix
+	ipc_key 1024 # must be unique!
+	slave	{
+	pcm "hw:0,0" # you cannot use a "plug" device here,  darn. 
+	period_time	0
+	buffer_time	0
+	period_size	1024	# must be power of 2 and much smoother 
+				# than 1024/8192!
+	buffer_size	8196	# must be power of 2 and for Audiophile
+				# card (ICE1712 chip) or a VIA VT82xx
+				# (snd-via82xx) must be less 6652
+	#format	"S32_LE"
+	periods	128
+	rate	44100		# with rate 44100 Hz you *will* hear,
+				# if demixer is used
+		}
+# bindings are cool. This says, that only the first
+# two channels are to be used by dmix, which is enough for
+# (most) oss apps and also lets multichannel chios work 
+# much faster:
+	bindings	{
+	0 0	# from 0 => to 0
+	1 1	# from 1 => to 1
+			}
+	}
+	
+# następnie ustawiamy przekierowanie z poszczególnych urzadzeń do demixera:
+
+# przekierowanie do demixer z urządzeń OSS:
+#   /dev/audio
+#   /dev/dsp
+#   /dev/dspW
+#   /dev/midi
+#   /dev/mixer
+#   /dev/music
+#   /dev/sequencer (recording doesn't work yet)
+#   /dev/sequencer2
+
+# for /dev/dsp0
+pcm.dsp0	{
+	type plug
+        slave.pcm "demixer"
+                }
+# for /dev/dsp
+pcm.dsp		{
+	type plug
+	slave.pcm "demixer"
+		}
+# for /dev/card0 # ten wpis jest prawdopodobnie zbędny
+pcm.card0	{
+	type plug
+	slave.pcm "demixer"
+		}
+# Software mixing
+pcm.!default	{
+	type plug
+	slave.pcm "demixer"
+		}
+ctl.mixer0	{
+	type hw
+	card 0
+		}</screen>
+		<para>
+			Po restarcie lub ponownym logowaniu (w zależności od
+			sposobu konfiguracji) możemy przetestować nasz "dmix"
+		</para>
+		<screen>alsaplayer -o alsa -d dmixer test.mp3</screen>
+		<para>
+			Nie należy zapomnieć o wyłączeniu demonów ARTs i ESD
+			gdyż w przeciwnym przypadku może sie pojawić
+			opóźnienie w odtwarzaniu dźwięków i zakłócenia w
+			niektórych programach.
+		</para>
+	</section>
+
+</section>




Więcej informacji o liście dyskusyjnej pld-doc