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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.60 Revision 1.66
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.60 2005/08/30 11:38:02 fox2mike Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.66 2006/05/01 05:52:31 fox2mike Exp $ -->
3 3
4<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 4<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5 5
6<guide link="/doc/en/alsa-guide.xml"> 6<guide link="/doc/en/alsa-guide.xml">
7<title>Gentoo Linux ALSA Guide</title> 7<title>Gentoo Linux ALSA Guide</title>
16 16
17<!-- The content of this document is licensed under the CC-BY-SA license --> 17<!-- The content of this document is licensed under the CC-BY-SA license -->
18<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 18<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
19<license/> 19<license/>
20 20
21<version>2.8</version> 21<version>2.12</version>
22<date>2005-08-30</date> 22<date>2006-05-01</date>
23 23
24<chapter> 24<chapter>
25<title>Introduction</title> 25<title>Introduction</title>
26<section> 26<section>
27<title>What is ALSA?</title> 27<title>What is ALSA?</title>
83 <li> 83 <li>
84 Use Gentoo's <c>media-sound/alsa-driver</c> package. 84 Use Gentoo's <c>media-sound/alsa-driver</c> package.
85 </li> 85 </li>
86</ol> 86</ol>
87 87
88<p> 88<p>
89We shall take a peek into both before finally deciding on one. 89We shall take a peek into both before finally deciding on one.
90</p> 90</p>
91 91
92<p> 92<p>
93If you were to use ALSA provided by the kernel, the following are the pros and 93If you were to use ALSA provided by the kernel, the following are the pros and
231<p> 231<p>
232Let us now configure the kernel to enable ALSA. 232Let us now configure the kernel to enable ALSA.
233</p> 233</p>
234 234
235<impo> 235<impo>
236<c>genkernel</c> users should now run <c>genkernel --menuconfig all</c> and then follow 236<c>genkernel</c> users should now run <c>genkernel --menuconfig all</c> and
237the instructions in <uri link="#doc_chap2_pre3">Kernel Options for ALSA</uri>. 237then follow the instructions in <uri link="#doc_chap2_pre3">Kernel Options for
238ALSA</uri>.
238</impo> 239</impo>
239 240
240<pre caption="Heading over to the source"> 241<pre caption="Heading over to the source">
241# <i>cd /usr/src/linux</i> 242# <i>cd /usr/src/linux</i>
242# <i>make menuconfig</i> 243# <i>make menuconfig</i>
253</p> 254</p>
254 255
255<p> 256<p>
256Please note that for the sake of ease, all examples show ALSA built as modules. 257Please note that for the sake of ease, all examples show ALSA built as modules.
257It is advisable to follow the same as it then allows the use of <c>alsaconf</c> 258It is advisable to follow the same as it then allows the use of <c>alsaconf</c>
258which is a boon when you want to configure your card. Please do <e>not</e> skip the <uri 259which is a boon when you want to configure your card. Please do <e>not</e> skip
259link="#alsa-config">Configuration</uri> section of this document. If you still 260the <uri link="#alsa-config">Configuration</uri> section of this document. If
260like to have options built-in, ensure that you make changes to your config 261you still like to have options built-in, ensure that you make changes to your
261accordingly. 262config accordingly.
262</p> 263</p>
263 264
264<pre caption="Kernel Options for ALSA"> 265<pre caption="Kernel Options for ALSA">
265Device Drivers ---&gt; 266Device Drivers ---&gt;
266 Sound ---&gt; 267 Sound ---&gt;
308USB Devices ---&gt; 309USB Devices ---&gt;
309</pre> 310</pre>
310 311
311<p> 312<p>
312Now that your options are set, you can (re)compile the kernel and ALSA support 313Now that your options are set, you can (re)compile the kernel and ALSA support
313for your card should be functional once you reboot into the new kernel. 314for your card should be functional once you reboot into the new kernel. Don't
315forget to update your GRUB configuration to use the newly built kernel.
314You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and 316You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and
315see if everything is working as it should. 317see if everything is working as it should.
316</p> 318</p>
317 319
318</body> 320</body>
448your devices and try to find out your sound card. You will be asked to pick 450your devices and try to find out your sound card. You will be asked to pick
449your sound card from a list. Once that's done, it will ask you permission to 451your sound card from a list. Once that's done, it will ask you permission to
450automatically make required changes to <path>/etc/modules.d/alsa</path>. 452automatically make required changes to <path>/etc/modules.d/alsa</path>.
451It will then adjust your volume settings to optimum levels, run 453It 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. 454<c>modules-update</c> and start the <path>/etc/init.d/alsasound</path> service.
453Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA initscript. 455Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA
456initscript.
454</p> 457</p>
455 458
456</body> 459</body>
457</section> 460</section>
458<section id="initscript"> 461<section id="initscript">
517<comment>(ALSA as modules)</comment> 520<comment>(ALSA as modules)</comment>
518# <i>/etc/init.d/alsasound start</i> 521# <i>/etc/init.d/alsasound start</i>
519 * Loading ALSA modules ... 522 * Loading ALSA modules ...
520 * Loading: snd-card-0 ... [ ok ] 523 * Loading: snd-card-0 ... [ ok ]
521 * Loading: snd-pcm-oss ... [ ok ] 524 * Loading: snd-pcm-oss ... [ ok ]
522 * Loading: snd-seq ... [ ok ] 525 * Loading: snd-seq ... [ ok ]
523 * Loading: snd-emu10k1-synth ... [ ok ] 526 * Loading: snd-emu10k1-synth ... [ ok ]
524 * Loading: snd-seq-midi ... [ ok ] 527 * Loading: snd-seq-midi ... [ ok ]
525 * Restoring Mixer Levels ... [ ok ] 528 * Restoring Mixer Levels ... [ ok ]
526<comment>(ALSA compiled in)</comment> 529<comment>(ALSA compiled in)</comment>
527# <i>/etc/init.d/alsasound start</i> 530# <i>/etc/init.d/alsasound start</i>
528 * Loading ALSA modules ... 531 * Loading ALSA modules ...
529 * Restoring Mixer Levels ... [ ok ] 532 * Restoring Mixer Levels ... [ ok ]
598</body> 601</body>
599</section> 602</section>
600<section> 603<section>
601<title>Sound Check!</title> 604<title>Sound Check!</title>
602<body> 605<body>
603
604<p>
605The irritating way to check your soundcard is to see if you can hear static on
606the speakers. This isn't exactly fun, but hey, it tells you the card is
607configured and working.
608</p>
609
610<pre caption="Bring on the static">
611# <i>cat /dev/urandom > /dev/dsp</i>
612</pre>
613
614<note>
615<path>/dev/dsp</path> is a symlink to <path>/dev/sound/dsp</path> and should be
616automatically 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"
618error.
619</note>
620
621<p>
622You should hear static. Press <c>Ctrl + C</c> to stop. If you don't hear
623anything, now is a good time to go back and check/trace out the issue and
624rectify it.
625</p>
626 606
627<p> 607<p>
628Finally. Some music. If everything above is perfect, you should now be able to 608Finally. Some music. If everything above is perfect, you should now be able to
629listen to some good music. A quick way to test is to use a command line tool 609listen to some good music. A quick way to test is to use a command line tool
630like <c>media-sound/madplay</c>. You could also use something more well known 610like <c>media-sound/madplay</c>. You could also use something more well known
737 717
738Mixers: 718Mixers:
7390: SigmaTel STAC9721/23 7190: SigmaTel STAC9721/23
740</pre> 720</pre>
741 721
722<p>
723The other most common issue users face is the dreaded "Unknown symbol in module"
724error. An example of the same is shown below.
725</p>
726
727<pre caption="Unknown Symbol in module error">
728# <i>/etc/init.d/alsasound start</i>
729 * Loading ALSA modules ...
730 * Loading: snd-card-0 ... [ ok ]
731 * Loading: snd-pcm-oss ...
732WARNING: Error inserting snd_mixer_oss
733(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
734symbol in module, or unknown parameter (see dmesg) FATAL: Error inserting
735snd_pcm_oss
736(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown
737symbol in module, or unknown parameter (see dmesg)
738 [ !! ]
739 * Loading: snd-mixer-oss ...
740FATAL: Error inserting snd_mixer_oss
741(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
742symbol in module, or unknown parameter (see dmesg)
743 [ !! ]
744 * Loading: snd-seq ... [ ok ]
745 * Loading: snd-emu10k1-synth ... [ ok ]
746 * Loading: snd-seq-midi ... [ ok ]
747 * Restoring Mixer Levels ... [ ok ]
748</pre>
749
750<p>
751And when you take a look at <c>dmesg</c> as suggested, you're quite likely to
752see:
753</p>
754
755<pre caption="dmesg output">
756<comment>(Only relevant portions are shown below)</comment>
757# <i>dmesg | less</i>
758ACPI: PCI Interrupt 0000:02:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 209
759snd_mixer_oss: Unknown symbol snd_unregister_oss_device
760snd_mixer_oss: Unknown symbol snd_register_oss_device
761snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
762snd_mixer_oss: Unknown symbol snd_oss_info_register
763snd_pcm_oss: Unknown symbol snd_unregister_oss_device
764snd_pcm_oss: Unknown symbol snd_register_oss_device
765snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card
766snd_pcm_oss: Unknown symbol snd_oss_info_register
767snd_mixer_oss: Unknown symbol snd_unregister_oss_device
768snd_mixer_oss: Unknown symbol snd_register_oss_device
769snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
770snd_mixer_oss: Unknown symbol snd_oss_info_register
771</pre>
772
773<p>
774The above issue is caused when you switch from <c>alsa-driver</c> to in-kernel
775ALSA because when you unmerge <c>alsa-driver</c> the module files are config
776protected and hence get left behind. So, when you switch to in-kernel
777drivers, running <c>modprobe</c> gives you a mix of <c>alsa-driver</c> and
778in-kernel modules thus causing the above errors.
779</p>
780
781<p>
782The solution is quite easy. We just need to manually remove the problem causing
783directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct
784kernel version and not the current one!
785</p>
786
787<pre caption="Removing the alsa-driver modules">
788<comment>(Replace KERNELVER with your kernel version)</comment>
789# <i>rm -rf /lib/modules/KERNELVER/alsa-driver</i>
790</pre>
791
792<p>
793Another reason for error messages similar to the ones above could be a file in
794<path>/etc/modules.d</path> supplying a <c>device_node</c> parameter when it
795isn't required. Confirm that this is indeed the issue and find out which file
796is the culprit.
797</p>
798
799<pre caption="Confirming and searching for device_node">
800<comment>(Check dmesg to confirm)</comment>
801# <i>dmesg | grep device_mode</i>
802snd: Unknown parameter `device_mode'
803<comment>(Now, to get to the source of the issue)</comment>
804# <i>grep device_mode /etc/modules.d/*</i>
805</pre>
806
807<p>
808Usually it is a file called <path>alsa</path> with the line <c>options snd
809device_mode=0666</c>. Remove this line and restart the alsasound service and
810that should take care of this issue.
811</p>
812
742</body> 813</body>
743</section> 814</section>
744</chapter> 815</chapter>
745 816
746<chapter> 817<chapter>
781change the path to suit your machine. 852change the path to suit your machine.
782</note> 853</note>
783 854
784<pre caption="Loading Soundfonts"> 855<pre caption="Loading Soundfonts">
785<comment>(First, copy the Soundfont)</comment> 856<comment>(First, copy the Soundfont)</comment>
786# <i>cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/</i> 857# <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>
787<comment>(We load the specific Soundfont)</comment> 860<comment>(We load the specific Soundfont)</comment>
788# <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i> 861# <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i>
789</pre> 862</pre>
790 863
791<p> 864<p>

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.66

  ViewVC Help
Powered by ViewVC 1.1.20