/[gentoo]/xml/htdocs/doc/en/alsa-guide.xml
Gentoo

Contents of /xml/htdocs/doc/en/alsa-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.44 - (show annotations) (download) (as text)
Thu Dec 2 13:02:18 2004 UTC (9 years, 7 months ago) by swift
Branch: MAIN
Changes since 1.43: +4 -3 lines
File MIME type: application/xml
Sometimes the Headphone also gives issues when muted (i.e. no sound). Mailed by Albert Witteveen and confirmed by a google search

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.43 2004/11/21 12:35:06 neysx Exp $ -->
3 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4
5 <guide link="/doc/en/alsa-guide.xml">
6 <title>Gentoo Linux ALSA Guide</title>
7 <author title="Author">
8 <mail link="zu@pandora.be">Vincent Verleye</mail>
9 </author>
10 <author title="Author">
11 <mail link="g2boojum@gentoo.org">Grant Goodyear</mail>
12 </author>
13 <author title="Author">
14 <mail link="agenkin@gentoo.org">Arcady Genkin</mail>
15 </author>
16 <author title="Author">
17 <mail link="eradicator@gentoo.org">Jeremy Huddleston</mail>
18 </author>
19 <author title="Editor"><!-- zhen@gentoo.org -->
20 John P. Davis
21 </author>
22 <author title="Editor">
23 <mail link="swift@gentoo.org">Sven Vermeulen</mail>
24 </author>
25 <author title="Editor">
26 <mail link="bennyc@gentoo.org">Benny Chuang</mail>
27 </author>
28 <author title="Editor">
29 <mail link="blubber@gentoo.org">Tiemo Kieft</mail>
30 </author>
31 <author title="Editor">
32 <mail link="erwin@gentoo.org">Erwin</mail>
33 </author>
34
35 <abstract>
36 This guide will show you how to set up the Advanced Linux Sound Architecture
37 (ALSA) on Gentoo Linux. In addition to the Gentoo Linux Desktop Configuration
38 Guide, this guide is supposed to give you more information on this subject.
39 </abstract>
40
41 <license/>
42
43 <version>1.5.6</version>
44 <date>2004-12-02</date>
45
46 <chapter>
47 <title>The Advanced Linux Sound Architecture</title>
48 <section>
49 <title>What is ALSA?</title>
50 <body>
51
52 <p>
53 ALSA is the <e>Advanced Linux Sound Architecture</e>, a project dedicated to the
54 development of a high-quality Linux sound subsystem. It has replaced OSS
55 (<e>Open Sound System</e>) as default sound subsystem in the 2.6 kernel series.
56 </p>
57
58 <p>
59 ALSA provides efficient support for all types of audio interfaces, is fully
60 modularized, is SMP and thread-safe and provides a high-quality user space
61 library called <e>alsa-lib</e> to simplify application programming. It also
62 provides a backwards compatibility layer with OSS.
63 </p>
64
65 </body>
66 </section>
67 </chapter>
68 <chapter>
69 <title>Installing ALSA</title>
70 <section>
71 <title>USE Flags</title>
72 <body>
73
74 <p>
75 Gentoo provides an <c>alsa</c> USE flag which you should set in
76 <path>/etc/make.conf</path> to allow our available packages to compile with
77 ALSA support. If you have <c>oss</c> in your USE variable as well, ALSA will
78 compile with OSS backward compatibility.
79 </p>
80
81 </body>
82 </section>
83 <section>
84 <title>Kernel Modules</title>
85 <body>
86
87 <p>
88 First of all, before continuing, make sure your kernel has <e>Sound Card
89 Support</e> enabled. If you used <c>genkernel</c> to build your kernel, then
90 this is automatically true. Otherwise reconfigure your kernel.
91 </p>
92
93 <p>
94 If you use a 2.6 kernel you can skip the rest of this section and continue with
95 <uri link="#alsa-utils">Installing the ALSA Utils</uri> as 2.6 already has the
96 necessary ALSA drivers in it. Of course, don't forget to enable support for the
97 sound card you have when configuring your kernel.
98 </p>
99
100 <p>
101 Users of 2.4 kernel sources will have to install the necessary ALSA drivers for
102 their soundcard. First find out what soundcard you have. An easy trick is to
103 search for "audio" in the output of the <c>lspci</c> command. You can install
104 it with <c>emerge pciutils</c>.
105 </p>
106
107 <pre caption="Finding out the soundcard type">
108 # <i>lspci | grep -i audio</i>
109 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 64).
110 </pre>
111
112 <p>
113 Now go to the <uri link="http://www.alsa-project.org/alsa-doc">ALSA Soundcard
114 Matrix</uri> and search for your soundcard. In the above example you should go
115 to the "VIA" manufacturer. You will receive a table with the known chipsets of
116 that vendor. The chipset in the above example is "via82c686"; the "Details" link
117 then informs me that the driver is called <path>via82xx</path>. This is all the
118 information you need, so you can safely discard the rest of that document.
119 </p>
120
121 <p>
122 Based on this information we can now install the <c>alsa-driver</c> for our
123 soundcard. First edit <path>/etc/make.conf</path> and <e>add</e> a new option
124 called ALSA_CARDS to it. Inside this variable you declare the soundcard driver
125 you want to use:
126 </p>
127
128 <pre caption="Editing /etc/make.conf for ALSA_CARDS">
129 ALSA_CARDS="via82xx"
130 </pre>
131
132 <p>
133 Now install <c>alsa-driver</c>:
134 </p>
135
136 <pre caption="Installing ALSA Drivers">
137 # <i>emerge alsa-driver</i>
138 </pre>
139
140 <impo>
141 Whenever you (re)compile your kernel sources, chances are that the ALSA drivers
142 will be overwritten. It is therefore adviseable to rerun <c>emerge
143 alsa-driver</c> every time you (re)compile your kernel <e>after</e> having
144 rebooted into the new kernel.
145 </impo>
146
147 </body>
148 </section>
149 <section id="alsa-utils">
150 <title>Installing the ALSA Utils</title>
151 <body>
152
153 <p>
154 If you want backwards compatibility with OSS, you need to install
155 <c>alsa-oss</c>:
156 </p>
157
158 <pre caption="Installing the ALSA OSS compatibility layer">
159 # <i>emerge alsa-oss</i>
160 </pre>
161
162 <p>
163 Now install the ALSA Utils on your system (this is mandatory):
164 </p>
165
166 <pre caption="Installing ALSA Utils">
167 # <i>emerge alsa-utils</i>
168 </pre>
169
170 <p>
171 Now that the utils are installed, it is time to configure ALSA...
172 </p>
173
174 </body>
175 </section>
176 </chapter>
177 <chapter>
178 <title>Configuring ALSA</title>
179 <section>
180 <title>Automatically Loading the Kernel Modules</title>
181 <body>
182
183 <p>
184 If you use a modular kernel (such as when using <c>genkernel</c>) you have to
185 edit <path>/etc/modules.d/alsa</path> so that it activates the necesary modules
186 at boot time. For the soundcard in our example:
187 </p>
188
189 <pre caption="/etc/modules.d/alsa">
190 alias snd-card-0 snd-via82xx
191 <comment># The following is only needed when you want OSS compatibility</comment>
192 alias sound-slot-0 snd-card-0
193 alias /dev/mixer snd-mixer-oss
194 alias /dev/dsp snd-pcm-oss
195 alias /dev/midi snd-seq-oss
196 </pre>
197
198 <p>
199 Now run <c>modules-update</c> to save the changes you made to the
200 <path>alsa</path> file into <path>/etc/modules.conf</path>:
201 </p>
202
203 <pre caption="Running modules-update">
204 # <i>modules-update</i>
205 </pre>
206
207 </body>
208 </section>
209 <section>
210 <title>Verifying the Device Files</title>
211 <body>
212
213 <p>
214 If you use DevFS (which is the default for Gentoo installations) make sure that
215 <path>/etc/devfsd.conf</path> has the ALSA devices and permissions correctly
216 registered:
217 </p>
218
219 <pre caption="/etc/devfsd.conf">
220 # ALSA/OSS stuff
221 # Comment/change these if you want to change the permissions on
222 # the audio devices
223 LOOKUP snd MODLOAD ACTION snd
224 LOOKUP dsp MODLOAD
225 LOOKUP mixer MODLOAD
226 LOOKUP midi MODLOAD
227 REGISTER sound/.* PERMISSIONS root.audio 660
228 REGISTER snd/.* PERMISSIONS root.audio 660
229 </pre>
230
231 </body>
232 </section>
233 <section>
234 <title>Having ALSA Activated at Boot</title>
235 <body>
236
237 <p>
238 To activate ALSA support at boot, add the <c>alsasound</c> init script to the
239 boot runlevel:
240 </p>
241
242 <pre caption="Adding alsasound to the boot runlevel">
243 # <i>rc-update add alsasound boot</i>
244 # <i>/etc/init.d/alsasound start</i>
245 </pre>
246
247 </body>
248 </section>
249 <section>
250 <title>Unmute the Channels</title>
251 <body>
252
253 <p>
254 By default, all sound channels are muted. To fix this, run <c>amixer</c>:
255 </p>
256
257 <pre caption="Running amixer">
258 # <i>amixer</i>
259 </pre>
260
261 <p>
262 If <c>amixer</c> produces lots of output then you're ready to unmute the
263 channels. If you receive an error, doublecheck that your soundcard module is
264 started.
265 </p>
266
267 <p>
268 Now unmute the <e>Master</e> and <e>PCM</e> channels. If this isn't sufficient,
269 also unmute the <e>Center</e> and <e>Surround</e> channels.
270 </p>
271
272 <pre caption="Unmuting the sound channels">
273 # <i>amixer set Master 100 unmute</i>
274 # <i>amixer set PCM 100 unmute</i>
275 <comment>(Only if the above isn't sufficient:)</comment>
276 # <i>amixer set Center 100 unmute</i>
277 # <i>amixer set Surround 100 unmute</i>
278 # <i>amixer set Headphone 100 unmute</i>
279 </pre>
280
281 <p>
282 To check if your sound works, play a wave file (using <c>aplay</c>), mp3 (using
283 <c>mpg123</c> or even <c>mplayer</c>) or any other sound file for that matter.
284 </p>
285
286 <p>
287 To fine-tune the sound channel settings you can use the <c>alsamixer</c>
288 application.
289 </p>
290
291 </body>
292 </section>
293 </chapter>
294 <chapter>
295 <title>Activating MIDI Support</title>
296 <section>
297 <title>Installing the Necessary Packages</title>
298 <body>
299
300 <p>
301 Some soundcards come with onboard MIDI synthesizers. To use them, you must first
302 install the <c>awesfx</c> package:
303 </p>
304
305 <pre caption="Installing the awesfx package">
306 # <i>emerge awesfx</i>
307 </pre>
308
309 <p>
310 If you have a collection of sound fonts somewhere, place them in
311 <path>/usr/share/sfbank</path>. For instance, the SBLive has a sound font file
312 called <path>8MBGMSFX.SF2</path> or <path>CT4GMSFX.SF2</path>.
313 </p>
314
315 <p>
316 After copying over the sound font, select them using <c>asfxload</c>:
317 </p>
318
319 <pre caption="Loading the sound font">
320 # <i>asfxload /usr/share/sfbank/8MBGMSFX.SF2</i>
321 </pre>
322
323 <p>
324 You must have this command run every time you boot, so it is adviseable to add
325 it to <path>/etc/conf.d/local.start</path> as well.
326 </p>
327
328 <p>
329 If you can't find soundfonts on your driver CD you can download some online from
330 <uri>http://www.parabola.demon.co.uk/alsa/awe64.html</uri>.
331 </p>
332
333 </body>
334 </section>
335 <section>
336 <title>Timidity++ Virtual Synthesizer</title>
337 <body>
338
339 <p>
340 If your sound card does not come with a hardware synthesizer (or you don't want
341 to use it), you can use <c>timidity++</c> to provide you with a virtual
342 synthesizer. Start by emerging this package:
343 </p>
344
345 <pre caption="Installing Timidity++">
346 # <i>emerge timidity++</i>
347 </pre>
348
349 <p>
350 For timidity to play sounds, it needs a soundfont. If you do not have any,
351 install <c>timidity-eawpatches</c> which will give you some soundfonts.
352 </p>
353
354 <pre caption="Installing timidity-eawpatches">
355 # <i>emerge timidity-eawpatches</i>
356 </pre>
357
358 <p>
359 Don't forget to add <c>timidity</c> to the default runlevel.
360 </p>
361
362 <pre caption="Adding timidity to the default runlevel">
363 # <i>rc-update add timidity default</i>
364 # <i>/etc/init.d/timidity start</i>
365 </pre>
366
367 </body>
368 </section>
369 <section>
370 <title>Testing MIDI Support</title>
371 <body>
372
373 <p>
374 You can use <c>aplaymidi</c> from the ALSA Utils to test your MIDI
375 configuration.
376 </p>
377
378 <p>
379 To see what MIDI output ports are available on your system, use the <c>-l</c>
380 option:
381 </p>
382
383 <pre caption="Viewing the MIDI output ports">
384 # <i>aplaymidi -l</i>
385 </pre>
386
387 <p>
388 If all looks fine, try playing a MIDI file to make sure everything works. With
389 the <c>-p</c> option you define what MIDI port you want to use.
390 </p>
391
392 <pre caption="Playing a MIDI file">
393 # <i>aplaymidi -p 65:0 "Final Fantasy 7 - Aerith' Theme.mid"</i>
394 </pre>
395
396 </body>
397 </section>
398 </chapter>
399 <chapter>
400 <title>Final Remarks</title>
401 <section>
402 <title>Tools and Firmware</title>
403 <body>
404
405 <p>
406 Some specific sound cards can benefit from certain tools provided by the
407 <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need
408 <c>alsa-tools</c>, be sure to define the ALSA_TOOLS variable in
409 <path>/etc/make.conf</path> with the tools you require. For instance:
410 </p>
411
412 <pre caption="Selecting ALSA Tools in /etc/make.conf">
413 ALSA_TOOLS="as10k1 ac3dec"
414 </pre>
415
416 <p>
417 Then install the <c>alsa-tools</c> (and/or <c>alsa-firmware</c>) package(s):
418 </p>
419
420 <pre caption="Installing ALSA Tools">
421 # <i>emerge alsa-tools</i>
422 </pre>
423
424 </body>
425 </section>
426 <section>
427 <title>Activating Joystick Support</title>
428 <body>
429
430 <p>
431 If your soundcard has a joystick plug, you might be interested in activating
432 joystick support for your soundcard. If so, start by verifying if your soundcard
433 driver has a joystick parameter. You can verify this by running <c>modinfo</c>
434 against your kernel module. For instance, for the <c>snd-via82xx</c>:
435 </p>
436
437 <pre caption="Running modinfo">
438 # <i>modinfo snd-via82xx</i>
439 filename: /lib/modules/2.4.22-ck2/snd-via82xx.o
440 description: "VIA VT82xx audio"
441 author: "Jaroslav Kysela &lt;perex@suse.cz&gt;"
442 license: "GPL"
443 parm: index int array (min = 1, max = 8), description "Index value for
444 VIA 82xx bridge."
445 parm: id string array (min = 1, max = 8), description "ID string for VIA
446 82xx bridge."
447 parm: enable int array (min = 1, max = 8), description "Enable audio part
448 of VIA 82xx bridge."
449 parm: mpu_port long array (min = 1, max = 8), description "MPU-401 port.
450 (VT82C686x only)"
451 <i>parm: joystick int array (min = 1, max = 8), description "Enable
452 joystick. (VT82C686x only)"</i>
453 parm: ac97_clock int array (min = 1, max = 8), description "AC'97 codec
454 clock (default 48000Hz)."
455 parm: dxs_support int array (min = 1, max = 8), description "Support for
456 DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 =
457 no VRA)
458 </pre>
459
460 <p>
461 If it has the <c>joystick</c> parameter, append <c>joystick=1</c> to your
462 <c>options</c> line in <path>/etc/modules.d/alsa</path>. For instance:
463 </p>
464
465 <pre caption="Adding the joystick parameter">
466 alias snd-card-0 snd-via82xx
467 options snd-via82xx joystick=1
468 </pre>
469
470 </body>
471 </section>
472 <section>
473 <title>Resources</title>
474 <body>
475
476 <ul>
477 <li><uri link="http://www.alsa-project.org">The ALSA Project</uri></li>
478 <li><uri link="http://www.djcj.org">ALSA Howto's and FAQs</uri></li>
479 <li><uri link="http://linux-sound.org">Linux Sound/MIDI Software</uri></li>
480 </ul>
481
482 </body>
483 </section>
484 </chapter>
485 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20