| 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.61 2005/09/09 06:49:31 fox2mike Exp $ --> |
2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.69 2006/07/07 14:40:08 rane 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.9</version> |
21 | <version>2.14</version> |
| 22 | <date>2005-09-09</date> |
22 | <date>2006-07-06</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> |
| 89 | We shall take a peek into both before finally deciding on one. |
89 | We shall take a peek into both before finally deciding on one. |
| 90 | </p> |
90 | </p> |
| 91 | |
91 | |
| 92 | <p> |
92 | <p> |
| 93 | If you were to use ALSA provided by the kernel, the following are the pros and |
93 | If you were to use ALSA provided by the kernel, the following are the pros and |
| … | |
… | |
| 231 | <p> |
231 | <p> |
| 232 | Let us now configure the kernel to enable ALSA. |
232 | Let 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 |
| 237 | the instructions in <uri link="#doc_chap2_pre3">Kernel Options for ALSA</uri>. |
237 | then follow the instructions in <uri link="#doc_chap2_pre3">Kernel Options for |
|
|
238 | ALSA</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> |
| 256 | Please note that for the sake of ease, all examples show ALSA built as modules. |
257 | 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 | 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 | which is a boon when you want to configure your card. Please do <e>not</e> skip |
| 259 | link="#alsa-config">Configuration</uri> section of this document. If you still |
260 | the <uri link="#alsa-config">Configuration</uri> section of this document. If |
| 260 | like to have options built-in, ensure that you make changes to your config |
261 | you still like to have options built-in, ensure that you make changes to your |
| 261 | accordingly. |
262 | config accordingly. |
| 262 | </p> |
263 | </p> |
| 263 | |
264 | |
| 264 | <pre caption="Kernel Options for ALSA"> |
265 | <pre caption="Kernel Options for ALSA"> |
| 265 | Device Drivers ---> |
266 | Device Drivers ---> |
| 266 | Sound ---> |
267 | Sound ---> |
| … | |
… | |
| 308 | USB Devices ---> |
309 | USB Devices ---> |
| 309 | </pre> |
310 | </pre> |
| 310 | |
311 | |
| 311 | <p> |
312 | <p> |
| 312 | Now that your options are set, you can (re)compile the kernel and ALSA support |
313 | 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 | for your card should be functional once you reboot into the new kernel. Don't |
|
|
315 | forget to update your GRUB configuration to use the newly built kernel. |
| 314 | You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and |
316 | You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and |
| 315 | see if everything is working as it should. |
317 | see if everything is working as it should. |
| 316 | </p> |
318 | </p> |
| 317 | |
319 | |
| 318 | </body> |
320 | </body> |
| … | |
… | |
| 448 | your devices and try to find out your sound card. You will be asked to pick |
450 | 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 |
451 | 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>. |
452 | automatically make required changes to <path>/etc/modules.d/alsa</path>. |
| 451 | It will then adjust your volume settings to optimum levels, run |
453 | 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. |
454 | <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. |
455 | Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA |
|
|
456 | initscript. |
| 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> |
|
|
| 605 | The irritating way to check your soundcard is to see if you can hear static on |
|
|
| 606 | the speakers. This isn't exactly fun, but hey, it tells you the card is |
|
|
| 607 | configured and working. |
|
|
| 608 | </p> |
|
|
| 609 | |
|
|
| 610 | <pre caption="Bring on the static"> |
|
|
| 611 | # <i>cat /dev/urandom > /dev/dsp</i> |
|
|
| 612 | </pre> |
|
|
| 613 | |
|
|
| 614 | <note> |
|
|
| 615 | <path>/dev/dsp</path> is a symlink to <path>/dev/sound/dsp</path> and should be |
|
|
| 616 | automatically created. Try re-directing the output to |
|
|
| 617 | <path>/dev/sound/dsp</path> in case you don't get a "No such file or directory" |
|
|
| 618 | error. |
|
|
| 619 | </note> |
|
|
| 620 | |
|
|
| 621 | <p> |
|
|
| 622 | You should hear static. Press <c>Ctrl + C</c> to stop. If you don't hear |
|
|
| 623 | anything, now is a good time to go back and check/trace out the issue and |
|
|
| 624 | rectify it. |
|
|
| 625 | </p> |
|
|
| 626 | |
606 | |
| 627 | <p> |
607 | <p> |
| 628 | Finally. Some music. If everything above is perfect, you should now be able to |
608 | 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 |
609 | 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 |
610 | like <c>media-sound/madplay</c>. You could also use something more well known |
| … | |
… | |
| 803 | directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct |
783 | directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct |
| 804 | kernel version and not the current one! |
784 | kernel version and not the current one! |
| 805 | </p> |
785 | </p> |
| 806 | |
786 | |
| 807 | <pre caption="Removing the alsa-driver modules"> |
787 | <pre caption="Removing the alsa-driver modules"> |
| 808 | <comment>(Replace KERNELVER with your kernel version)</comment> |
|
|
| 809 | # <i>rm -rf /lib/modules/KERNELVER/alsa-driver</i> |
788 | # <i>rm -rf /lib/modules/$(uname -r)/alsa-driver</i> |
|
|
789 | </pre> |
|
|
790 | |
|
|
791 | <p> |
|
|
792 | Another reason for error messages similar to the ones above could be a file in |
|
|
793 | <path>/etc/modules.d</path> supplying a <c>device_mode</c> parameter when it |
|
|
794 | isn't required. Confirm that this is indeed the issue and find out which file |
|
|
795 | is the culprit. |
| 810 | </pre> |
796 | </p> |
|
|
797 | |
|
|
798 | <pre caption="Confirming and searching for device_mode"> |
|
|
799 | <comment>(Check dmesg to confirm)</comment> |
|
|
800 | # <i>dmesg | grep device_mode</i> |
|
|
801 | snd: Unknown parameter `device_mode' |
|
|
802 | <comment>(Now, to get to the source of the issue)</comment> |
|
|
803 | # <i>grep device_mode /etc/modules.d/*</i> |
|
|
804 | </pre> |
|
|
805 | |
|
|
806 | <p> |
|
|
807 | Usually it is a file called <path>alsa</path> with the line <c>options snd |
|
|
808 | device_mode=0666</c>. Remove this line and restart the alsasound service and |
|
|
809 | that should take care of this issue. |
|
|
810 | </p> |
| 811 | |
811 | |
| 812 | </body> |
812 | </body> |
| 813 | </section> |
813 | </section> |
| 814 | </chapter> |
814 | </chapter> |
| 815 | |
815 | |