/[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.62 - (hide annotations) (download) (as text)
Sat Sep 10 18:02:53 2005 UTC (9 years, 2 months ago) by swift
Branch: MAIN
Changes since 1.61: +5 -4 lines
File MIME type: application/xml
Update grub config after building a new kernel; reported by Rasmus Lerchedahl Petersen

1 fox2mike 1.51 <?xml version='1.0' encoding="UTF-8"?>
2 swift 1.62 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.61 2005/09/09 06:49:31 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.62 <version>2.10</version>
22     <date>2005-09-10</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 fox2mike 1.60 <c>genkernel</c> users should now run <c>genkernel --menuconfig all</c> and then follow
237 fox2mike 1.54 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 swift 1.62 for your card should be functional once you reboot into the new kernel. Don't
314     forget to update your GRUB configuration to use the newly built kernel.
315 fox2mike 1.51 You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and
316     see if everything is working as it should.
317     </p>
318 swift 1.20
319 drobbins 1.1 </body>
320     </section>
321 fox2mike 1.51 <section id="alsa-driver">
322     <title>Using the ALSA Driver package</title>
323 drobbins 1.1 <body>
324    
325     <p>
326 fox2mike 1.51 So you've decided to go the <c>alsa-driver</c> way. Let's get started then.
327     There are a few minor things to be done to ensure only the drivers for your
328     sound card are compiled. Although this is not really necessary, it cuts down
329     on the unnecessary drivers that will be compiled otherwise.
330 drobbins 1.1 </p>
331 swift 1.20
332 fox2mike 1.51 <p>
333     If you don't have an idea of what drivers your sound card might need, please
334     take a look at the <uri link="#lspci">lspci</uri> section of this guide. Once
335     you have your driver name (<c>emu10k1</c> in our example), edit
336     <path>/etc/make.conf</path> and add a variable, <c>ALSA_CARDS</c>.
337     </p>
338    
339     <pre caption="Adding ALSA_CARDS to make.conf">
340     <comment>(For one sound card)</comment>
341     ALSA_CARDS="emu10k1"
342 vanquirius 1.59 <comment>(For more than one, separate names with spaces)</comment>
343 fox2mike 1.51 ALSA_CARDS="emu10k1 via82xx"
344 blubber 1.16 </pre>
345    
346 drobbins 1.1 <p>
347 fox2mike 1.51 If you have compiled your kernel and want to use <c>alsa-driver</c>, please
348     ensure the following before proceeding, else <c>alsa-driver</c> is likely to
349     fail. The next code listing gives you one way of performing the checks.
350 drobbins 1.1 </p>
351 swift 1.20
352 fox2mike 1.54 <note>
353     <c>genkernel</c> users can proceed with <uri link="#doc_chap2_pre6">Installing
354     alsa-driver</uri> as their configuration is in sync with the one shown below by
355     default.
356     </note>
357    
358 fox2mike 1.51 <ol>
359     <li>
360     <c>CONFIG_SOUND</c> is set. (Basic Sound support enabled)
361     </li>
362     <li>
363     <c>CONFIG_SOUND_PRIME</c> is not set. (In-built OSS support disabled)
364     </li>
365     <li>
366     <c>CONFIG_SND</c> is not set. (In-built ALSA support disabled)
367     </li>
368     <li>
369     <path>/usr/src/linux</path> points to the kernel you want ALSA working on.
370     </li>
371     </ol>
372    
373     <pre caption=".config checks">
374     <comment>(Assuming the linux symlink points to the correct kernel)</comment>
375     # <i>cd /usr/src/linux</i>
376     # <i>grep SOUND .config</i>
377     <comment>(1. is true)</comment>
378     CONFIG_SOUND=y
379     <comment>(2. is true)</comment>
380     CONFIG_SOUND_PRIME is not set
381     # <i>grep SND .config</i>
382     <comment>(and 3. is true)</comment>
383     CONFIG_SND is not set
384 drobbins 1.1 </pre>
385 swift 1.20
386 drobbins 1.1 <p>
387 fox2mike 1.54 Now all you have to do is type the magic words... and no, it's not abracadabra.
388 drobbins 1.1 </p>
389 swift 1.20
390 fox2mike 1.51 <pre caption="Installing alsa-driver">
391     # <i>emerge alsa-driver</i>
392     </pre>
393    
394     <impo>
395     Please note that you will have to run <c>emerge alsa-driver</c> after every
396     kernel (re)compile, as the earlier drivers are deleted.
397     </impo>
398    
399 drobbins 1.1 </body>
400     </section>
401 swift 1.35 </chapter>
402 fox2mike 1.51
403 swift 1.35 <chapter>
404 fox2mike 1.51 <title>Configuring/Testing ALSA</title>
405     <section id="alsa-utilities">
406     <title>ALSA Utilities</title>
407 drobbins 1.1 <body>
408 swift 1.20
409 drobbins 1.1 <p>
410 fox2mike 1.51 <c>alsa-utils</c> forms an integral part of ALSA as it has a truckload of
411     programs that are highly useful, including the ALSA Initscripts. Hence we
412     strongly recommend that you install <c>alsa-utils</c>
413 drobbins 1.1 </p>
414 swift 1.12
415 fox2mike 1.51 <pre caption="Install alsa-utils">
416     # <i>emerge alsa-utils</i>
417 drobbins 1.1 </pre>
418 swift 1.20
419 fox2mike 1.51 <note>
420     If you activated ALSA in your <uri link="#kernel">kernel</uri> <e>and</e> did
421     not compile ALSA as modules, please proceed to the
422     <uri link="#initscript">ALSA Initscript</uri> section. The rest of you need
423     to configure ALSA. This is made very easy by the existence of the
424     <c>alsaconf</c> tool provided by <c>alsa-utils</c>.
425     </note>
426    
427     </body>
428     </section>
429     <section id="alsa-config">
430     <title>Configuration</title>
431     <body>
432    
433     <note>
434     Please shut down any programs that <e>might</e> access the sound card while
435     running <c>alsaconf</c>.
436     </note>
437    
438 drobbins 1.1 <p>
439 fox2mike 1.51 The easiest way to configure your sound card is to run <c>alsaconf</c>. Just
440     type <c>alsaconf</c> in a shell as root.
441 swift 1.20 </p>
442    
443 fox2mike 1.51 <pre caption="Invoking alsaconf">
444     # <i>alsaconf</i>
445 drobbins 1.1 </pre>
446 swift 1.20
447 fox2mike 1.51 <p>
448     You will now see a neat menu guided interface that will automatically probe
449     your devices and try to find out your sound card. You will be asked to pick
450     your sound card from a list. Once that's done, it will ask you permission to
451     automatically make required changes to <path>/etc/modules.d/alsa</path>.
452 fox2mike 1.54 It will then adjust your volume settings to optimum levels, run
453     <c>modules-update</c> and start the <path>/etc/init.d/alsasound</path> service.
454     Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA initscript.
455 fox2mike 1.51 </p>
456    
457 swift 1.35 </body>
458     </section>
459 fox2mike 1.51 <section id="initscript">
460     <title>ALSA Initscript</title>
461 swift 1.35 <body>
462 swift 1.20
463 drobbins 1.1 <p>
464 fox2mike 1.51 We're now almost all setup. Whichever method you chose to install ALSA, you'll
465     need to have something load your modules or initialize ALSA and restore your
466     volume settings when your system comes up. The ALSA Initscript handles all of
467 neysx 1.56 this for you and is called <c>alsasound</c>. Add it to the boot runlevel.
468 drobbins 1.1 </p>
469 swift 1.20
470 neysx 1.56 <pre caption="Adding ALSA to the boot runlevel">
471 fox2mike 1.54 # <i>rc-update add alsasound boot</i>
472     * alsasound added to runlevel boot
473 fox2mike 1.51 * rc-update complete.
474 drobbins 1.1 </pre>
475 swift 1.20
476 fox2mike 1.51 <p>
477     Next, just check the <path>/etc/conf.d/alsasound</path> file and ensure that
478     SAVE_ON_STOP variable is set to yes. This saves your sound settings when you
479     shutdown your system.
480     </p>
481    
482 drobbins 1.1 </body>
483     </section>
484     <section>
485 fox2mike 1.54 <title>Audio Group</title>
486     <body>
487    
488     <p>
489     Before we move on to testing, there's one last <e>important</e> thing that needs
490     to be setup. Rule of thumb in a *nix OS : Do not run as root unless needed.
491     This applies here as well ;) How? Well, most of the times you should be logged
492     in as a user and would like to listen to music or access your soundcard. For
493 vanquirius 1.59 that to happen, you need to be in the "audio" group. At this point, we'll add
494 fox2mike 1.54 users to the audio group, so that they won't have any issues when they want to
495     access sound devices. We'll use <c>gpasswd</c> here and you need to be logged in
496     as root for this to work.
497     </p>
498    
499     <pre caption="Adding users to the audio group">
500     <comment>(Substitute &lt;username&gt; with your user)</comment>
501     # <i>gpasswd -a &lt;username&gt; audio </i>
502     Adding user &lt;username&gt; to group audio
503     </pre>
504    
505     </body>
506     </section>
507     <section>
508 fox2mike 1.51 <title>Volume Check!</title>
509 drobbins 1.1 <body>
510 swift 1.20
511 drobbins 1.1 <p>
512 fox2mike 1.51 We've completed all the setups and pre-requisites, so let's fire up ALSA. If
513     you ran <c>alsaconf</c>, you can skip this step, since <c>alsaconf</c> already
514     does this for you.
515 swift 1.20 </p>
516    
517 fox2mike 1.51 <pre caption="Start the service">
518 fox2mike 1.54 <comment>(ALSA as modules)</comment>
519 swift 1.35 # <i>/etc/init.d/alsasound start</i>
520 fox2mike 1.51 * Loading ALSA modules ...
521     * Loading: snd-card-0 ... [ ok ]
522     * Loading: snd-pcm-oss ... [ ok ]
523     * Loading: snd-seq ... [ ok ]
524     * Loading: snd-emu10k1-synth ... [ ok ]
525     * Loading: snd-seq-midi ... [ ok ]
526     * Restoring Mixer Levels ... [ ok ]
527     <comment>(ALSA compiled in)</comment>
528     # <i>/etc/init.d/alsasound start</i>
529     * Loading ALSA modules ...
530     * Restoring Mixer Levels ... [ ok ]
531     </pre>
532    
533     <p>
534 fox2mike 1.54 Now that the required things have been taken care of, we need to check up on
535     the volume as in certain cases, it is muted. We use <c>alsamixer</c> for this
536     purpose.
537 fox2mike 1.51 </p>
538    
539     <pre caption="Starting alsamixer">
540     <comment>(Opens up a console program. Only required settings are shown)</comment>
541     # <i>alsamixer</i>
542 drobbins 1.1 </pre>
543 swift 1.20
544 fox2mike 1.54 <impo>
545     If you have issues starting up <c>alsamixer</c> and get errors such as
546     alsamixer: function snd_ctl_open failed for default: No such file or directory,
547 alin 1.58 this is usually an issue with udev setting up the devices. Run <c>killall
548     udevd; udevstart</c> to reload <path>/dev</path> entries and fire up
549     <c>alsamixer</c>. It should solve the issue.
550 fox2mike 1.54 </impo>
551    
552 fox2mike 1.51 <p>
553     This is how the ALSA Mixer <e>might</e> look the first time you open it. Pay
554     attention to the Master and PCM channels which both have an MM below them.
555     That means they are muted. If you try to play anything with <c>alsamixer</c>
556     in this state, you will not hear anything on your speakers.
557     </p>
558    
559     <figure link="/images/docs/alsa-mixermuted.png" short="AlsaMixer Muted" caption="The Alsa Mixer Main Window, Muted"/>
560    
561     <p>
562     Now, we shall unmute the channels, and set volume levels as needed.
563     </p>
564    
565     <warn>
566 fox2mike 1.54 Both Master <e>and</e> PCM need to be unmuted and set to audible volume levels
567     if you want to hear some output on your speakers.
568 fox2mike 1.51 </warn>
569    
570     <ul>
571     <li>
572     To move between channels, use your left and right arrow keys. (&lt;-
573     &amp; -&gt;)
574     </li>
575     <li>
576     To toggle mute, move to the specific channel, for example Master and press
577     the <e>m</e> key on the keyboard.
578     </li>
579     <li>
580     To increase and decrease the volume levels, use the up and down arrow keys
581     respectively.
582     </li>
583     </ul>
584    
585     <note>
586     Be careful when setting your Bass and Treble values. 50 is usually a good
587     number for both. Extremely high values of Bass may cause <e>jarring</e>
588     on speakers that are not designed to handle them.
589     </note>
590    
591     <p>
592     After you're all done, your ALSA Mixer should look similar to the one below.
593     Note the 00 instead of the MM and also the volume levels for some optimum
594     settings.
595     </p>
596    
597     <figure link="/images/docs/alsa-mixerunmuted.png" short="AlsaMixer Unmuted" caption="Alsa Mixer ready to roll"/>
598    
599 drobbins 1.1 </body>
600     </section>
601     <section>
602 fox2mike 1.51 <title>Sound Check!</title>
603 drobbins 1.1 <body>
604 swift 1.20
605 drobbins 1.1 <p>
606 fox2mike 1.54 The irritating way to check your soundcard is to see if you can hear static on
607     the speakers. This isn't exactly fun, but hey, it tells you the card is
608     configured and working.
609     </p>
610    
611 vanquirius 1.59 <pre caption="Bring on the static">
612 fox2mike 1.54 # <i>cat /dev/urandom > /dev/dsp</i>
613     </pre>
614    
615     <note>
616     <path>/dev/dsp</path> is a symlink to <path>/dev/sound/dsp</path> and should be
617     automatically created. Try re-directing the output to
618     <path>/dev/sound/dsp</path> in case you don't get a "No such file or directory"
619     error.
620     </note>
621    
622     <p>
623     You should hear static. Press <c>Ctrl + C</c> to stop. If you don't hear
624     anything, now is a good time to go back and check/trace out the issue and
625     rectify it.
626     </p>
627    
628     <p>
629     Finally. Some music. If everything above is perfect, you should now be able to
630     listen to some good music. A quick way to test is to use a command line tool
631     like <c>media-sound/madplay</c>. You could also use something more well known
632 fox2mike 1.51 like <c>mpg123</c> or <c>xmms</c>. If you are an ogg fan, you could use
633     <c>ogg123</c> provided by <c>media-sound/vorbis-tools</c>. Use any player you
634     are comfortable with. As always, <c>emerge</c> what you need.
635     </p>
636    
637     <pre caption="Getting the software">
638     <comment>(Install the applications you want)</comment>
639     # <i>emerge madplay mpg123 xmms</i>
640     <comment>(To play .ogg files)</comment>
641     # <i>emerge vorbis-tools</i>
642     </pre>
643    
644     <p>
645     And then play your favorite sound track...
646 drobbins 1.1 </p>
647 swift 1.20
648 fox2mike 1.51 <pre caption="Playing Music">
649     # <i>madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3</i>
650     MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
651     Title: Dread Rock
652     Artist: Paul Oakenfold
653     Album: Matrix Reloaded
654     Year: 2003
655     Genre: Soundtrack
656     Soundtrack
657     00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC
658    
659     # <i>ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg</i>
660     Audio Device: Advanced Linux Sound Architecture (ALSA) output
661    
662     Playing: Paul Oakenfold - Dread Rock.ogg
663     Ogg Vorbis stream: 2 channel, 44100 Hz
664     Genre: Soundtrack
665     Transcoded: mp3;160
666     Title: Dread Rock
667     Artist: Paul Oakenfold
668     Date: 2003
669     Album: Matrix Reloaded
670     Time: 00:11.31 [04:28.75] of 04:40.06 (200.6 kbps) Output Buffer 96.9%
671 drobbins 1.1 </pre>
672 swift 1.20
673 fox2mike 1.51 </body>
674     </section>
675     <section>
676 vanquirius 1.59 <title>ALSA and USE</title>
677 fox2mike 1.54 <body>
678    
679     <p>
680     You can now add the <c>alsa</c> use flag to <path>/etc/make.conf</path> to
681     ensure that your applications that support ALSA get built with it. Some
682     architectures like x86 and amd64 have the flag enabled by default.
683     </p>
684    
685     </body>
686     </section>
687     <section>
688 fox2mike 1.51 <title>Issues?</title>
689     <body>
690    
691 drobbins 1.1 <p>
692 fox2mike 1.51 If for some reason you're unable to hear sound, the first thing to do would
693 fox2mike 1.54 be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of
694 fox2mike 1.51 the issues lie with muted channels or low volume. Also check your Window
695     Manager's sound applet and verify that volumes are set to audible levels.
696 drobbins 1.1 </p>
697 swift 1.20
698 drobbins 1.1 <p>
699 fox2mike 1.51 <path>/proc</path> is your friend. And in this case, <path>/proc/asound</path>
700     is your best friend. We shall just take a short look at how much info is made
701     available to us there.
702 drobbins 1.1 </p>
703 swift 1.20
704 fox2mike 1.51 <pre caption="Fun with /proc/asound">
705     <comment>(First and foremost, if /proc/asound/cards shows your card, ALSA has
706     picked up your sound card fine.)</comment>
707     # <i>cat /proc/asound/cards</i>
708     0 [Live ]: EMU10K1 - Sound Blaster Live!
709     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
710    
711     <comment>(If you run ALSA off the kernel like I do and wonder how far behind
712     you are from alsa-driver, this displays current running ALSA version)</comment>
713     # <i>cat /proc/asound/version</i>
714     Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).
715 cam 1.47
716 fox2mike 1.51 <comment>(ALSA OSS emulation details)</comment>
717     # <i>cat /proc/asound/oss/sndstat</i>
718     Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code)
719     Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686
720     Config options: 0
721    
722     Installed drivers:
723     Type 10: ALSA emulation
724    
725     Card config:
726     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
727    
728     Audio devices:
729     0: EMU10K1 (DUPLEX)
730 neysx 1.46
731 fox2mike 1.51 Synth devices: NOT ENABLED IN CONFIG
732 neysx 1.46
733 fox2mike 1.51 Midi devices:
734     0: EMU10K1 MPU-401 (UART)
735 swift 1.20
736 fox2mike 1.51 Timers:
737     7: system timer
738 neysx 1.46
739 fox2mike 1.51 Mixers:
740     0: SigmaTel STAC9721/23
741     </pre>
742 swift 1.20
743 fox2mike 1.61 <p>
744     The other most common issue users face is the dreaded "Unknown symbol in module"
745     error. An example of the same is shown below.
746     </p>
747    
748     <pre caption="Unknown Symbol in module error">
749     # <i>/etc/init.d/alsasound start</i>
750     * Loading ALSA modules ...
751     * Loading: snd-card-0 ... [ ok ]
752     * Loading: snd-pcm-oss ...
753     WARNING: Error inserting snd_mixer_oss
754     (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
755     symbol in module, or unknown parameter (see dmesg) FATAL: Error inserting
756     snd_pcm_oss
757     (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown
758     symbol in module, or unknown parameter (see dmesg)
759     [ !! ]
760     * Loading: snd-mixer-oss ...
761     FATAL: Error inserting snd_mixer_oss
762     (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
763     symbol in module, or unknown parameter (see dmesg)
764     [ !! ]
765     * Loading: snd-seq ... [ ok ]
766     * Loading: snd-emu10k1-synth ... [ ok ]
767     * Loading: snd-seq-midi ... [ ok ]
768     * Restoring Mixer Levels ... [ ok ]
769     </pre>
770    
771     <p>
772     And when you take a look at <c>dmesg</c> as suggested, you're quite likely to
773     see:
774     </p>
775    
776     <pre caption="dmesg output">
777     <comment>(Only relevant portions are shown below)</comment>
778     # <i>dmesg | less</i>
779     ACPI: PCI Interrupt 0000:02:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 209
780     snd_mixer_oss: Unknown symbol snd_unregister_oss_device
781     snd_mixer_oss: Unknown symbol snd_register_oss_device
782     snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
783     snd_mixer_oss: Unknown symbol snd_oss_info_register
784     snd_pcm_oss: Unknown symbol snd_unregister_oss_device
785     snd_pcm_oss: Unknown symbol snd_register_oss_device
786     snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card
787     snd_pcm_oss: Unknown symbol snd_oss_info_register
788     snd_mixer_oss: Unknown symbol snd_unregister_oss_device
789     snd_mixer_oss: Unknown symbol snd_register_oss_device
790     snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
791     snd_mixer_oss: Unknown symbol snd_oss_info_register
792     </pre>
793    
794     <p>
795     The above issue is caused when you switch from <c>alsa-driver</c> to in-kernel
796     ALSA because when you unmerge <c>alsa-driver</c> the module files are config
797     protected and hence get left behind. So, when you switch to in-kernel
798     drivers, running <c>modprobe</c> gives you a mix of <c>alsa-driver</c> and
799     in-kernel modules thus causing the above errors.
800     </p>
801    
802     <p>
803     The solution is quite easy. We just need to manually remove the problem causing
804     directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct
805     kernel version and not the current one!
806     </p>
807    
808     <pre caption="Removing the alsa-driver modules">
809     <comment>(Replace KERNELVER with your kernel version)</comment>
810     # <i>rm -rf /lib/modules/KERNELVER/alsa-driver</i>
811     </pre>
812    
813 erwin 1.26 </body>
814     </section>
815     </chapter>
816 fox2mike 1.51
817 erwin 1.26 <chapter>
818 fox2mike 1.51 <title>Other things ALSA</title>
819 erwin 1.26 <section>
820 fox2mike 1.51 <title>Setting up MIDI support</title>
821 erwin 1.26 <body>
822    
823     <p>
824 fox2mike 1.51 If your sound card is one of those that come with on-board MIDI synthesizers
825     and you would like to listen to some .mid files, you have to install
826     <c>awesfx</c> which is basically a set of utilities for controlling the AWE32
827     driver. We need to install it first. If you don't have a hardware synthesizer,
828     you can use a virtual one. Please see the section on
829     <uri link="#vsynth">Virtual Synthesizers</uri> for more information.
830 erwin 1.26 </p>
831    
832 fox2mike 1.51 <pre caption="Installing awesfx">
833 erwin 1.26 # <i>emerge awesfx</i>
834     </pre>
835    
836 fox2mike 1.51 <note>
837     You will need to copy over SoundFont (SF2) files from your sound card's driver
838     CD or a Windows installation into <path>/usr/share/sounds/sf2/</path>. For
839     example a sound font file for the Creative SBLive! card would be 8MBGMSFX.SF2.
840     </note>
841    
842 erwin 1.26 <p>
843 fox2mike 1.51 After copying over the Soundfont files, we can then play a midi file as shown.
844     You can also add the <c>asfxload</c> command to
845     <path>/etc/conf.d/local.start</path>, so that the sound font is loaded
846     every time the system starts up.
847 erwin 1.26 </p>
848    
849 fox2mike 1.51 <note>
850     <path>/mnt</path> paths mentioned in the code listing(s) below will <e>not</e>
851     be the same in your machine. They are just an example. Please be careful to
852     change the path to suit your machine.
853     </note>
854 erwin 1.26
855 fox2mike 1.51 <pre caption="Loading Soundfonts">
856     <comment>(First, copy the Soundfont)</comment>
857 fox2mike 1.61 # <i>cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/</i>
858     <comment>(Or get it from your SoundBlaster CD)</comment>
859     # <i>cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/</i>
860 fox2mike 1.51 <comment>(We load the specific Soundfont)</comment>
861     # <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i>
862 erwin 1.26 </pre>
863    
864 swift 1.35 <p>
865 fox2mike 1.51 You can now play midi files using a program like <c>aplaymidi</c>. Run
866     <c>aplaymidi -l</c> to get a list of available ports and then pick one
867     to play the file on.
868 swift 1.35 </p>
869 erwin 1.26
870 fox2mike 1.51 <pre caption="Playing MIDI">
871     <comment>(Check open ports)</comment>
872     # <i>aplaymidi -l</i>
873     Port Client name Port name
874     64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
875     65:0 Emu10k1 WaveTable Emu10k1 Port 0
876     65:1 Emu10k1 WaveTable Emu10k1 Port 1
877     65:2 Emu10k1 WaveTable Emu10k1 Port 2
878     65:3 Emu10k1 WaveTable Emu10k1 Port 3
879     <comment>(Pick a port, and play a mid file)</comment>
880     # <i> aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid</i>
881     </pre>
882 swift 1.32
883 erwin 1.26 </body>
884     </section>
885 fox2mike 1.51 <section id="vsynth">
886     <title>Virtual Synthesizers</title>
887 erwin 1.26 <body>
888    
889     <p>
890 fox2mike 1.51 If your sound card lacks a hardware synthesizer, you could use a virtual one
891     like <c>timidity++</c>. Installation is a breeze.
892 erwin 1.26 </p>
893    
894 fox2mike 1.51 <pre caption="Installing timidity++">
895 erwin 1.26 # <i>emerge timidity++</i>
896     </pre>
897    
898     <p>
899 fox2mike 1.51 For timidity to play sounds, it needs a sound font. If you do not have any,
900 neysx 1.46 install <c>timidity-eawpatches</c> or <c>timidity-shompatches</c> which will
901 fox2mike 1.51 give you some sound fonts. You can have multiple sound font configurations
902 neysx 1.46 installed, and you can place your own in <path>/usr/share/timidity/</path>.
903     To switch between different timidity configurations, you should use the
904 fox2mike 1.53 <c>timidity-update</c> tool provided in the timidity++ package.
905 cam 1.33 </p>
906    
907 fox2mike 1.51 <pre caption="Installing sound fonts">
908 cam 1.33 # <i>emerge timidity-eawpatches</i>
909 cam 1.47 # <i>timidity-update -g -s eawpatches</i>
910 neysx 1.46
911 cam 1.47 <comment>(or)</comment>
912 neysx 1.46
913     # <i>emerge timidity-shompatches</i>
914 cam 1.47 # <i>timidity-update -g -s shompatches</i>
915 cam 1.33 </pre>
916    
917     <p>
918 swift 1.35 Don't forget to add <c>timidity</c> to the default runlevel.
919 erwin 1.26 </p>
920    
921 swift 1.35 <pre caption="Adding timidity to the default runlevel">
922 erwin 1.26 # <i>rc-update add timidity default</i>
923     # <i>/etc/init.d/timidity start</i>
924     </pre>
925    
926 drobbins 1.1 <p>
927 fox2mike 1.51 You can now try out <uri link="#doc_chap4_pre3">Playing MIDI</uri> files.
928 erwin 1.26 </p>
929    
930 drobbins 1.1 </body>
931     </section>
932     <section>
933 swift 1.35 <title>Tools and Firmware</title>
934 drobbins 1.1 <body>
935 swift 1.20
936     <p>
937 swift 1.35 Some specific sound cards can benefit from certain tools provided by the
938 cam 1.36 <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need
939 swift 1.35 <c>alsa-tools</c>, be sure to define the ALSA_TOOLS variable in
940     <path>/etc/make.conf</path> with the tools you require. For instance:
941 swift 1.20 </p>
942    
943 swift 1.35 <pre caption="Selecting ALSA Tools in /etc/make.conf">
944     ALSA_TOOLS="as10k1 ac3dec"
945 drobbins 1.1 </pre>
946 swift 1.20
947 erwin 1.26 <p>
948 fox2mike 1.51 If the ALSA_TOOLS variable is not set, all available tools will be built.
949     Now, install the <c>alsa-tools</c> (and/or <c>alsa-firmware</c>) package(s):
950 erwin 1.26 </p>
951    
952 swift 1.35 <pre caption="Installing ALSA Tools">
953     # <i>emerge alsa-tools</i>
954 erwin 1.26 </pre>
955    
956     </body>
957     </section>
958     <section>
959 fox2mike 1.51 <title>A Big thank you to...</title>
960 swift 1.21 <body>
961    
962     <p>
963 fox2mike 1.51 Everyone who contributed to the earlier version of the Gentoo ALSA Guide:
964     Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston,
965     John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.
966 swift 1.21 </p>
967    
968 swift 1.17 </body>
969     </section>
970 drobbins 1.1 <section>
971 fox2mike 1.51 <title>References</title>
972 drobbins 1.1 <body>
973 swift 1.20
974 drobbins 1.1 <ul>
975 fox2mike 1.51 <li><uri link="http://www.alsa-project.org/">The ALSA Project</uri></li>
976 swift 1.35 <li><uri link="http://linux-sound.org">Linux Sound/MIDI Software</uri></li>
977 drobbins 1.1 </ul>
978 swift 1.20
979 drobbins 1.1 </body>
980     </section>
981     </chapter>
982     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20