/[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.60 - (show annotations) (download) (as text)
Tue Aug 30 11:38:02 2005 UTC (9 years, 1 month ago) by fox2mike
Branch: MAIN
Changes since 1.59: +4 -4 lines
File MIME type: application/xml
Fixed genkernel command options. genkernel --menuconfig is wrong.

1 <?xml version='1.0' encoding="UTF-8"?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.59 2005/07/26 17:28:11 vanquirius Exp $ -->
3
4 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5
6 <guide link="/doc/en/alsa-guide.xml">
7 <title>Gentoo Linux ALSA Guide</title>
8
9 <author title="Author">
10 <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
11 </author>
12
13 <abstract>
14 This document helps a user setup ALSA on Gentoo Linux.
15 </abstract>
16
17 <!-- The content of this document is licensed under the CC-BY-SA license -->
18 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
19 <license/>
20
21 <version>2.8</version>
22 <date>2005-08-30</date>
23
24 <chapter>
25 <title>Introduction</title>
26 <section>
27 <title>What is ALSA?</title>
28 <body>
29
30 <p>
31 ALSA, which stands for <e>Advanced Linux Sound Architecture</e>, provides
32 audio and MIDI (<e>Musical Instrument Digital Interface</e>) functionality to
33 the Linux operating system. ALSA is the default sound subsystem in the 2.6
34 kernel thereby replacing OSS (<e>Open Sound System</e>), which was used in the
35 2.4 kernels.
36 </p>
37
38 <p>
39 ALSA's main features include efficient support for all types of audio
40 interfaces ranging from consumer sound cards to professional sound
41 equipment, fully modularized drivers, SMP and thread safety, backward
42 compatibility with OSS and a user-space library <c>alsa-lib</c> to make
43 application development a breeze.
44 </p>
45
46 </body>
47 </section>
48 <section>
49 <title>ALSA on Gentoo</title>
50 <body>
51
52 <p>
53 One of Gentoo's main strengths lies in giving the user maximum control over
54 how a system is installed/configured. ALSA on Gentoo follows the same
55 principle. There are two ways you can get ALSA support up and running on your
56 system. We shall look at them in detail in the next chapter.
57 </p>
58
59 </body>
60 </section>
61 </chapter>
62
63 <chapter>
64 <title>Installing ALSA</title>
65 <section>
66 <title>Options</title>
67 <body>
68
69 <warn>
70 The methods shown below are mutually exclusive. You cannot have ALSA compiled
71 in your kernel and use <c>media-sound/alsa-driver</c>. It <e>will</e> fail.
72 </warn>
73
74 <p>
75 The two options are :
76 </p>
77
78 <ol>
79 <li>
80 Use ALSA provided by your kernel. This is the preferred/recommended
81 method.
82 </li>
83 <li>
84 Use Gentoo's <c>media-sound/alsa-driver</c> package.
85 </li>
86 </ol>
87
88 <p>
89 We shall take a peek into both before finally deciding on one.
90 </p>
91
92 <p>
93 If you were to use ALSA provided by the kernel, the following are the pros and
94 cons :
95 </p>
96
97 <table>
98 <tr>
99 <th>Kernel ALSA</th>
100 <th>Pros and Cons</th>
101 </tr>
102 <tr>
103 <th>+</th>
104 <ti>Pretty stable as drivers are integrated into kernel.</ti>
105 </tr>
106 <tr>
107 <th>+</th>
108 <ti>One shot solution, no repeating emerges.</ti>
109 </tr>
110 <tr>
111 <th>-</th>
112 <ti>Might be a slightly older version than <c>alsa-driver</c>.</ti>
113 </tr>
114 </table>
115
116 <p>
117 And, if you were to use alsa-driver,
118 </p>
119
120 <table>
121 <tr>
122 <th>alsa-driver</th>
123 <th>Pros and Cons</th>
124 </tr>
125 <tr>
126 <th>+</th>
127 <ti>Latest drivers from the ALSA Project.</ti>
128 </tr>
129 <tr>
130 <th>-</th>
131 <ti>Every kernel recompile requires a re-emerge of <c>alsa-driver</c>.</ti>
132 </tr>
133 <tr>
134 <th>-</th>
135 <ti>Needs certain kernel config options disabled to work correctly.</ti>
136 </tr>
137 </table>
138
139 </body>
140 </section>
141 <section>
142 <title>So...</title>
143 <body>
144
145 <p>
146 The main difference between using <c>alsa-driver</c> and ALSA that comes with
147 the kernel is that <c>alsa-driver</c> is generally more up to date than the
148 version in the kernel. Since this does not make any huge difference as
149 such, you are encouraged to use the ALSA provided by the kernel for ease of use.
150 Before reporting any sound related issues to <uri
151 link="https://bugs.gentoo.org">Gentoo Bugzilla</uri>, please try to reproduce
152 them using <c>alsa-driver</c> and file the bug report no matter what the
153 result.
154 </p>
155
156 </body>
157 </section>
158 <section id="lspci">
159 <title>Before you proceed</title>
160 <body>
161
162 <p>
163 Whichever method of install you choose, you need to know what drivers your
164 sound card uses. In most cases, sound cards (onboard and otherwise) are PCI
165 based and <c>lspci</c> will help you in digging out the required information.
166 Please <c>emerge sys-apps/pciutils</c> to get <c>lspci</c>, if you don't have it
167 installed already. In case you have a USB sound card, <c>lsusb</c> from
168 <c>sys-apps/usbutils</c> <e>might</e> be of help. For ISA cards, try using
169 <c>sys-apps/isapnptools</c>. Also, the following pages <e>may</e> help users
170 with ISA based sound cards.
171 </p>
172
173 <ul>
174 <li>
175 <uri link="http://www.roestock.demon.co.uk/isapnptools/">The ISAPNPTOOLS
176 Page</uri>
177 </li>
178 <li>
179 <uri link="http://www2.linuxjournal.com/article/3269">LinuxJournal PnP
180 Article</uri>
181 </li>
182 <li>
183 <uri link="http://www.tldp.org/HOWTO/Sound-HOWTO/x320.html">TLDP Sound
184 HowTo</uri>
185 </li>
186 </ul>
187
188 <note>
189 For ease of use/explanation, we assume the user has a PCI based sound card for
190 the remainder of this guide.
191 </note>
192
193 <p>
194 We now proceed to find out details about the sound card.
195 </p>
196
197 <pre caption="Soundcard Details">
198 # <i>lspci -v | grep -i audio</i>
199 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
200 </pre>
201
202 <p>
203 We now know that the sound card on the machine is a Sound Blaster Live! and
204 the card manufacturer is Creative Labs. Head over to the
205 <uri link="http://www.alsa-project.org/alsa-doc/"> ALSA Soundcard Matrix</uri>
206 page and select Creative Labs from the drop down menu. You will be taken to
207 the Creative Labs matrix page where you can see that the SB Live! uses the
208 <c>emu10k1</c> module. That is the information we need for now. If you are
209 interested in detailed information, you can click on the link next to the
210 "Details" and that will take you to the <c>emu10k1</c> specific page.
211 </p>
212
213 </body>
214 </section>
215 <section id="kernel">
216 <title>Using ALSA provided by your Kernel</title>
217 <body>
218
219 <p>
220 If you're a person who likes to keep things simple like I do, then this is
221 the way to go.
222 </p>
223
224 <note>
225 Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless
226 you are specifically using the 2.4 profile, <c>gentoo-sources</c> will be a
227 2.6 kernel on <e>most</e> architectures. Please check that your kernel is a
228 2.6 series kernel. This method will <e>not</e> work on a 2.4 kernel.
229 </note>
230
231 <p>
232 Let us now configure the kernel to enable ALSA.
233 </p>
234
235 <impo>
236 <c>genkernel</c> users should now run <c>genkernel --menuconfig all</c> and then follow
237 the instructions in <uri link="#doc_chap2_pre3">Kernel Options for ALSA</uri>.
238 </impo>
239
240 <pre caption="Heading over to the source">
241 # <i>cd /usr/src/linux</i>
242 # <i>make menuconfig</i>
243 </pre>
244
245 <note>
246 The above example assumes that <path>/usr/src/linux</path> symlink points to
247 the kernel sources you want to use. Please ensure the same before proceeding.
248 </note>
249
250 <p>
251 Now we will look at some of the options we will have to enable in the 2.6
252 kernel to ensure proper ALSA support for our sound card.
253 </p>
254
255 <p>
256 Please note that for the sake of ease, all examples show ALSA built as modules.
257 It is advisable to follow the same as it then allows the use of <c>alsaconf</c>
258 which is a boon when you want to configure your card. Please do <e>not</e> skip the <uri
259 link="#alsa-config">Configuration</uri> section of this document. If you still
260 like to have options built-in, ensure that you make changes to your config
261 accordingly.
262 </p>
263
264 <pre caption="Kernel Options for ALSA">
265 Device Drivers ---&gt;
266 Sound ---&gt;
267
268 <comment>(This needs to be enabled)</comment>
269 &lt;M&gt; Sound card support
270
271 <comment>(Make sure OSS is disabled)</comment>
272 Open Sound System ---&gt;
273 &lt; &gt; Open Sound System (DEPRECATED)
274
275 <comment>(Move one step back and enter ALSA)</comment>
276 Advanced Linux Sound Architecture ---&gt;
277 &lt;M&gt; Advanced Linux Sound Architecture
278 <comment>(Select this if you want MIDI sequencing and routing)</comment>
279 &lt;M&gt; Sequencer support
280 <comment>(Old style /dev/mixer* and /dev/dsp* support. Recommended.)</comment>
281 &lt;M&gt; OSS Mixer API
282 &lt;M&gt; OSS PCM (digital audio) API
283
284 <comment>(You now have a choice of devices to enable support for. Generally,
285 you will have one type of device and not more. If you have more than one
286 sound card, please enable them all here.)</comment>
287
288 <comment>(Mostly for testing and development purposes, not needed for normal
289 users unless you know what you are doing.)</comment>
290 Generic devices ---&gt;
291
292 <comment>(For ISA Sound cards)</comment>
293 ISA devices ---&gt;
294 <comment>(IF you had the Gravis, you would select this option)</comment>
295 &lt;M&gt; Gravis UltraSound Extreme
296
297 <comment>(Move one level back and into PCI devices. Most sound cards today are
298 PCI devices)</comment>
299 PCI devices ---&gt;
300 <comment>(We now select the emu10k1 driver for our card)</comment>
301 &lt;M&gt; Emu10k1 (SB Live!, Audigy, E-mu APS)
302 <comment>(Or an Intel card would be)</comment>
303 &lt;M&gt; Intel/SiS/nVidia/AMD/ALi AC97 Controller
304 <comment>(Or if you have a VIA Card)</comment>
305 &lt;M&gt; VIA 82C686A/B, 8233/8235 AC97 Controller
306
307 <comment>(Move one level back and select in case you have an USB sound card)</comment>
308 USB Devices ---&gt;
309 </pre>
310
311 <p>
312 Now that your options are set, you can (re)compile the kernel and ALSA support
313 for your card should be functional once you reboot into the new kernel.
314 You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and
315 see if everything is working as it should.
316 </p>
317
318 </body>
319 </section>
320 <section id="alsa-driver">
321 <title>Using the ALSA Driver package</title>
322 <body>
323
324 <p>
325 So you've decided to go the <c>alsa-driver</c> way. Let's get started then.
326 There are a few minor things to be done to ensure only the drivers for your
327 sound card are compiled. Although this is not really necessary, it cuts down
328 on the unnecessary drivers that will be compiled otherwise.
329 </p>
330
331 <p>
332 If you don't have an idea of what drivers your sound card might need, please
333 take a look at the <uri link="#lspci">lspci</uri> section of this guide. Once
334 you have your driver name (<c>emu10k1</c> in our example), edit
335 <path>/etc/make.conf</path> and add a variable, <c>ALSA_CARDS</c>.
336 </p>
337
338 <pre caption="Adding ALSA_CARDS to make.conf">
339 <comment>(For one sound card)</comment>
340 ALSA_CARDS="emu10k1"
341 <comment>(For more than one, separate names with spaces)</comment>
342 ALSA_CARDS="emu10k1 via82xx"
343 </pre>
344
345 <p>
346 If you have compiled your kernel and want to use <c>alsa-driver</c>, please
347 ensure the following before proceeding, else <c>alsa-driver</c> is likely to
348 fail. The next code listing gives you one way of performing the checks.
349 </p>
350
351 <note>
352 <c>genkernel</c> users can proceed with <uri link="#doc_chap2_pre6">Installing
353 alsa-driver</uri> as their configuration is in sync with the one shown below by
354 default.
355 </note>
356
357 <ol>
358 <li>
359 <c>CONFIG_SOUND</c> is set. (Basic Sound support enabled)
360 </li>
361 <li>
362 <c>CONFIG_SOUND_PRIME</c> is not set. (In-built OSS support disabled)
363 </li>
364 <li>
365 <c>CONFIG_SND</c> is not set. (In-built ALSA support disabled)
366 </li>
367 <li>
368 <path>/usr/src/linux</path> points to the kernel you want ALSA working on.
369 </li>
370 </ol>
371
372 <pre caption=".config checks">
373 <comment>(Assuming the linux symlink points to the correct kernel)</comment>
374 # <i>cd /usr/src/linux</i>
375 # <i>grep SOUND .config</i>
376 <comment>(1. is true)</comment>
377 CONFIG_SOUND=y
378 <comment>(2. is true)</comment>
379 CONFIG_SOUND_PRIME is not set
380 # <i>grep SND .config</i>
381 <comment>(and 3. is true)</comment>
382 CONFIG_SND is not set
383 </pre>
384
385 <p>
386 Now all you have to do is type the magic words... and no, it's not abracadabra.
387 </p>
388
389 <pre caption="Installing alsa-driver">
390 # <i>emerge alsa-driver</i>
391 </pre>
392
393 <impo>
394 Please note that you will have to run <c>emerge alsa-driver</c> after every
395 kernel (re)compile, as the earlier drivers are deleted.
396 </impo>
397
398 </body>
399 </section>
400 </chapter>
401
402 <chapter>
403 <title>Configuring/Testing ALSA</title>
404 <section id="alsa-utilities">
405 <title>ALSA Utilities</title>
406 <body>
407
408 <p>
409 <c>alsa-utils</c> forms an integral part of ALSA as it has a truckload of
410 programs that are highly useful, including the ALSA Initscripts. Hence we
411 strongly recommend that you install <c>alsa-utils</c>
412 </p>
413
414 <pre caption="Install alsa-utils">
415 # <i>emerge alsa-utils</i>
416 </pre>
417
418 <note>
419 If you activated ALSA in your <uri link="#kernel">kernel</uri> <e>and</e> did
420 not compile ALSA as modules, please proceed to the
421 <uri link="#initscript">ALSA Initscript</uri> section. The rest of you need
422 to configure ALSA. This is made very easy by the existence of the
423 <c>alsaconf</c> tool provided by <c>alsa-utils</c>.
424 </note>
425
426 </body>
427 </section>
428 <section id="alsa-config">
429 <title>Configuration</title>
430 <body>
431
432 <note>
433 Please shut down any programs that <e>might</e> access the sound card while
434 running <c>alsaconf</c>.
435 </note>
436
437 <p>
438 The easiest way to configure your sound card is to run <c>alsaconf</c>. Just
439 type <c>alsaconf</c> in a shell as root.
440 </p>
441
442 <pre caption="Invoking alsaconf">
443 # <i>alsaconf</i>
444 </pre>
445
446 <p>
447 You will now see a neat menu guided interface that will automatically probe
448 your devices and try to find out your sound card. You will be asked to pick
449 your sound card from a list. Once that's done, it will ask you permission to
450 automatically make required changes to <path>/etc/modules.d/alsa</path>.
451 It will then adjust your volume settings to optimum levels, run
452 <c>modules-update</c> and start the <path>/etc/init.d/alsasound</path> service.
453 Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA initscript.
454 </p>
455
456 </body>
457 </section>
458 <section id="initscript">
459 <title>ALSA Initscript</title>
460 <body>
461
462 <p>
463 We're now almost all setup. Whichever method you chose to install ALSA, you'll
464 need to have something load your modules or initialize ALSA and restore your
465 volume settings when your system comes up. The ALSA Initscript handles all of
466 this for you and is called <c>alsasound</c>. Add it to the boot runlevel.
467 </p>
468
469 <pre caption="Adding ALSA to the boot runlevel">
470 # <i>rc-update add alsasound boot</i>
471 * alsasound added to runlevel boot
472 * rc-update complete.
473 </pre>
474
475 <p>
476 Next, just check the <path>/etc/conf.d/alsasound</path> file and ensure that
477 SAVE_ON_STOP variable is set to yes. This saves your sound settings when you
478 shutdown your system.
479 </p>
480
481 </body>
482 </section>
483 <section>
484 <title>Audio Group</title>
485 <body>
486
487 <p>
488 Before we move on to testing, there's one last <e>important</e> thing that needs
489 to be setup. Rule of thumb in a *nix OS : Do not run as root unless needed.
490 This applies here as well ;) How? Well, most of the times you should be logged
491 in as a user and would like to listen to music or access your soundcard. For
492 that to happen, you need to be in the "audio" group. At this point, we'll add
493 users to the audio group, so that they won't have any issues when they want to
494 access sound devices. We'll use <c>gpasswd</c> here and you need to be logged in
495 as root for this to work.
496 </p>
497
498 <pre caption="Adding users to the audio group">
499 <comment>(Substitute &lt;username&gt; with your user)</comment>
500 # <i>gpasswd -a &lt;username&gt; audio </i>
501 Adding user &lt;username&gt; to group audio
502 </pre>
503
504 </body>
505 </section>
506 <section>
507 <title>Volume Check!</title>
508 <body>
509
510 <p>
511 We've completed all the setups and pre-requisites, so let's fire up ALSA. If
512 you ran <c>alsaconf</c>, you can skip this step, since <c>alsaconf</c> already
513 does this for you.
514 </p>
515
516 <pre caption="Start the service">
517 <comment>(ALSA as modules)</comment>
518 # <i>/etc/init.d/alsasound start</i>
519 * Loading ALSA modules ...
520 * Loading: snd-card-0 ... [ ok ]
521 * Loading: snd-pcm-oss ... [ ok ]
522 * Loading: snd-seq ... [ ok ]
523 * Loading: snd-emu10k1-synth ... [ ok ]
524 * Loading: snd-seq-midi ... [ ok ]
525 * Restoring Mixer Levels ... [ ok ]
526 <comment>(ALSA compiled in)</comment>
527 # <i>/etc/init.d/alsasound start</i>
528 * Loading ALSA modules ...
529 * Restoring Mixer Levels ... [ ok ]
530 </pre>
531
532 <p>
533 Now that the required things have been taken care of, we need to check up on
534 the volume as in certain cases, it is muted. We use <c>alsamixer</c> for this
535 purpose.
536 </p>
537
538 <pre caption="Starting alsamixer">
539 <comment>(Opens up a console program. Only required settings are shown)</comment>
540 # <i>alsamixer</i>
541 </pre>
542
543 <impo>
544 If you have issues starting up <c>alsamixer</c> and get errors such as
545 alsamixer: function snd_ctl_open failed for default: No such file or directory,
546 this is usually an issue with udev setting up the devices. Run <c>killall
547 udevd; udevstart</c> to reload <path>/dev</path> entries and fire up
548 <c>alsamixer</c>. It should solve the issue.
549 </impo>
550
551 <p>
552 This is how the ALSA Mixer <e>might</e> look the first time you open it. Pay
553 attention to the Master and PCM channels which both have an MM below them.
554 That means they are muted. If you try to play anything with <c>alsamixer</c>
555 in this state, you will not hear anything on your speakers.
556 </p>
557
558 <figure link="/images/docs/alsa-mixermuted.png" short="AlsaMixer Muted" caption="The Alsa Mixer Main Window, Muted"/>
559
560 <p>
561 Now, we shall unmute the channels, and set volume levels as needed.
562 </p>
563
564 <warn>
565 Both Master <e>and</e> PCM need to be unmuted and set to audible volume levels
566 if you want to hear some output on your speakers.
567 </warn>
568
569 <ul>
570 <li>
571 To move between channels, use your left and right arrow keys. (&lt;-
572 &amp; -&gt;)
573 </li>
574 <li>
575 To toggle mute, move to the specific channel, for example Master and press
576 the <e>m</e> key on the keyboard.
577 </li>
578 <li>
579 To increase and decrease the volume levels, use the up and down arrow keys
580 respectively.
581 </li>
582 </ul>
583
584 <note>
585 Be careful when setting your Bass and Treble values. 50 is usually a good
586 number for both. Extremely high values of Bass may cause <e>jarring</e>
587 on speakers that are not designed to handle them.
588 </note>
589
590 <p>
591 After you're all done, your ALSA Mixer should look similar to the one below.
592 Note the 00 instead of the MM and also the volume levels for some optimum
593 settings.
594 </p>
595
596 <figure link="/images/docs/alsa-mixerunmuted.png" short="AlsaMixer Unmuted" caption="Alsa Mixer ready to roll"/>
597
598 </body>
599 </section>
600 <section>
601 <title>Sound Check!</title>
602 <body>
603
604 <p>
605 The irritating way to check your soundcard is to see if you can hear static on
606 the speakers. This isn't exactly fun, but hey, it tells you the card is
607 configured and working.
608 </p>
609
610 <pre caption="Bring on the static">
611 # <i>cat /dev/urandom > /dev/dsp</i>
612 </pre>
613
614 <note>
615 <path>/dev/dsp</path> is a symlink to <path>/dev/sound/dsp</path> and should be
616 automatically created. Try re-directing the output to
617 <path>/dev/sound/dsp</path> in case you don't get a "No such file or directory"
618 error.
619 </note>
620
621 <p>
622 You should hear static. Press <c>Ctrl + C</c> to stop. If you don't hear
623 anything, now is a good time to go back and check/trace out the issue and
624 rectify it.
625 </p>
626
627 <p>
628 Finally. Some music. If everything above is perfect, you should now be able to
629 listen to some good music. A quick way to test is to use a command line tool
630 like <c>media-sound/madplay</c>. You could also use something more well known
631 like <c>mpg123</c> or <c>xmms</c>. If you are an ogg fan, you could use
632 <c>ogg123</c> provided by <c>media-sound/vorbis-tools</c>. Use any player you
633 are comfortable with. As always, <c>emerge</c> what you need.
634 </p>
635
636 <pre caption="Getting the software">
637 <comment>(Install the applications you want)</comment>
638 # <i>emerge madplay mpg123 xmms</i>
639 <comment>(To play .ogg files)</comment>
640 # <i>emerge vorbis-tools</i>
641 </pre>
642
643 <p>
644 And then play your favorite sound track...
645 </p>
646
647 <pre caption="Playing Music">
648 # <i>madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3</i>
649 MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
650 Title: Dread Rock
651 Artist: Paul Oakenfold
652 Album: Matrix Reloaded
653 Year: 2003
654 Genre: Soundtrack
655 Soundtrack
656 00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC
657
658 # <i>ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg</i>
659 Audio Device: Advanced Linux Sound Architecture (ALSA) output
660
661 Playing: Paul Oakenfold - Dread Rock.ogg
662 Ogg Vorbis stream: 2 channel, 44100 Hz
663 Genre: Soundtrack
664 Transcoded: mp3;160
665 Title: Dread Rock
666 Artist: Paul Oakenfold
667 Date: 2003
668 Album: Matrix Reloaded
669 Time: 00:11.31 [04:28.75] of 04:40.06 (200.6 kbps) Output Buffer 96.9%
670 </pre>
671
672 </body>
673 </section>
674 <section>
675 <title>ALSA and USE</title>
676 <body>
677
678 <p>
679 You can now add the <c>alsa</c> use flag to <path>/etc/make.conf</path> to
680 ensure that your applications that support ALSA get built with it. Some
681 architectures like x86 and amd64 have the flag enabled by default.
682 </p>
683
684 </body>
685 </section>
686 <section>
687 <title>Issues?</title>
688 <body>
689
690 <p>
691 If for some reason you're unable to hear sound, the first thing to do would
692 be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of
693 the issues lie with muted channels or low volume. Also check your Window
694 Manager's sound applet and verify that volumes are set to audible levels.
695 </p>
696
697 <p>
698 <path>/proc</path> is your friend. And in this case, <path>/proc/asound</path>
699 is your best friend. We shall just take a short look at how much info is made
700 available to us there.
701 </p>
702
703 <pre caption="Fun with /proc/asound">
704 <comment>(First and foremost, if /proc/asound/cards shows your card, ALSA has
705 picked up your sound card fine.)</comment>
706 # <i>cat /proc/asound/cards</i>
707 0 [Live ]: EMU10K1 - Sound Blaster Live!
708 Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
709
710 <comment>(If you run ALSA off the kernel like I do and wonder how far behind
711 you are from alsa-driver, this displays current running ALSA version)</comment>
712 # <i>cat /proc/asound/version</i>
713 Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).
714
715 <comment>(ALSA OSS emulation details)</comment>
716 # <i>cat /proc/asound/oss/sndstat</i>
717 Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code)
718 Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686
719 Config options: 0
720
721 Installed drivers:
722 Type 10: ALSA emulation
723
724 Card config:
725 Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
726
727 Audio devices:
728 0: EMU10K1 (DUPLEX)
729
730 Synth devices: NOT ENABLED IN CONFIG
731
732 Midi devices:
733 0: EMU10K1 MPU-401 (UART)
734
735 Timers:
736 7: system timer
737
738 Mixers:
739 0: SigmaTel STAC9721/23
740 </pre>
741
742 </body>
743 </section>
744 </chapter>
745
746 <chapter>
747 <title>Other things ALSA</title>
748 <section>
749 <title>Setting up MIDI support</title>
750 <body>
751
752 <p>
753 If your sound card is one of those that come with on-board MIDI synthesizers
754 and you would like to listen to some .mid files, you have to install
755 <c>awesfx</c> which is basically a set of utilities for controlling the AWE32
756 driver. We need to install it first. If you don't have a hardware synthesizer,
757 you can use a virtual one. Please see the section on
758 <uri link="#vsynth">Virtual Synthesizers</uri> for more information.
759 </p>
760
761 <pre caption="Installing awesfx">
762 # <i>emerge awesfx</i>
763 </pre>
764
765 <note>
766 You will need to copy over SoundFont (SF2) files from your sound card's driver
767 CD or a Windows installation into <path>/usr/share/sounds/sf2/</path>. For
768 example a sound font file for the Creative SBLive! card would be 8MBGMSFX.SF2.
769 </note>
770
771 <p>
772 After copying over the Soundfont files, we can then play a midi file as shown.
773 You can also add the <c>asfxload</c> command to
774 <path>/etc/conf.d/local.start</path>, so that the sound font is loaded
775 every time the system starts up.
776 </p>
777
778 <note>
779 <path>/mnt</path> paths mentioned in the code listing(s) below will <e>not</e>
780 be the same in your machine. They are just an example. Please be careful to
781 change the path to suit your machine.
782 </note>
783
784 <pre caption="Loading Soundfonts">
785 <comment>(First, copy the Soundfont)</comment>
786 # <i>cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/</i>
787 <comment>(We load the specific Soundfont)</comment>
788 # <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i>
789 </pre>
790
791 <p>
792 You can now play midi files using a program like <c>aplaymidi</c>. Run
793 <c>aplaymidi -l</c> to get a list of available ports and then pick one
794 to play the file on.
795 </p>
796
797 <pre caption="Playing MIDI">
798 <comment>(Check open ports)</comment>
799 # <i>aplaymidi -l</i>
800 Port Client name Port name
801 64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
802 65:0 Emu10k1 WaveTable Emu10k1 Port 0
803 65:1 Emu10k1 WaveTable Emu10k1 Port 1
804 65:2 Emu10k1 WaveTable Emu10k1 Port 2
805 65:3 Emu10k1 WaveTable Emu10k1 Port 3
806 <comment>(Pick a port, and play a mid file)</comment>
807 # <i> aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid</i>
808 </pre>
809
810 </body>
811 </section>
812 <section id="vsynth">
813 <title>Virtual Synthesizers</title>
814 <body>
815
816 <p>
817 If your sound card lacks a hardware synthesizer, you could use a virtual one
818 like <c>timidity++</c>. Installation is a breeze.
819 </p>
820
821 <pre caption="Installing timidity++">
822 # <i>emerge timidity++</i>
823 </pre>
824
825 <p>
826 For timidity to play sounds, it needs a sound font. If you do not have any,
827 install <c>timidity-eawpatches</c> or <c>timidity-shompatches</c> which will
828 give you some sound fonts. You can have multiple sound font configurations
829 installed, and you can place your own in <path>/usr/share/timidity/</path>.
830 To switch between different timidity configurations, you should use the
831 <c>timidity-update</c> tool provided in the timidity++ package.
832 </p>
833
834 <pre caption="Installing sound fonts">
835 # <i>emerge timidity-eawpatches</i>
836 # <i>timidity-update -g -s eawpatches</i>
837
838 <comment>(or)</comment>
839
840 # <i>emerge timidity-shompatches</i>
841 # <i>timidity-update -g -s shompatches</i>
842 </pre>
843
844 <p>
845 Don't forget to add <c>timidity</c> to the default runlevel.
846 </p>
847
848 <pre caption="Adding timidity to the default runlevel">
849 # <i>rc-update add timidity default</i>
850 # <i>/etc/init.d/timidity start</i>
851 </pre>
852
853 <p>
854 You can now try out <uri link="#doc_chap4_pre3">Playing MIDI</uri> files.
855 </p>
856
857 </body>
858 </section>
859 <section>
860 <title>Tools and Firmware</title>
861 <body>
862
863 <p>
864 Some specific sound cards can benefit from certain tools provided by the
865 <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need
866 <c>alsa-tools</c>, be sure to define the ALSA_TOOLS variable in
867 <path>/etc/make.conf</path> with the tools you require. For instance:
868 </p>
869
870 <pre caption="Selecting ALSA Tools in /etc/make.conf">
871 ALSA_TOOLS="as10k1 ac3dec"
872 </pre>
873
874 <p>
875 If the ALSA_TOOLS variable is not set, all available tools will be built.
876 Now, install the <c>alsa-tools</c> (and/or <c>alsa-firmware</c>) package(s):
877 </p>
878
879 <pre caption="Installing ALSA Tools">
880 # <i>emerge alsa-tools</i>
881 </pre>
882
883 </body>
884 </section>
885 <section>
886 <title>A Big thank you to...</title>
887 <body>
888
889 <p>
890 Everyone who contributed to the earlier version of the Gentoo ALSA Guide:
891 Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston,
892 John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.
893 </p>
894
895 </body>
896 </section>
897 <section>
898 <title>References</title>
899 <body>
900
901 <ul>
902 <li><uri link="http://www.alsa-project.org/">The ALSA Project</uri></li>
903 <li><uri link="http://linux-sound.org">Linux Sound/MIDI Software</uri></li>
904 </ul>
905
906 </body>
907 </section>
908 </chapter>
909 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20