/[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.58 - (hide annotations) (download) (as text)
Sat Jul 16 11:45:41 2005 UTC (9 years, 2 months ago) by alin
Branch: MAIN
Changes since 1.57: +6 -6 lines
File MIME type: application/xml
- killing a program with KILL (-9) signal is recommended only when it's
really necesarry. Instead, using the default signal (TERM) should kill
[in this case] udevd without any problems. Also, -9 may cause an unclean
exit for the program (if it does not handle the signal properly).
- surrounded /dev with <path>

1 fox2mike 1.51 <?xml version='1.0' encoding="UTF-8"?>
2 alin 1.58 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.57 2005/07/14 19:22:54 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 alin 1.58 <version>2.7</version>
22     <date>2005-07-16</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 fox2mike 1.57 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 drobbins 1.1 </p>
155 swift 1.20
156 fox2mike 1.51 </body>
157     </section>
158     <section id="lspci">
159     <title>Before you proceed</title>
160     <body>
161 swift 1.20
162     <p>
163 fox2mike 1.51 Whichever method of install you choose, you need to know what drivers your
164 fox2mike 1.54 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 drobbins 1.1 </p>
196 swift 1.20
197 fox2mike 1.51 <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 drobbins 1.1 </pre>
201 swift 1.20
202 drobbins 1.1 <p>
203 fox2mike 1.51 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 drobbins 1.1 </p>
212 swift 1.20
213 fox2mike 1.51 </body>
214     </section>
215     <section id="kernel">
216     <title>Using ALSA provided by your Kernel</title>
217     <body>
218    
219 swift 1.35 <p>
220 fox2mike 1.51 If you're a person who likes to keep things simple like I do, then this is
221     the way to go.
222 swift 1.35 </p>
223 swift 1.20
224 fox2mike 1.51 <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 fox2mike 1.54 <impo>
236     <c>genkernel</c> users should now run <c>genkernel --menuconfig</c> and then follow
237     the instructions in <uri link="#doc_chap2_pre3">Kernel Options for ALSA</uri>.
238     </impo>
239    
240 fox2mike 1.51 <pre caption="Heading over to the source">
241     # <i>cd /usr/src/linux</i>
242     # <i>make menuconfig</i>
243 erwin 1.26 </pre>
244    
245 fox2mike 1.51 <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 neysx 1.46
250 erwin 1.26 <p>
251 fox2mike 1.51 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 erwin 1.26 </p>
254    
255 fox2mike 1.54 <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 fox2mike 1.51
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 swift 1.35 </pre>
310 swift 1.20
311 fox2mike 1.51 <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 swift 1.20
318 drobbins 1.1 </body>
319     </section>
320 fox2mike 1.51 <section id="alsa-driver">
321     <title>Using the ALSA Driver package</title>
322 drobbins 1.1 <body>
323    
324     <p>
325 fox2mike 1.51 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 drobbins 1.1 </p>
330 swift 1.20
331 fox2mike 1.51 <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, seperate names with spaces)</comment>
342     ALSA_CARDS="emu10k1 via82xx"
343 blubber 1.16 </pre>
344    
345 drobbins 1.1 <p>
346 fox2mike 1.51 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 drobbins 1.1 </p>
350 swift 1.20
351 fox2mike 1.54 <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 fox2mike 1.51 <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 drobbins 1.1 </pre>
384 swift 1.20
385 drobbins 1.1 <p>
386 fox2mike 1.54 Now all you have to do is type the magic words... and no, it's not abracadabra.
387 drobbins 1.1 </p>
388 swift 1.20
389 fox2mike 1.51 <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 drobbins 1.1 </body>
399     </section>
400 swift 1.35 </chapter>
401 fox2mike 1.51
402 swift 1.35 <chapter>
403 fox2mike 1.51 <title>Configuring/Testing ALSA</title>
404     <section id="alsa-utilities">
405     <title>ALSA Utilities</title>
406 drobbins 1.1 <body>
407 swift 1.20
408 drobbins 1.1 <p>
409 fox2mike 1.51 <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 drobbins 1.1 </p>
413 swift 1.12
414 fox2mike 1.51 <pre caption="Install alsa-utils">
415     # <i>emerge alsa-utils</i>
416 drobbins 1.1 </pre>
417 swift 1.20
418 fox2mike 1.51 <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 drobbins 1.1 <p>
438 fox2mike 1.51 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 swift 1.20 </p>
441    
442 fox2mike 1.51 <pre caption="Invoking alsaconf">
443     # <i>alsaconf</i>
444 drobbins 1.1 </pre>
445 swift 1.20
446 fox2mike 1.51 <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 fox2mike 1.54 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 fox2mike 1.51 </p>
455    
456 swift 1.35 </body>
457     </section>
458 fox2mike 1.51 <section id="initscript">
459     <title>ALSA Initscript</title>
460 swift 1.35 <body>
461 swift 1.20
462 drobbins 1.1 <p>
463 fox2mike 1.51 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 neysx 1.56 this for you and is called <c>alsasound</c>. Add it to the boot runlevel.
467 drobbins 1.1 </p>
468 swift 1.20
469 neysx 1.56 <pre caption="Adding ALSA to the boot runlevel">
470 fox2mike 1.54 # <i>rc-update add alsasound boot</i>
471     * alsasound added to runlevel boot
472 fox2mike 1.51 * rc-update complete.
473 drobbins 1.1 </pre>
474 swift 1.20
475 fox2mike 1.51 <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 drobbins 1.1 </body>
482     </section>
483     <section>
484 fox2mike 1.54 <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 fox2mike 1.51 <title>Volume Check!</title>
508 drobbins 1.1 <body>
509 swift 1.20
510 drobbins 1.1 <p>
511 fox2mike 1.51 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 swift 1.20 </p>
515    
516 fox2mike 1.51 <pre caption="Start the service">
517 fox2mike 1.54 <comment>(ALSA as modules)</comment>
518 swift 1.35 # <i>/etc/init.d/alsasound start</i>
519 fox2mike 1.51 * 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 fox2mike 1.54 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 fox2mike 1.51 </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 drobbins 1.1 </pre>
542 swift 1.20
543 fox2mike 1.54 <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 alin 1.58 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 fox2mike 1.54 </impo>
550    
551 fox2mike 1.51 <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 fox2mike 1.54 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 fox2mike 1.51 </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 drobbins 1.1 </body>
599     </section>
600     <section>
601 fox2mike 1.51 <title>Sound Check!</title>
602 drobbins 1.1 <body>
603 swift 1.20
604 drobbins 1.1 <p>
605 fox2mike 1.54 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 th 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 fox2mike 1.51 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 drobbins 1.1 </p>
646 swift 1.20
647 fox2mike 1.51 <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 drobbins 1.1 </pre>
671 swift 1.20
672 fox2mike 1.51 </body>
673     </section>
674     <section>
675 fox2mike 1.54 <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 fox2mike 1.51 <title>Issues?</title>
688     <body>
689    
690 drobbins 1.1 <p>
691 fox2mike 1.51 If for some reason you're unable to hear sound, the first thing to do would
692 fox2mike 1.54 be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of
693 fox2mike 1.51 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 drobbins 1.1 </p>
696 swift 1.20
697 drobbins 1.1 <p>
698 fox2mike 1.51 <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 drobbins 1.1 </p>
702 swift 1.20
703 fox2mike 1.51 <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 cam 1.47
715 fox2mike 1.51 <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 neysx 1.46
730 fox2mike 1.51 Synth devices: NOT ENABLED IN CONFIG
731 neysx 1.46
732 fox2mike 1.51 Midi devices:
733     0: EMU10K1 MPU-401 (UART)
734 swift 1.20
735 fox2mike 1.51 Timers:
736     7: system timer
737 neysx 1.46
738 fox2mike 1.51 Mixers:
739     0: SigmaTel STAC9721/23
740     </pre>
741 swift 1.20
742 erwin 1.26 </body>
743     </section>
744     </chapter>
745 fox2mike 1.51
746 erwin 1.26 <chapter>
747 fox2mike 1.51 <title>Other things ALSA</title>
748 erwin 1.26 <section>
749 fox2mike 1.51 <title>Setting up MIDI support</title>
750 erwin 1.26 <body>
751    
752     <p>
753 fox2mike 1.51 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 erwin 1.26 </p>
760    
761 fox2mike 1.51 <pre caption="Installing awesfx">
762 erwin 1.26 # <i>emerge awesfx</i>
763     </pre>
764    
765 fox2mike 1.51 <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 erwin 1.26 <p>
772 fox2mike 1.51 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 erwin 1.26 </p>
777    
778 fox2mike 1.51 <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 erwin 1.26
784 fox2mike 1.51 <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 erwin 1.26 </pre>
790    
791 swift 1.35 <p>
792 fox2mike 1.51 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 swift 1.35 </p>
796 erwin 1.26
797 fox2mike 1.51 <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 swift 1.32
810 erwin 1.26 </body>
811     </section>
812 fox2mike 1.51 <section id="vsynth">
813     <title>Virtual Synthesizers</title>
814 erwin 1.26 <body>
815    
816     <p>
817 fox2mike 1.51 If your sound card lacks a hardware synthesizer, you could use a virtual one
818     like <c>timidity++</c>. Installation is a breeze.
819 erwin 1.26 </p>
820    
821 fox2mike 1.51 <pre caption="Installing timidity++">
822 erwin 1.26 # <i>emerge timidity++</i>
823     </pre>
824    
825     <p>
826 fox2mike 1.51 For timidity to play sounds, it needs a sound font. If you do not have any,
827 neysx 1.46 install <c>timidity-eawpatches</c> or <c>timidity-shompatches</c> which will
828 fox2mike 1.51 give you some sound fonts. You can have multiple sound font configurations
829 neysx 1.46 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 fox2mike 1.53 <c>timidity-update</c> tool provided in the timidity++ package.
832 cam 1.33 </p>
833    
834 fox2mike 1.51 <pre caption="Installing sound fonts">
835 cam 1.33 # <i>emerge timidity-eawpatches</i>
836 cam 1.47 # <i>timidity-update -g -s eawpatches</i>
837 neysx 1.46
838 cam 1.47 <comment>(or)</comment>
839 neysx 1.46
840     # <i>emerge timidity-shompatches</i>
841 cam 1.47 # <i>timidity-update -g -s shompatches</i>
842 cam 1.33 </pre>
843    
844     <p>
845 swift 1.35 Don't forget to add <c>timidity</c> to the default runlevel.
846 erwin 1.26 </p>
847    
848 swift 1.35 <pre caption="Adding timidity to the default runlevel">
849 erwin 1.26 # <i>rc-update add timidity default</i>
850     # <i>/etc/init.d/timidity start</i>
851     </pre>
852    
853 drobbins 1.1 <p>
854 fox2mike 1.51 You can now try out <uri link="#doc_chap4_pre3">Playing MIDI</uri> files.
855 erwin 1.26 </p>
856    
857 drobbins 1.1 </body>
858     </section>
859     <section>
860 swift 1.35 <title>Tools and Firmware</title>
861 drobbins 1.1 <body>
862 swift 1.20
863     <p>
864 swift 1.35 Some specific sound cards can benefit from certain tools provided by the
865 cam 1.36 <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need
866 swift 1.35 <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 swift 1.20 </p>
869    
870 swift 1.35 <pre caption="Selecting ALSA Tools in /etc/make.conf">
871     ALSA_TOOLS="as10k1 ac3dec"
872 drobbins 1.1 </pre>
873 swift 1.20
874 erwin 1.26 <p>
875 fox2mike 1.51 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 erwin 1.26 </p>
878    
879 swift 1.35 <pre caption="Installing ALSA Tools">
880     # <i>emerge alsa-tools</i>
881 erwin 1.26 </pre>
882    
883     </body>
884     </section>
885     <section>
886 fox2mike 1.51 <title>A Big thank you to...</title>
887 swift 1.21 <body>
888    
889     <p>
890 fox2mike 1.51 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 swift 1.21 </p>
894    
895 swift 1.17 </body>
896     </section>
897 drobbins 1.1 <section>
898 fox2mike 1.51 <title>References</title>
899 drobbins 1.1 <body>
900 swift 1.20
901 drobbins 1.1 <ul>
902 fox2mike 1.51 <li><uri link="http://www.alsa-project.org/">The ALSA Project</uri></li>
903 swift 1.35 <li><uri link="http://linux-sound.org">Linux Sound/MIDI Software</uri></li>
904 drobbins 1.1 </ul>
905 swift 1.20
906 drobbins 1.1 </body>
907     </section>
908     </chapter>
909     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20