/[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.55 - (hide annotations) (download) (as text)
Thu Jul 14 09:05:36 2005 UTC (9 years, 2 months ago) by swift
Branch: MAIN
Changes since 1.54: +4 -4 lines
File MIME type: application/xml
When you add something to the boot run level, you add it to the boot run level :)

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

  ViewVC Help
Powered by ViewVC 1.1.20