| 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.66 2006/05/01 05:52:31 fox2mike Exp $ --> |
2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.84 2011/09/04 17:53:40 swift 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> |
| 7 | <title>Gentoo Linux ALSA Guide</title> |
7 | <title>Gentoo Linux ALSA Guide</title> |
| 8 | |
8 | |
| 9 | <author title="Author"> |
9 | <author title="Author"> |
| 10 | <mail link="fox2mike@gentoo.org">Shyam Mani</mail> |
10 | <mail link="fox2mike@gentoo.org">Shyam Mani</mail> |
| 11 | </author> |
11 | </author> |
|
|
12 | <author title="Author"> |
|
|
13 | <mail link="nightmorph@gentoo.org">Joshua Saddler</mail> |
|
|
14 | </author> |
|
|
15 | <author title="Contributor"> |
|
|
16 | <mail link="flameeyes@gentoo.org">Diego Pettenò</mail> |
|
|
17 | </author> |
| 12 | |
18 | |
| 13 | <abstract> |
19 | <abstract> |
| 14 | This document helps a user setup ALSA on Gentoo Linux. |
20 | This document helps a user setup ALSA on Gentoo Linux. |
| 15 | </abstract> |
21 | </abstract> |
| 16 | |
22 | |
| 17 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
23 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
| 18 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
24 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
| 19 | <license/> |
25 | <license/> |
| 20 | |
26 | |
| 21 | <version>2.12</version> |
27 | <version>2.25</version> |
| 22 | <date>2006-05-01</date> |
28 | <date>2009-08-05</date> |
| 23 | |
29 | |
| 24 | <chapter> |
30 | <chapter> |
| 25 | <title>Introduction</title> |
31 | <title>Introduction</title> |
| 26 | <section> |
32 | <section> |
| 27 | <title>What is ALSA?</title> |
33 | <title>What is ALSA?</title> |
| 28 | <body> |
34 | <body> |
| 29 | |
35 | |
| 30 | <p> |
36 | <p> |
| 31 | ALSA, which stands for <e>Advanced Linux Sound Architecture</e>, provides |
37 | ALSA, which stands for <e>Advanced Linux Sound Architecture</e>, provides |
| 32 | audio and MIDI (<e>Musical Instrument Digital Interface</e>) functionality to |
38 | 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 |
39 | 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 |
40 | kernel thereby replacing OSS (<e>Open Sound System</e>), which was used in the |
| 35 | 2.4 kernels. |
41 | 2.4 kernels. |
| 36 | </p> |
42 | </p> |
| 37 | |
43 | |
| 38 | <p> |
44 | <p> |
| 39 | ALSA's main features include efficient support for all types of audio |
45 | ALSA's main features include efficient support for all types of audio |
| 40 | interfaces ranging from consumer sound cards to professional sound |
46 | interfaces ranging from consumer sound cards to professional sound |
| 41 | equipment, fully modularized drivers, SMP and thread safety, backward |
47 | equipment, fully modularized drivers, SMP and thread safety, backward |
| 42 | compatibility with OSS and a user-space library <c>alsa-lib</c> to make |
48 | compatibility with OSS and a user-space library <c>alsa-lib</c> to make |
| 43 | application development a breeze. |
49 | application development a breeze. |
| 44 | </p> |
50 | </p> |
| 45 | |
51 | |
| 46 | </body> |
52 | </body> |
| 47 | </section> |
53 | </section> |
| 48 | <section> |
54 | <section> |
| 49 | <title>ALSA on Gentoo</title> |
55 | <title>ALSA on Gentoo</title> |
| 50 | <body> |
56 | <body> |
| 51 | |
57 | |
| 52 | <p> |
58 | <p> |
| 53 | One of Gentoo's main strengths lies in giving the user maximum control over |
59 | Historically, Gentoo offered two ways to get ALSA up and running: the |
| 54 | how a system is installed/configured. ALSA on Gentoo follows the same |
60 | <e>in-kernel</e> driver and the external <c>alsa-driver</c> package. The two |
| 55 | principle. There are two ways you can get ALSA support up and running on your |
61 | solutions essentially do the same thing; this made supporting the external |
| 56 | system. We shall look at them in detail in the next chapter. |
62 | package extremely difficult and time-consuming. The Gentoo maintainers decided |
|
|
63 | to discontinue support for the <c>alsa-driver</c> package, concentrating their |
|
|
64 | resources on the ALSA drivers available within the Linux kernel. This guide will |
|
|
65 | focus solely on configuring ALSA via the in-kernel driver. |
|
|
66 | </p> |
|
|
67 | |
|
|
68 | <p> |
|
|
69 | If you still require the <c>alsa-driver</c> package, please email the <mail |
|
|
70 | link="alsa-bugs@gentoo.org">Gentoo ALSA maintainers</mail> with why the |
|
|
71 | in-kernel drivers don't work for you. Be sure to include detailed error logs. |
| 57 | </p> |
72 | </p> |
| 58 | |
73 | |
| 59 | </body> |
74 | </body> |
| 60 | </section> |
75 | </section> |
| 61 | </chapter> |
76 | </chapter> |
| 62 | |
77 | |
| 63 | <chapter> |
78 | <chapter> |
| 64 | <title>Installing ALSA</title> |
79 | <title>Installing ALSA</title> |
| 65 | <section> |
|
|
| 66 | <title>Options</title> |
|
|
| 67 | <body> |
|
|
| 68 | |
|
|
| 69 | <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 | <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 | </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 | <p> |
|
|
| 117 | And, if you were to use alsa-driver, |
|
|
| 118 | </p> |
|
|
| 119 | |
|
|
| 120 | <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 | </body> |
|
|
| 140 | </section> |
|
|
| 141 | <section> |
|
|
| 142 | <title>So...</title> |
|
|
| 143 | <body> |
|
|
| 144 | |
|
|
| 145 | <p> |
|
|
| 146 | 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 | 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 | </p> |
|
|
| 155 | |
|
|
| 156 | </body> |
|
|
| 157 | </section> |
|
|
| 158 | <section id="lspci"> |
80 | <section id="lspci"> |
| 159 | <title>Before you proceed</title> |
81 | <title>Before you proceed</title> |
| 160 | <body> |
82 | <body> |
| 161 | |
83 | |
| 162 | <p> |
84 | <p> |
| 163 | Whichever method of install you choose, you need to know what drivers your |
85 | First, you need to know what drivers your sound card uses. In most cases, sound |
| 164 | sound card uses. In most cases, sound cards (onboard and otherwise) are PCI |
86 | cards (onboard and otherwise) are PCI based and <c>lspci</c> will help you in |
| 165 | based and <c>lspci</c> will help you in digging out the required information. |
87 | digging out the required information. Please <c>emerge sys-apps/pciutils</c> to |
| 166 | Please <c>emerge sys-apps/pciutils</c> to get <c>lspci</c>, if you don't have it |
88 | get <c>lspci</c>, if you don't have it installed already. In case you have a USB |
| 167 | installed already. In case you have a USB sound card, <c>lsusb</c> from |
89 | sound card, <c>lsusb</c> from <c>sys-apps/usbutils</c> <e>might</e> be of help. |
| 168 | <c>sys-apps/usbutils</c> <e>might</e> be of help. For ISA cards, try using |
90 | For ISA cards, try using <c>sys-apps/isapnptools</c>. Also, the following pages |
| 169 | <c>sys-apps/isapnptools</c>. Also, the following pages <e>may</e> help users |
91 | <e>may</e> help users with ISA based sound cards: |
| 170 | with ISA based sound cards. |
|
|
| 171 | </p> |
92 | </p> |
| 172 | |
93 | |
| 173 | <ul> |
94 | <ul> |
| 174 | <li> |
95 | <li> |
| 175 | <uri link="http://www.roestock.demon.co.uk/isapnptools/">The ISAPNPTOOLS |
96 | <uri link="http://www.roestock.demon.co.uk/isapnptools/">The ISAPNPTOOLS |
| … | |
… | |
| 198 | # <i>lspci -v | grep -i audio</i> |
119 | # <i>lspci -v | grep -i audio</i> |
| 199 | 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06) |
120 | 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06) |
| 200 | </pre> |
121 | </pre> |
| 201 | |
122 | |
| 202 | <p> |
123 | <p> |
| 203 | We now know that the sound card on the machine is a Sound Blaster Live! and |
124 | We now know that the sound card on the machine is a Sound Blaster Live! and the |
| 204 | the card manufacturer is Creative Labs. Head over to the |
125 | card manufacturer is Creative Labs. Head over to the <uri |
| 205 | <uri link="http://www.alsa-project.org/alsa-doc/"> ALSA Soundcard Matrix</uri> |
126 | link="http://bugtrack.alsa-project.org/main/index.php/Matrix:Main">ALSA |
| 206 | page and select Creative Labs from the drop down menu. You will be taken to |
127 | Soundcard Matrix</uri> page and select Creative Labs from the list. You will |
| 207 | the Creative Labs matrix page where you can see that the SB Live! uses the |
128 | be taken to the Creative Labs matrix page where you can see that the SB Live! |
| 208 | <c>emu10k1</c> module. That is the information we need for now. If you are |
129 | uses the <c>emu10k1</c> module. That is the information we need for now. If |
| 209 | interested in detailed information, you can click on the link next to the |
130 | you are interested in detailed information, you can click on the link next to |
| 210 | "Details" and that will take you to the <c>emu10k1</c> specific page. |
131 | the "Details" and that will take you to the <c>emu10k1</c> specific page. |
|
|
132 | </p> |
|
|
133 | |
|
|
134 | <p> |
|
|
135 | If you intend to use MIDI, then you should add <c>midi</c> to your USE flags in |
|
|
136 | <path>/etc/make.conf</path> before emerging any ALSA packages. Later in the |
|
|
137 | guide, we will show you how to set up <uri link="#midi">MIDI support</uri>. |
| 211 | </p> |
138 | </p> |
| 212 | |
139 | |
| 213 | </body> |
140 | </body> |
| 214 | </section> |
141 | </section> |
| 215 | <section id="kernel"> |
142 | <section id="kernel"> |
| 216 | <title>Using ALSA provided by your Kernel</title> |
143 | <title>Configuring the kernel</title> |
| 217 | <body> |
144 | <body> |
| 218 | |
|
|
| 219 | <p> |
|
|
| 220 | If you're a person who likes to keep things simple like I do, then this is |
|
|
| 221 | the way to go. |
|
|
| 222 | </p> |
|
|
| 223 | |
145 | |
| 224 | <note> |
146 | <note> |
| 225 | Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless |
147 | Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Please |
| 226 | you are specifically using the 2.4 profile, <c>gentoo-sources</c> will be a |
148 | check that your kernel is a 2.6 series kernel. This method will <e>not</e> work |
| 227 | 2.6 kernel on <e>most</e> architectures. Please check that your kernel is a |
149 | on a 2.4 kernel. |
| 228 | 2.6 series kernel. This method will <e>not</e> work on a 2.4 kernel. |
|
|
| 229 | </note> |
150 | </note> |
| 230 | |
151 | |
| 231 | <p> |
152 | <p> |
| 232 | Let us now configure the kernel to enable ALSA. |
153 | Let us now configure the kernel to enable ALSA. |
| 233 | </p> |
154 | </p> |
| … | |
… | |
| 252 | Now we will look at some of the options we will have to enable in the 2.6 |
173 | Now we will look at some of the options we will have to enable in the 2.6 |
| 253 | kernel to ensure proper ALSA support for our sound card. |
174 | kernel to ensure proper ALSA support for our sound card. |
| 254 | </p> |
175 | </p> |
| 255 | |
176 | |
| 256 | <p> |
177 | <p> |
| 257 | Please note that for the sake of ease, all examples show ALSA built as modules. |
178 | Please note that for ease of use, all examples show ALSA built as modules. It |
| 258 | It is advisable to follow the same as it then allows the use of <c>alsaconf</c> |
179 | is advisable to follow the same as it then allows the use of <c>alsaconf</c> |
| 259 | which is a boon when you want to configure your card. Please do <e>not</e> skip |
180 | which is a boon when you want to configure your card. Please do <e>not</e> skip |
| 260 | the <uri link="#alsa-config">Configuration</uri> section of this document. If |
181 | the <uri link="#alsa-config">Configuration</uri> section of this document. If |
| 261 | you still like to have options built-in, ensure that you make changes to your |
182 | you still like to have options built-in, ensure that you make changes to your |
| 262 | config accordingly. |
183 | config accordingly. |
| 263 | </p> |
184 | </p> |
| … | |
… | |
| 281 | <comment>(Old style /dev/mixer* and /dev/dsp* support. Recommended.)</comment> |
202 | <comment>(Old style /dev/mixer* and /dev/dsp* support. Recommended.)</comment> |
| 282 | <M> OSS Mixer API |
203 | <M> OSS Mixer API |
| 283 | <M> OSS PCM (digital audio) API |
204 | <M> OSS PCM (digital audio) API |
| 284 | |
205 | |
| 285 | <comment>(You now have a choice of devices to enable support for. Generally, |
206 | <comment>(You now have a choice of devices to enable support for. Generally, |
| 286 | you will have one type of device and not more. If you have more than one |
207 | you will have one type of device and not more. If you have more than one |
| 287 | sound card, please enable them all here.)</comment> |
208 | sound card, please enable them all here.)</comment> |
| 288 | |
209 | |
| 289 | <comment>(Mostly for testing and development purposes, not needed for normal |
210 | <comment>(Mostly for testing and development purposes, not needed for normal |
| 290 | users unless you know what you are doing.)</comment> |
211 | users unless you know what you are doing.)</comment> |
| 291 | Generic devices ---> |
212 | Generic devices ---> |
| 292 | |
213 | |
| 293 | <comment>(For ISA Sound cards)</comment> |
214 | <comment>(For ISA Sound cards)</comment> |
| 294 | ISA devices ---> |
215 | ISA devices ---> |
| 295 | <comment>(IF you had the Gravis, you would select this option)</comment> |
216 | <comment>(IF you had the Gravis, you would select this option)</comment> |
| 296 | <M> Gravis UltraSound Extreme |
217 | <M> Gravis UltraSound Extreme |
| 297 | |
218 | |
| 298 | <comment>(Move one level back and into PCI devices. Most sound cards today are |
219 | <comment>(Move one level back and into PCI devices. Most sound cards today are |
| 299 | PCI devices)</comment> |
220 | PCI devices)</comment> |
| 300 | PCI devices ---> |
221 | PCI devices ---> |
| 301 | <comment>(We now select the emu10k1 driver for our card)</comment> |
222 | <comment>(We now select the emu10k1 driver for our card)</comment> |
| 302 | <M> Emu10k1 (SB Live!, Audigy, E-mu APS) |
223 | <M> Emu10k1 (SB Live!, Audigy, E-mu APS) |
| 303 | <comment>(Or an Intel card would be)</comment> |
224 | <comment>(Or an Intel card would be)</comment> |
| … | |
… | |
| 311 | |
232 | |
| 312 | <p> |
233 | <p> |
| 313 | Now that your options are set, you can (re)compile the kernel and ALSA support |
234 | Now that your options are set, you can (re)compile the kernel and ALSA support |
| 314 | for your card should be functional once you reboot into the new kernel. Don't |
235 | 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. |
236 | forget to update your GRUB configuration to use the newly built kernel. |
| 316 | You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and |
237 | You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and |
| 317 | see if everything is working as it should. |
238 | see if everything is working as it should. |
| 318 | </p> |
239 | </p> |
| 319 | |
|
|
| 320 | </body> |
|
|
| 321 | </section> |
|
|
| 322 | <section id="alsa-driver"> |
|
|
| 323 | <title>Using the ALSA Driver package</title> |
|
|
| 324 | <body> |
|
|
| 325 | |
|
|
| 326 | <p> |
|
|
| 327 | So you've decided to go the <c>alsa-driver</c> way. Let's get started then. |
|
|
| 328 | There are a few minor things to be done to ensure only the drivers for your |
|
|
| 329 | sound card are compiled. Although this is not really necessary, it cuts down |
|
|
| 330 | on the unnecessary drivers that will be compiled otherwise. |
|
|
| 331 | </p> |
|
|
| 332 | |
|
|
| 333 | <p> |
|
|
| 334 | If you don't have an idea of what drivers your sound card might need, please |
|
|
| 335 | take a look at the <uri link="#lspci">lspci</uri> section of this guide. Once |
|
|
| 336 | you have your driver name (<c>emu10k1</c> in our example), edit |
|
|
| 337 | <path>/etc/make.conf</path> and add a variable, <c>ALSA_CARDS</c>. |
|
|
| 338 | </p> |
|
|
| 339 | |
|
|
| 340 | <pre caption="Adding ALSA_CARDS to make.conf"> |
|
|
| 341 | <comment>(For one sound card)</comment> |
|
|
| 342 | ALSA_CARDS="emu10k1" |
|
|
| 343 | <comment>(For more than one, separate names with spaces)</comment> |
|
|
| 344 | ALSA_CARDS="emu10k1 via82xx" |
|
|
| 345 | </pre> |
|
|
| 346 | |
|
|
| 347 | <p> |
|
|
| 348 | If you have compiled your kernel and want to use <c>alsa-driver</c>, please |
|
|
| 349 | ensure the following before proceeding, else <c>alsa-driver</c> is likely to |
|
|
| 350 | fail. The next code listing gives you one way of performing the checks. |
|
|
| 351 | </p> |
|
|
| 352 | |
|
|
| 353 | <note> |
|
|
| 354 | <c>genkernel</c> users can proceed with <uri link="#doc_chap2_pre6">Installing |
|
|
| 355 | alsa-driver</uri> as their configuration is in sync with the one shown below by |
|
|
| 356 | default. |
|
|
| 357 | </note> |
|
|
| 358 | |
|
|
| 359 | <ol> |
|
|
| 360 | <li> |
|
|
| 361 | <c>CONFIG_SOUND</c> is set. (Basic Sound support enabled) |
|
|
| 362 | </li> |
|
|
| 363 | <li> |
|
|
| 364 | <c>CONFIG_SOUND_PRIME</c> is not set. (In-built OSS support disabled) |
|
|
| 365 | </li> |
|
|
| 366 | <li> |
|
|
| 367 | <c>CONFIG_SND</c> is not set. (In-built ALSA support disabled) |
|
|
| 368 | </li> |
|
|
| 369 | <li> |
|
|
| 370 | <path>/usr/src/linux</path> points to the kernel you want ALSA working on. |
|
|
| 371 | </li> |
|
|
| 372 | </ol> |
|
|
| 373 | |
|
|
| 374 | <pre caption=".config checks"> |
|
|
| 375 | <comment>(Assuming the linux symlink points to the correct kernel)</comment> |
|
|
| 376 | # <i>cd /usr/src/linux</i> |
|
|
| 377 | # <i>grep SOUND .config</i> |
|
|
| 378 | <comment>(1. is true)</comment> |
|
|
| 379 | CONFIG_SOUND=y |
|
|
| 380 | <comment>(2. is true)</comment> |
|
|
| 381 | CONFIG_SOUND_PRIME is not set |
|
|
| 382 | # <i>grep SND .config</i> |
|
|
| 383 | <comment>(and 3. is true)</comment> |
|
|
| 384 | CONFIG_SND is not set |
|
|
| 385 | </pre> |
|
|
| 386 | |
|
|
| 387 | <p> |
|
|
| 388 | Now all you have to do is type the magic words... and no, it's not abracadabra. |
|
|
| 389 | </p> |
|
|
| 390 | |
|
|
| 391 | <pre caption="Installing alsa-driver"> |
|
|
| 392 | # <i>emerge alsa-driver</i> |
|
|
| 393 | </pre> |
|
|
| 394 | |
|
|
| 395 | <impo> |
|
|
| 396 | Please note that you will have to run <c>emerge alsa-driver</c> after every |
|
|
| 397 | kernel (re)compile, as the earlier drivers are deleted. |
|
|
| 398 | </impo> |
|
|
| 399 | |
240 | |
| 400 | </body> |
241 | </body> |
| 401 | </section> |
242 | </section> |
| 402 | </chapter> |
243 | </chapter> |
| 403 | |
244 | |
| … | |
… | |
| 406 | <section id="alsa-utilities"> |
247 | <section id="alsa-utilities"> |
| 407 | <title>ALSA Utilities</title> |
248 | <title>ALSA Utilities</title> |
| 408 | <body> |
249 | <body> |
| 409 | |
250 | |
| 410 | <p> |
251 | <p> |
| 411 | <c>alsa-utils</c> forms an integral part of ALSA as it has a truckload of |
252 | <c>alsa-utils</c> forms an integral part of ALSA as it has a truckload of |
| 412 | programs that are highly useful, including the ALSA Initscripts. Hence we |
253 | programs that are highly useful, including the ALSA Initscripts. Hence we |
| 413 | strongly recommend that you install <c>alsa-utils</c> |
254 | strongly recommend that you install <c>alsa-utils</c> |
| 414 | </p> |
255 | </p> |
| 415 | |
256 | |
| 416 | <pre caption="Install alsa-utils"> |
257 | <pre caption="Install alsa-utils"> |
| 417 | # <i>emerge alsa-utils</i> |
258 | # <i>emerge alsa-utils</i> |
| 418 | </pre> |
259 | </pre> |
| 419 | |
260 | |
| 420 | <note> |
261 | <note> |
| 421 | If you activated ALSA in your <uri link="#kernel">kernel</uri> <e>and</e> did |
|
|
| 422 | not compile ALSA as modules, please proceed to the |
262 | If you did <e>not</e> compile ALSA as modules, please proceed to the <uri |
| 423 | <uri link="#initscript">ALSA Initscript</uri> section. The rest of you need |
263 | link="#initscript">ALSA Initscript</uri> section. The rest of you need to |
| 424 | to configure ALSA. This is made very easy by the existence of the |
264 | configure ALSA. This is made very easy by the existence of the <c>alsaconf</c> |
| 425 | <c>alsaconf</c> tool provided by <c>alsa-utils</c>. |
265 | tool provided by <c>alsa-utils</c>. |
| 426 | </note> |
266 | </note> |
| 427 | |
267 | |
| 428 | </body> |
268 | </body> |
| 429 | </section> |
269 | </section> |
| 430 | <section id="alsa-config"> |
270 | <section id="alsa-config"> |
| 431 | <title>Configuration</title> |
271 | <title>Configuration</title> |
| 432 | <body> |
272 | <body> |
| 433 | |
273 | |
|
|
274 | <p> |
|
|
275 | Recent versions of <c>udev</c> (<c>>=udev-103</c>) provide some degree of |
|
|
276 | kernel-level autoconfiguration of your sound card. If possible, try to rely on |
|
|
277 | just letting your kernel automatically setup your sound card for you. Otherwise, |
|
|
278 | use <c>alsaconf</c> to configure your card, as shown below. |
|
|
279 | </p> |
|
|
280 | |
| 434 | <note> |
281 | <note> |
| 435 | Please shut down any programs that <e>might</e> access the sound card while |
282 | Please shut down any programs that <e>might</e> access the sound card while |
| 436 | running <c>alsaconf</c>. |
283 | running <c>alsaconf</c>. |
| 437 | </note> |
284 | </note> |
| 438 | |
285 | |
| 439 | <p> |
286 | <p> |
| 440 | The easiest way to configure your sound card is to run <c>alsaconf</c>. Just |
287 | To configure your sound card just type <c>alsaconf</c> in a shell as root. |
| 441 | type <c>alsaconf</c> in a shell as root. |
|
|
| 442 | </p> |
288 | </p> |
| 443 | |
289 | |
| 444 | <pre caption="Invoking alsaconf"> |
290 | <pre caption="Invoking alsaconf"> |
| 445 | # <i>alsaconf</i> |
291 | # <i>alsaconf</i> |
| 446 | </pre> |
292 | </pre> |
| 447 | |
293 | |
| 448 | <p> |
294 | <p> |
| 449 | You will now see a neat menu guided interface that will automatically probe |
295 | You will now see a neat menu guided interface that will automatically probe |
| 450 | your devices and try to find out your sound card. You will be asked to pick |
296 | your devices and try to find out your sound card. You will be asked to pick |
| 451 | your sound card from a list. Once that's done, it will ask you permission to |
297 | your sound card from a list. Once that's done, it will ask you permission to |
| 452 | automatically make required changes to <path>/etc/modules.d/alsa</path>. |
298 | automatically make required changes to <path>/etc/modprobe.d/alsa.conf</path>. |
| 453 | It will then adjust your volume settings to optimum levels, run |
299 | It will then adjust your volume settings to optimum levels, run |
| 454 | <c>modules-update</c> and start the <path>/etc/init.d/alsasound</path> service. |
300 | <c>update-modules</c> and start the <path>/etc/init.d/alsasound</path> service. |
| 455 | Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA |
301 | Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA |
| 456 | initscript. |
302 | initscript. |
| 457 | </p> |
303 | </p> |
| 458 | |
304 | |
| 459 | </body> |
305 | </body> |
| … | |
… | |
| 461 | <section id="initscript"> |
307 | <section id="initscript"> |
| 462 | <title>ALSA Initscript</title> |
308 | <title>ALSA Initscript</title> |
| 463 | <body> |
309 | <body> |
| 464 | |
310 | |
| 465 | <p> |
311 | <p> |
| 466 | We're now almost all setup. Whichever method you chose to install ALSA, you'll |
312 | We're now almost all setup. Whichever method you chose to install ALSA, you'll |
| 467 | need to have something load your modules or initialize ALSA and restore your |
313 | need to have something load your modules or initialize ALSA and restore your |
| 468 | volume settings when your system comes up. The ALSA Initscript handles all of |
314 | volume settings when your system comes up. The ALSA Initscript handles all of |
| 469 | this for you and is called <c>alsasound</c>. Add it to the boot runlevel. |
315 | this for you and is called <c>alsasound</c>. Add it to the boot runlevel. |
| 470 | </p> |
316 | </p> |
| 471 | |
317 | |
| 472 | <pre caption="Adding ALSA to the boot runlevel"> |
318 | <pre caption="Adding ALSA to the boot runlevel"> |
| 473 | # <i>rc-update add alsasound boot</i> |
319 | # <i>rc-update add alsasound boot</i> |
| 474 | * alsasound added to runlevel boot |
320 | * alsasound added to runlevel boot |
| 475 | * rc-update complete. |
321 | * rc-update complete. |
| 476 | </pre> |
322 | </pre> |
| 477 | |
323 | |
| 478 | <p> |
324 | <p> |
| 479 | Next, just check the <path>/etc/conf.d/alsasound</path> file and ensure that |
325 | Next, just check the <path>/etc/conf.d/alsasound</path> file and ensure that |
| 480 | SAVE_ON_STOP variable is set to yes. This saves your sound settings when you |
326 | SAVE_ON_STOP variable is set to yes. This saves your sound settings when you |
| 481 | shutdown your system. |
327 | shutdown your system. |
| 482 | </p> |
328 | </p> |
| 483 | |
329 | |
| 484 | </body> |
330 | </body> |
| 485 | </section> |
331 | </section> |
| … | |
… | |
| 487 | <title>Audio Group</title> |
333 | <title>Audio Group</title> |
| 488 | <body> |
334 | <body> |
| 489 | |
335 | |
| 490 | <p> |
336 | <p> |
| 491 | Before we move on to testing, there's one last <e>important</e> thing that needs |
337 | Before we move on to testing, there's one last <e>important</e> thing that needs |
| 492 | to be setup. Rule of thumb in a *nix OS : Do not run as root unless needed. |
338 | to be setup. Rule of thumb in a *nix OS: Do not run as root unless needed. |
| 493 | This applies here as well ;) How? Well, most of the times you should be logged |
339 | This applies here as well ;) How? Well, most of the times you should be logged |
| 494 | in as a user and would like to listen to music or access your soundcard. For |
340 | in as a user and would like to listen to music or access your soundcard. For |
| 495 | that to happen, you need to be in the "audio" group. At this point, we'll add |
341 | that to happen, you need to be in the "audio" group. At this point, we'll add |
| 496 | users to the audio group, so that they won't have any issues when they want to |
342 | users to the audio group, so that they won't have any issues when they want to |
| 497 | access sound devices. We'll use <c>gpasswd</c> here and you need to be logged in |
343 | access sound devices. We'll use <c>gpasswd</c> here and you need to be logged in |
| … | |
… | |
| 509 | <section> |
355 | <section> |
| 510 | <title>Volume Check!</title> |
356 | <title>Volume Check!</title> |
| 511 | <body> |
357 | <body> |
| 512 | |
358 | |
| 513 | <p> |
359 | <p> |
| 514 | We've completed all the setups and pre-requisites, so let's fire up ALSA. If |
360 | We've completed all the setups and prerequisites, so let's fire up ALSA. If |
| 515 | you ran <c>alsaconf</c>, you can skip this step, since <c>alsaconf</c> already |
361 | you ran <c>alsaconf</c>, you can skip this step, since <c>alsaconf</c> already |
| 516 | does this for you. |
362 | does this for you. |
| 517 | </p> |
363 | </p> |
| 518 | |
364 | |
| 519 | <pre caption="Start the service"> |
365 | <pre caption="Start the service"> |
| 520 | <comment>(ALSA as modules)</comment> |
|
|
| 521 | # <i>/etc/init.d/alsasound start</i> |
366 | # <i>/etc/init.d/alsasound start</i> |
| 522 | * Loading ALSA modules ... |
|
|
| 523 | * Loading: snd-card-0 ... [ ok ] |
|
|
| 524 | * Loading: snd-pcm-oss ... [ ok ] |
|
|
| 525 | * Loading: snd-seq ... [ ok ] |
|
|
| 526 | * Loading: snd-emu10k1-synth ... [ ok ] |
|
|
| 527 | * Loading: snd-seq-midi ... [ ok ] |
|
|
| 528 | * Restoring Mixer Levels ... [ ok ] |
|
|
| 529 | <comment>(ALSA compiled in)</comment> |
|
|
| 530 | # <i>/etc/init.d/alsasound start</i> |
|
|
| 531 | * Loading ALSA modules ... |
|
|
| 532 | * Restoring Mixer Levels ... [ ok ] |
|
|
| 533 | </pre> |
367 | </pre> |
| 534 | |
368 | |
| 535 | <p> |
369 | <p> |
| 536 | Now that the required things have been taken care of, we need to check up on |
370 | Now that the required things have been taken care of, we need to check up on |
| 537 | the volume as in certain cases, it is muted. We use <c>alsamixer</c> for this |
371 | the volume as in certain cases, it is muted. We use <c>alsamixer</c> for this |
| 538 | purpose. |
372 | purpose. |
| 539 | </p> |
373 | </p> |
| 540 | |
374 | |
| 541 | <pre caption="Starting alsamixer"> |
375 | <pre caption="Starting alsamixer"> |
| 542 | <comment>(Opens up a console program. Only required settings are shown)</comment> |
376 | <comment>(Opens up a console program. Only required settings are shown)</comment> |
| 543 | # <i>alsamixer</i> |
377 | # <i>alsamixer</i> |
| 544 | </pre> |
378 | </pre> |
| 545 | |
379 | |
| 546 | <impo> |
|
|
| 547 | If you have issues starting up <c>alsamixer</c> and get errors such as |
|
|
| 548 | alsamixer: function snd_ctl_open failed for default: No such file or directory, |
|
|
| 549 | this is usually an issue with udev setting up the devices. Run <c>killall |
|
|
| 550 | udevd; udevstart</c> to reload <path>/dev</path> entries and fire up |
|
|
| 551 | <c>alsamixer</c>. It should solve the issue. |
|
|
| 552 | </impo> |
|
|
| 553 | |
|
|
| 554 | <p> |
380 | <p> |
| 555 | This is how the ALSA Mixer <e>might</e> look the first time you open it. Pay |
381 | This is how the ALSA Mixer <e>might</e> look the first time you open it. Pay |
| 556 | attention to the Master and PCM channels which both have an MM below them. |
382 | attention to the Master and PCM channels which both have an MM below them. |
| 557 | That means they are muted. If you try to play anything with <c>alsamixer</c> |
383 | That means they are muted. If you try to play anything with <c>alsamixer</c> |
| 558 | in this state, you will not hear anything on your speakers. |
384 | in this state, you will not hear anything on your speakers. |
| 559 | </p> |
385 | </p> |
| 560 | |
386 | |
| 561 | <figure link="/images/docs/alsa-mixermuted.png" short="AlsaMixer Muted" caption="The Alsa Mixer Main Window, Muted"/> |
387 | <figure link="/images/docs/alsa-mixermuted.png" short="AlsaMixer Muted" caption="The Alsa Mixer Main Window, Muted"/> |
| 562 | |
388 | |
| … | |
… | |
| 569 | if you want to hear some output on your speakers. |
395 | if you want to hear some output on your speakers. |
| 570 | </warn> |
396 | </warn> |
| 571 | |
397 | |
| 572 | <ul> |
398 | <ul> |
| 573 | <li> |
399 | <li> |
| 574 | To move between channels, use your left and right arrow keys. (<- |
400 | To move between channels, use your left and right arrow keys. (<- |
| 575 | & ->) |
401 | & ->) |
| 576 | </li> |
402 | </li> |
| 577 | <li> |
403 | <li> |
| 578 | To toggle mute, move to the specific channel, for example Master and press |
404 | To toggle mute, move to the specific channel, for example Master and press |
| 579 | the <e>m</e> key on the keyboard. |
405 | the <e>m</e> key on the keyboard. |
| 580 | </li> |
406 | </li> |
| 581 | <li> |
407 | <li> |
| 582 | To increase and decrease the volume levels, use the up and down arrow keys |
408 | To increase and decrease the volume levels, use the up and down arrow keys |
| 583 | respectively. |
409 | respectively. |
| 584 | </li> |
410 | </li> |
| 585 | </ul> |
411 | </ul> |
| 586 | |
412 | |
| 587 | <note> |
413 | <note> |
| 588 | Be careful when setting your Bass and Treble values. 50 is usually a good |
414 | Be careful when setting your Bass and Treble values. 50 is usually a good |
| 589 | number for both. Extremely high values of Bass may cause <e>jarring</e> |
415 | number for both. Extremely high values of Bass may cause <e>jarring</e> |
| 590 | on speakers that are not designed to handle them. |
416 | on speakers that are not designed to handle them. |
| 591 | </note> |
417 | </note> |
| 592 | |
418 | |
| 593 | <p> |
419 | <p> |
| 594 | After you're all done, your ALSA Mixer should look similar to the one below. |
420 | After you're all done, your ALSA Mixer should look similar to the one below. |
| 595 | Note the 00 instead of the MM and also the volume levels for some optimum |
421 | Note the 00 instead of the MM and also the volume levels for some optimum |
| 596 | settings. |
422 | settings. |
| 597 | </p> |
423 | </p> |
| 598 | |
424 | |
| 599 | <figure link="/images/docs/alsa-mixerunmuted.png" short="AlsaMixer Unmuted" caption="Alsa Mixer ready to roll"/> |
425 | <figure link="/images/docs/alsa-mixerunmuted.png" short="AlsaMixer Unmuted" caption="Alsa Mixer ready to roll"/> |
| 600 | |
426 | |
| … | |
… | |
| 606 | |
432 | |
| 607 | <p> |
433 | <p> |
| 608 | Finally. Some music. If everything above is perfect, you should now be able to |
434 | Finally. Some music. If everything above is perfect, you should now be able to |
| 609 | listen to some good music. A quick way to test is to use a command line tool |
435 | listen to some good music. A quick way to test is to use a command line tool |
| 610 | like <c>media-sound/madplay</c>. You could also use something more well known |
436 | like <c>media-sound/madplay</c>. You could also use something more well known |
| 611 | like <c>mpg123</c> or <c>xmms</c>. If you are an ogg fan, you could use |
437 | like <c>mpg123</c>. If you are an ogg fan, you could use <c>ogg123</c> provided |
| 612 | <c>ogg123</c> provided by <c>media-sound/vorbis-tools</c>. Use any player you |
438 | by <c>media-sound/vorbis-tools</c>. Use any player you are comfortable with. As |
| 613 | are comfortable with. As always, <c>emerge</c> what you need. |
439 | always, <c>emerge</c> what you need. |
| 614 | </p> |
440 | </p> |
| 615 | |
441 | |
| 616 | <pre caption="Getting the software"> |
442 | <pre caption="Getting the software"> |
| 617 | <comment>(Install the applications you want)</comment> |
443 | <comment>(Install the applications you want)</comment> |
| 618 | # <i>emerge madplay mpg123 xmms</i> |
444 | # <i>emerge madplay mpg123</i> |
| 619 | <comment>(To play .ogg files)</comment> |
445 | <comment>(To play .ogg files)</comment> |
| 620 | # <i>emerge vorbis-tools</i> |
446 | # <i>emerge vorbis-tools</i> |
| 621 | </pre> |
447 | </pre> |
| 622 | |
448 | |
| 623 | <p> |
449 | <p> |
| … | |
… | |
| 666 | <section> |
492 | <section> |
| 667 | <title>Issues?</title> |
493 | <title>Issues?</title> |
| 668 | <body> |
494 | <body> |
| 669 | |
495 | |
| 670 | <p> |
496 | <p> |
| 671 | If for some reason you're unable to hear sound, the first thing to do would |
497 | If for some reason you're unable to hear sound, the first thing to do would |
| 672 | be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of |
498 | be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of |
| 673 | the issues lie with muted channels or low volume. Also check your Window |
499 | the issues lie with muted channels or low volume. Also check your Window |
| 674 | Manager's sound applet and verify that volumes are set to audible levels. |
500 | Manager's sound applet and verify that volumes are set to audible levels. |
| 675 | </p> |
501 | </p> |
| 676 | |
502 | |
| 677 | <p> |
503 | <p> |
| 678 | <path>/proc</path> is your friend. And in this case, <path>/proc/asound</path> |
504 | <path>/proc</path> is your friend. And in this case, <path>/proc/asound</path> |
| 679 | is your best friend. We shall just take a short look at how much info is made |
505 | is your best friend. We shall just take a short look at how much info is made |
| 680 | available to us there. |
506 | available to us there. |
| 681 | </p> |
507 | </p> |
| 682 | |
508 | |
| 683 | <pre caption="Fun with /proc/asound"> |
509 | <pre caption="Fun with /proc/asound"> |
| 684 | <comment>(First and foremost, if /proc/asound/cards shows your card, ALSA has |
510 | <comment>(First and foremost, if /proc/asound/cards shows your card, ALSA has |
| 685 | picked up your sound card fine.)</comment> |
511 | picked up your sound card fine.)</comment> |
| 686 | # <i>cat /proc/asound/cards</i> |
512 | # <i>cat /proc/asound/cards</i> |
| 687 | 0 [Live ]: EMU10K1 - Sound Blaster Live! |
513 | 0 [Live ]: EMU10K1 - Sound Blaster Live! |
| 688 | Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11 |
514 | Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11 |
| 689 | |
515 | |
| 690 | <comment>(If you run ALSA off the kernel like I do and wonder how far behind |
|
|
| 691 | you are from alsa-driver, this displays current running ALSA version)</comment> |
516 | <comment>(This displays the current running ALSA version)</comment> |
| 692 | # <i>cat /proc/asound/version</i> |
517 | # <i>cat /proc/asound/version</i> |
| 693 | Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC). |
518 | Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC). |
| 694 | |
519 | |
| 695 | <comment>(ALSA OSS emulation details)</comment> |
520 | <comment>(ALSA OSS emulation details)</comment> |
| 696 | # <i>cat /proc/asound/oss/sndstat</i> |
521 | # <i>cat /proc/asound/oss/sndstat</i> |
| … | |
… | |
| 716 | 7: system timer |
541 | 7: system timer |
| 717 | |
542 | |
| 718 | Mixers: |
543 | Mixers: |
| 719 | 0: SigmaTel STAC9721/23 |
544 | 0: SigmaTel STAC9721/23 |
| 720 | </pre> |
545 | </pre> |
|
|
546 | |
|
|
547 | <!-- TODO: remove this a few months after alsa-driver leaves the tree --> |
| 721 | |
548 | |
| 722 | <p> |
549 | <p> |
| 723 | The other most common issue users face is the dreaded "Unknown symbol in module" |
550 | The other most common issue users face is the dreaded "Unknown symbol in module" |
| 724 | error. An example of the same is shown below. |
551 | error. An example of the same is shown below. |
| 725 | </p> |
552 | </p> |
| … | |
… | |
| 769 | snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback |
596 | snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback |
| 770 | snd_mixer_oss: Unknown symbol snd_oss_info_register |
597 | snd_mixer_oss: Unknown symbol snd_oss_info_register |
| 771 | </pre> |
598 | </pre> |
| 772 | |
599 | |
| 773 | <p> |
600 | <p> |
| 774 | The above issue is caused when you switch from <c>alsa-driver</c> to in-kernel |
601 | The above issue is caused when you switch from the <c>alsa-driver</c> to in-kernel |
| 775 | ALSA because when you unmerge <c>alsa-driver</c> the module files are config |
602 | ALSA because when you unmerge <c>alsa-driver</c> the module files are config |
| 776 | protected and hence get left behind. So, when you switch to in-kernel |
603 | protected and hence get left behind. So, when you switch to in-kernel |
| 777 | drivers, running <c>modprobe</c> gives you a mix of <c>alsa-driver</c> and |
604 | drivers, running <c>modprobe</c> gives you a mix of <c>alsa-driver</c> and |
| 778 | in-kernel modules thus causing the above errors. |
605 | in-kernel modules thus causing the above errors. |
| 779 | </p> |
606 | </p> |
| … | |
… | |
| 783 | directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct |
610 | directory after you unmerge <c>alsa-driver</c>. Be sure to remove the correct |
| 784 | kernel version and not the current one! |
611 | kernel version and not the current one! |
| 785 | </p> |
612 | </p> |
| 786 | |
613 | |
| 787 | <pre caption="Removing the alsa-driver modules"> |
614 | <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> |
615 | # <i>rm -rf /lib/modules/$(uname -r)/alsa-driver</i> |
| 790 | </pre> |
616 | </pre> |
| 791 | |
617 | |
| 792 | <p> |
618 | <p> |
| 793 | Another reason for error messages similar to the ones above could be a file in |
619 | Another 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 |
620 | <path>/etc/modprobe.d</path> supplying a <c>device_mode</c> parameter when it |
| 795 | isn't required. Confirm that this is indeed the issue and find out which file |
621 | isn't required. Confirm that this is indeed the issue and find out which file |
| 796 | is the culprit. |
622 | is the culprit. |
| 797 | </p> |
623 | </p> |
| 798 | |
624 | |
| 799 | <pre caption="Confirming and searching for device_node"> |
625 | <pre caption="Confirming and searching for device_mode"> |
| 800 | <comment>(Check dmesg to confirm)</comment> |
626 | <comment>(Check dmesg to confirm)</comment> |
| 801 | # <i>dmesg | grep device_mode</i> |
627 | # <i>dmesg | grep device_mode</i> |
| 802 | snd: Unknown parameter `device_mode' |
628 | snd: Unknown parameter `device_mode' |
| 803 | <comment>(Now, to get to the source of the issue)</comment> |
629 | <comment>(Now, to get to the source of the issue)</comment> |
| 804 | # <i>grep device_mode /etc/modules.d/*</i> |
630 | # <i>grep device_mode /etc/modprobe.d/*</i> |
| 805 | </pre> |
631 | </pre> |
| 806 | |
632 | |
| 807 | <p> |
633 | <p> |
| 808 | Usually it is a file called <path>alsa</path> with the line <c>options snd |
634 | Usually it is a file called <path>alsa</path> with the line <c>options snd |
| 809 | device_mode=0666</c>. Remove this line and restart the alsasound service and |
635 | device_mode=0666</c>. Remove this line and restart the <c>alsasound</c> service |
| 810 | that should take care of this issue. |
636 | and that should take care of this issue. |
| 811 | </p> |
637 | </p> |
|
|
638 | |
|
|
639 | <!-- End of removal notice --> |
| 812 | |
640 | |
| 813 | </body> |
641 | </body> |
| 814 | </section> |
642 | </section> |
| 815 | </chapter> |
643 | </chapter> |
| 816 | |
644 | |
| 817 | <chapter> |
645 | <chapter> |
| 818 | <title>Other things ALSA</title> |
646 | <title>Other things ALSA</title> |
| 819 | <section> |
647 | <section id="midi"> |
| 820 | <title>Setting up MIDI support</title> |
648 | <title>Setting up MIDI support</title> |
| 821 | <body> |
649 | <body> |
| 822 | |
650 | |
| 823 | <p> |
651 | <p> |
|
|
652 | First, check to make sure that you enabled the <c>midi</c> USE flag in |
|
|
653 | <path>/etc/make.conf</path>. If you didn't, go ahead and add it now. You will |
|
|
654 | also need to re-emerge any ALSA packages that use the <c>midi</c> flag, such as |
|
|
655 | <c>alsa-lib</c> and <c>alsa-utils</c>. |
|
|
656 | </p> |
|
|
657 | |
|
|
658 | <p> |
| 824 | If your sound card is one of those that come with on-board MIDI synthesizers |
659 | 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 |
660 | 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 |
661 | <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, |
662 | 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 |
663 | you can use a virtual one. Please see the section on |
| 829 | <uri link="#vsynth">Virtual Synthesizers</uri> for more information. |
664 | <uri link="#vsynth">Virtual Synthesizers</uri> for more information. |
| 830 | </p> |
665 | </p> |
| 831 | |
666 | |
| 832 | <pre caption="Installing awesfx"> |
667 | <pre caption="Installing awesfx"> |
| 833 | # <i>emerge awesfx</i> |
668 | # <i>emerge awesfx</i> |
| 834 | </pre> |
669 | </pre> |
| 835 | |
670 | |
| 836 | <note> |
671 | <note> |
| 837 | You will need to copy over SoundFont (SF2) files from your sound card's driver |
672 | 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 |
673 | 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. |
674 | example a sound font file for the Creative SBLive! card would be 8MBGMSFX.SF2. |
| 840 | </note> |
675 | </note> |
| 841 | |
676 | |
| 842 | <p> |
677 | <p> |
| 843 | After copying over the Soundfont files, we can then play a midi file as shown. |
678 | 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 |
679 | 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 |
680 | <path>/etc/conf.d/local.start</path>, so that the sound font is loaded |
| 846 | every time the system starts up. |
681 | every time the system starts up. |
| 847 | </p> |
682 | </p> |
| 848 | |
683 | |
| 849 | <note> |
684 | <note> |
| 850 | <path>/mnt</path> paths mentioned in the code listing(s) below will <e>not</e> |
685 | <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 |
686 | be the same in your machine. They are just an example. Please be careful to |
| 852 | change the path to suit your machine. |
687 | change the path to suit your machine. |
| 853 | </note> |
688 | </note> |
| 854 | |
689 | |
| 855 | <pre caption="Loading Soundfonts"> |
690 | <pre caption="Loading Soundfonts"> |
| 856 | <comment>(First, copy the Soundfont)</comment> |
691 | <comment>(First, copy the Soundfont)</comment> |
| … | |
… | |
| 860 | <comment>(We load the specific Soundfont)</comment> |
695 | <comment>(We load the specific Soundfont)</comment> |
| 861 | # <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i> |
696 | # <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i> |
| 862 | </pre> |
697 | </pre> |
| 863 | |
698 | |
| 864 | <p> |
699 | <p> |
| 865 | You can now play midi files using a program like <c>aplaymidi</c>. Run |
700 | 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 |
701 | <c>aplaymidi -l</c> to get a list of available ports and then pick one |
| 867 | to play the file on. |
702 | to play the file on. |
| 868 | </p> |
703 | </p> |
| 869 | |
704 | |
| 870 | <pre caption="Playing MIDI"> |
705 | <pre caption="Playing MIDI"> |
| 871 | <comment>(Check open ports)</comment> |
706 | <comment>(Check open ports)</comment> |
| … | |
… | |
| 894 | <pre caption="Installing timidity++"> |
729 | <pre caption="Installing timidity++"> |
| 895 | # <i>emerge timidity++</i> |
730 | # <i>emerge timidity++</i> |
| 896 | </pre> |
731 | </pre> |
| 897 | |
732 | |
| 898 | <p> |
733 | <p> |
| 899 | For timidity to play sounds, it needs a sound font. If you do not have any, |
734 | For timidity to play sounds, it needs a sound font. Fortunately, the ebuild will |
| 900 | install <c>timidity-eawpatches</c> or <c>timidity-shompatches</c> which will |
735 | install some sound font packages for you. There are a few other font packages |
| 901 | give you some sound fonts. You can have multiple sound font configurations |
736 | available in Portage, such as <c>timidity-freepats</c> and |
|
|
737 | <c>timidity-eawpatches</c>. You can have multiple sound font configurations |
| 902 | installed, and you can place your own in <path>/usr/share/timidity/</path>. |
738 | installed, and you can place your own in <path>/usr/share/timidity/</path>. To |
| 903 | To switch between different timidity configurations, you should use the |
739 | switch between different timidity configurations, you should use |
| 904 | <c>timidity-update</c> tool provided in the timidity++ package. |
740 | <c>eselect</c>. |
| 905 | </p> |
741 | </p> |
| 906 | |
742 | |
| 907 | <pre caption="Installing sound fonts"> |
743 | <pre caption="Changing configurations"> |
|
|
744 | # <i>eselect timidity list</i> |
| 908 | # <i>emerge timidity-eawpatches</i> |
745 | # <i>eselect timidity set eawpatches</i> |
| 909 | # <i>timidity-update -g -s eawpatches</i> |
|
|
| 910 | |
|
|
| 911 | <comment>(or)</comment> |
|
|
| 912 | |
|
|
| 913 | # <i>emerge timidity-shompatches</i> |
|
|
| 914 | # <i>timidity-update -g -s shompatches</i> |
|
|
| 915 | </pre> |
746 | </pre> |
| 916 | |
747 | |
| 917 | <p> |
748 | <p> |
| 918 | Don't forget to add <c>timidity</c> to the default runlevel. |
749 | Don't forget to add <c>timidity</c> to the default runlevel. |
| 919 | </p> |
750 | </p> |
| … | |
… | |
| 933 | <title>Tools and Firmware</title> |
764 | <title>Tools and Firmware</title> |
| 934 | <body> |
765 | <body> |
| 935 | |
766 | |
| 936 | <p> |
767 | <p> |
| 937 | Some specific sound cards can benefit from certain tools provided by the |
768 | Some specific sound cards can benefit from certain tools provided by the |
| 938 | <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need |
769 | <c>alsa-tools</c> and <c>alsa-firmware</c> packages. You may install either with |
| 939 | <c>alsa-tools</c>, be sure to define the ALSA_TOOLS variable in |
770 | a simple <c>emerge</c>. |
| 940 | <path>/etc/make.conf</path> with the tools you require. For instance: |
|
|
| 941 | </p> |
|
|
| 942 | |
|
|
| 943 | <pre caption="Selecting ALSA Tools in /etc/make.conf"> |
|
|
| 944 | ALSA_TOOLS="as10k1 ac3dec" |
|
|
| 945 | </pre> |
|
|
| 946 | |
|
|
| 947 | <p> |
|
|
| 948 | 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 | </p> |
771 | </p> |
| 951 | |
772 | |
| 952 | <pre caption="Installing ALSA Tools"> |
773 | <pre caption="Installing ALSA Tools"> |
| 953 | # <i>emerge alsa-tools</i> |
774 | # <i>emerge alsa-tools</i> |
| 954 | </pre> |
775 | </pre> |
| 955 | |
776 | |
| 956 | </body> |
777 | </body> |
| 957 | </section> |
778 | </section> |
| 958 | <section> |
779 | <section> |
|
|
780 | <title>Multiple sound cards</title> |
|
|
781 | <body> |
|
|
782 | |
|
|
783 | <p> |
|
|
784 | You can have more than one sound card in your system simultaneously, provided |
|
|
785 | that you have built ALSA as modules in your kernel. You just need to specify |
|
|
786 | which should be started first in <path>/etc/modprobe.d/alsa.conf</path>. Your cards |
|
|
787 | are identified by their driver names inside this file. 0 is the first card, 1 is |
|
|
788 | the second, and so on. Here's an example for a system with two sound cards. |
|
|
789 | </p> |
|
|
790 | |
|
|
791 | <pre caption="Two sound cards in /etc/modprobe.d/alsa.conf"> |
|
|
792 | options snd-emu10k1 index=0 |
|
|
793 | options snd-via82xx index=1 |
|
|
794 | </pre> |
|
|
795 | |
|
|
796 | <p> |
|
|
797 | Or, if you have two cards that use the same driver, you specify them on the same |
|
|
798 | line, using comma-separated numbers. Here's an example for a system with three |
|
|
799 | sound cards, two of which are the same Intel High Definition Audio card. |
|
|
800 | </p> |
|
|
801 | |
|
|
802 | <pre caption="Multiple sound cards in /etc/modprobe.d/alsa.conf"> |
|
|
803 | options snd-ymfpci index=0 |
|
|
804 | options snd-hda-intel index=1,2 |
|
|
805 | </pre> |
|
|
806 | |
|
|
807 | </body> |
|
|
808 | </section> |
|
|
809 | <section> |
|
|
810 | <title>Plugins</title> |
|
|
811 | <body> |
|
|
812 | |
|
|
813 | <p> |
|
|
814 | You may want to install some plugins for extra functionality. |
|
|
815 | <c>alsa-plugins</c> is a collection of useful plugins, which include: PulseAudio |
|
|
816 | output, a sample rate converter, jack (a low-latency audio server), and an |
|
|
817 | encoder that lets you output 6-channel audio through digital S/PDIF connections |
|
|
818 | (both optical and coaxial). You can choose which of its plugins you want |
|
|
819 | installed by adding their USE flags to <path>/etc/portage/package.use</path>. |
|
|
820 | </p> |
|
|
821 | |
|
|
822 | <pre caption="Installing alsa-plugins"> |
|
|
823 | # <i>emerge -avt alsa-plugins</i> |
|
|
824 | </pre> |
|
|
825 | |
|
|
826 | </body> |
|
|
827 | </section> |
|
|
828 | <section> |
| 959 | <title>A Big thank you to...</title> |
829 | <title>A big thank you to...</title> |
| 960 | <body> |
830 | <body> |
| 961 | |
831 | |
| 962 | <p> |
832 | <p> |
| 963 | Everyone who contributed to the earlier version of the Gentoo ALSA Guide: |
833 | Everyone who contributed to the earlier version of the Gentoo ALSA Guide: |
| 964 | Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, |
834 | Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, |
| 965 | John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin. |
835 | John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin. |
| 966 | </p> |
836 | </p> |
| 967 | |
837 | |
| 968 | </body> |
838 | </body> |
| 969 | </section> |
839 | </section> |