nightmorph 08/03/05 09:16:49 Modified: alsa-guide.xml Log: removed alsa-driver steps from the guide, per bug 183418, bug 207427 and other showstopper/regression bugs, and requests from the alsa & kernel teams. no one maintains or wants to maintain alsa-driver. it is the weakest link.
Revision Changes Path 1.81 xml/htdocs/doc/en/alsa-guide.xml file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/alsa-guide.xml?rev=1.81&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/alsa-guide.xml?rev=1.81&content-type=text/plain diff : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/alsa-guide.xml?r1=1.80&r2=1.81 Index: alsa-guide.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- alsa-guide.xml 19 May 2007 03:00:29 -0000 1.80 +++ alsa-guide.xml 5 Mar 2008 09:16:49 -0000 1.81 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding="UTF-8"?> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.80 2007/05/19 03:00:29 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.81 2008/03/05 09:16:49 nightmorph Exp $ --> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> @@ -24,8 +24,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>2.22</version> -<date>2007-05-07</date> +<version>2.23</version> +<date>2008-03-05</date> <chapter> <title>Introduction</title> @@ -56,132 +56,39 @@ <body> <p> -One of Gentoo's main strengths lies in giving the user maximum control over -how a system is installed/configured. ALSA on Gentoo follows the same -principle. There are two ways you can get ALSA support up and running on your -system. We shall look at them in detail in the next chapter. +Historically, Gentoo offered two ways to get ALSA up and running: the +<e>in-kernel</e> driver and the external <c>alsa-driver</c> package. The two +solutions essentially do the same thing; this made supporting the external +package extremely difficult and time-consuming. The Gentoo maintainers decided +to discontinue support for the <c>alsa-driver</c> package, concentrating their +resources on the ALSA drivers available within the Linux kernel. This guide will +focus solely on configuring ALSA via the in-kernel driver. </p> -</body> -</section> -</chapter> - -<chapter> -<title>Installing ALSA</title> -<section> -<title>Options</title> -<body> - -<warn> -The methods shown below are mutually exclusive. You cannot have ALSA compiled -in your kernel and use <c>media-sound/alsa-driver</c>. It <e>will</e> fail. -</warn> - <p> -The two options are: +If you still require the <c>alsa-driver</c> package, please email the <mail +link="[EMAIL PROTECTED]">Gentoo ALSA maintainers</mail> with why the +in-kernel drivers don't work for you. Be sure to include detailed error logs. </p> -<ol> - <li> - Use ALSA provided by your kernel. This is the preferred/recommended method. - </li> - <li>Use Gentoo's <c>media-sound/alsa-driver</c> package.</li> -</ol> - -<p> -The in-kernel drivers and the <c>alsa-driver</c> package can vary a little; it's -possible that features and fixes found in one might not yet be incorporated into -the other. The upstream developers are aware of this, but the two drivers are -effectively separate branches of the ALSA project; they are not entirely -identical. You should be aware that they might function slightly differently, so -if one doesn't work for you, try the other! We shall take a peek into both -before finally deciding on one. -</p> - -<p> -If you were to use ALSA provided by the kernel, the following are the pros and -cons: -</p> - -<table> -<tr> - <th>Kernel ALSA</th> - <th>Pros and Cons</th> -</tr> -<tr> - <th>+</th> - <ti> - No need to emerge yet another package; drivers are integrated into kernel. - </ti> -</tr> -<tr> - <th>+</th> - <ti>One shot solution, no repeating emerges.</ti> -</tr> -<tr> - <th>-</th> - <ti>Might be a slightly different version than <c>alsa-driver</c>.</ti> -</tr> -</table> - -<p> -And, if you were to use <c>alsa-driver</c>, -</p> - -<table> -<tr> - <th>alsa-driver</th> - <th>Pros and Cons</th> -</tr> -<tr> - <th>+</th> - <ti>Possibly the latest drivers from the ALSA Project.</ti> -</tr> -<tr> - <th>+</th> - <ti>Useful if you intend to develop audio drivers.</ti> -</tr> -<tr> - <th>-</th> - <ti>Every kernel recompile requires a re-emerge of <c>alsa-driver</c>.</ti> -</tr> -<tr> - <th>-</th> - <ti>Needs certain kernel config options disabled to work correctly.</ti> -</tr> -</table> - </body> </section> -<section> -<title>So...</title> -<body> - -<p> -The differences between <c>alsa-driver</c> and the in-kernel ALSA drivers are -quite subtle, as mentioned earlier. Since there are not any huge differences, -you are encouraged to go through the process of using the ALSA provided by the -kernel <e>first</e> for ease of use. Before reporting any sound related issues -to <uri link="https://bugs.gentoo.org">Gentoo Bugzilla</uri>, please try to -reproduce them using <c>alsa-driver</c> and file the bug report no matter what -the result. -</p> +</chapter> -</body> -</section> +<chapter> +<title>Installing ALSA</title> <section id="lspci"> <title>Before you proceed</title> <body> <p> -Whichever method of install you choose, you need to know what drivers your -sound card uses. In most cases, sound cards (onboard and otherwise) are PCI -based and <c>lspci</c> will help you in digging out the required information. -Please <c>emerge sys-apps/pciutils</c> to get <c>lspci</c>, if you don't have it -installed already. In case you have a USB sound card, <c>lsusb</c> from -<c>sys-apps/usbutils</c> <e>might</e> be of help. For ISA cards, try using -<c>sys-apps/isapnptools</c>. Also, the following pages <e>may</e> help users -with ISA based sound cards: +First, you need to know what drivers your sound card uses. In most cases, sound +cards (onboard and otherwise) are PCI based and <c>lspci</c> will help you in +digging out the required information. Please <c>emerge sys-apps/pciutils</c> to +get <c>lspci</c>, if you don't have it installed already. In case you have a USB +sound card, <c>lsusb</c> from <c>sys-apps/usbutils</c> <e>might</e> be of help. +For ISA cards, try using <c>sys-apps/isapnptools</c>. Also, the following pages +<e>may</e> help users with ISA based sound cards: </p> <ul> @@ -233,13 +140,9 @@ </body> </section> <section id="kernel"> -<title>Using ALSA provided by your Kernel</title> +<title>Configuring the kernel</title> <body> -<p> -If you're a person who likes to keep things simple, then this is the way to go. -</p> - <note> Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Please check that your kernel is a 2.6 series kernel. This method will <e>not</e> work @@ -337,91 +240,6 @@ </body> </section> -<section id="alsa-driver"> -<title>Using the ALSA Driver package</title> -<body> - -<p> -So you've decided to go the <c>alsa-driver</c> way. Let's get started then. -There are a few minor things to be done to ensure only the drivers for your -sound card are compiled. Although this is not really necessary, it cuts down -on the unnecessary drivers that will be compiled otherwise. -</p> - -<p> -If you don't have an idea of what drivers your sound card might need, please -take a look at the <uri link="#lspci">lspci</uri> section of this guide. Once -you have your driver name (<c>emu10k1</c> in our example), edit -<path>/etc/make.conf</path> and add a variable, <c>ALSA_CARDS</c>. -</p> - -<pre caption="Adding ALSA_CARDS to make.conf"> -<comment>(For one sound card)</comment> -ALSA_CARDS="emu10k1" -<comment>(For more than one, separate names with spaces)</comment> -ALSA_CARDS="emu10k1 via82xx" -</pre> - -<p> -If you have compiled your kernel and want to use <c>alsa-driver</c>, please -ensure the following before proceeding, else <c>alsa-driver</c> is likely to -fail. The next code listing gives you one way of performing the checks. -</p> - -<note> -<c>genkernel</c> users can proceed with <uri link="#doc_chap2_pre6">Installing -alsa-driver</uri> as their configuration is in sync with the one shown below by -default. -</note> - -<ol> - <li> - <c>CONFIG_SOUND</c> is set. (Basic Sound support enabled) - </li> - <li> - <c>CONFIG_SOUND_PRIME</c> is not set. (In-built OSS support disabled) - </li> - <li> - <c>CONFIG_SND</c> is not set. (In-built ALSA support disabled) - </li> - <li> - <path>/usr/src/linux</path> points to the kernel you want ALSA working on. - </li> -</ol> - -<pre caption=".config checks"> -<comment>(Assuming the linux symlink points to the correct kernel)</comment> -# <i>cd /usr/src/linux</i> -# <i>grep SOUND .config</i> -<comment>(1. is true)</comment> -CONFIG_SOUND=y -<comment>(2. is true)</comment> -CONFIG_SOUND_PRIME is not set -# <i>grep SND .config</i> -<comment>(and 3. is true)</comment> -CONFIG_SND is not set -</pre> - -<p> -Now all you have to do is type the magic words... and no, it's not abracadabra. -</p> - -<pre caption="Installing alsa-driver"> -# <i>emerge alsa-driver</i> -</pre> - -<impo> -Please note that you will have to run <c>emerge alsa-driver</c> after every -kernel (re)compile, as the earlier drivers are deleted. To make this task -easier, you may want to emerge the <c>module-rebuild</c> package, which will -keep track of module packages and rebuild them for you. First run -<c>module-rebuild populate</c> to create the list, and then after every kernel -(re)compile, you just run <c>module-rebuild rebuild</c>, and your external -modules will be rebuilt. -</impo> - -</body> -</section> </chapter> <chapter> @@ -441,11 +259,10 @@ </pre> <note> -If you activated ALSA in your <uri link="#kernel">kernel</uri> <e>and</e> did -not compile ALSA as modules, please proceed to the -<uri link="#initscript">ALSA Initscript</uri> section. The rest of you need -to configure ALSA. This is made very easy by the existence of the -<c>alsaconf</c> tool provided by <c>alsa-utils</c>. +If you did <e>not</e> compile ALSA as modules, please proceed to the <uri +link="#initscript">ALSA Initscript</uri> section. The rest of you need to +configure ALSA. This is made very easy by the existence of the <c>alsaconf</c> +tool provided by <c>alsa-utils</c>. </note> </body> @@ -735,6 +552,8 @@ 0: SigmaTel STAC9721/23 </pre> +<!-- TODO: remove this a few months after alsa-driver leaves the tree --> + <p> The other most common issue users face is the dreaded "Unknown symbol in module" error. An example of the same is shown below. @@ -787,7 +606,7 @@ </pre> <p> -The above issue is caused when you switch from <c>alsa-driver</c> to in-kernel +The above issue is caused when you switch from the <c>alsa-driver</c> to in-kernel ALSA because when you unmerge <c>alsa-driver</c> the module files are config protected and hence get left behind. So, when you switch to in-kernel drivers, running <c>modprobe</c> gives you a mix of <c>alsa-driver</c> and @@ -821,10 +640,12 @@ <p> Usually it is a file called <path>alsa</path> with the line <c>options snd -device_mode=0666</c>. Remove this line and restart the alsasound service and -that should take care of this issue. +device_mode=0666</c>. Remove this line and restart the <c>alsasound</c> service +and that should take care of this issue. </p> +<!-- End of removal notice --> + </body> </section> </chapter> @@ -839,7 +660,7 @@ First, check to make sure that you enabled the <c>midi</c> USE flag in <path>/etc/make.conf</path>. If you didn't, go ahead and add it now. You will also need to re-emerge any ALSA packages that use the <c>midi</c> flag, such as -<c>alsa-lib</c>, <c>alsa-utils</c>, and <c>alsa-driver</c>. +<c>alsa-lib</c> and <c>alsa-utils</c>. </p> <p> @@ -969,11 +790,10 @@ <p> You can have more than one sound card in your system simultaneously, provided -that you have built ALSA as modules in your kernel (or have installed -<c>alsa-driver</c> instead). You just need to specify which should be started -first in <path>/etc/modules.d/alsa</path>. Your cards are identified by their -driver names inside this file. 0 is the first card, 1 is the second, and so on. -Here's an example for a system with two sound cards. +that you have built ALSA as modules in your kernel. You just need to specify +which should be started first in <path>/etc/modules.d/alsa</path>. Your cards +are identified by their driver names inside this file. 0 is the first card, 1 is +the second, and so on. Here's an example for a system with two sound cards. </p> <pre caption="Two sound cards in /etc/modules.d/alsa"> -- [email protected] mailing list
