1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
|
<?xml version='1.0' encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/fr/alsa-guide.xml,v 1.8 2003/12/31 09:52:11 neysx Exp $ -->
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<guide link = "/doc/fr/alsa-guide.xml">
<title>Gentoo Linux ALSA Guide</title>
<author title="Auteur"><mail link="zu@pandora.be">
Vincent Verleye</mail>
</author>
<author title="Auteur"><mail link="g2boojum@gentoo.org">
Grant Goodyear</mail>
</author>
<author title="Auteur"><mail link="agenkin@gentoo.org">
Arcady Genkin</mail>
</author>
<author title="Correcteur"> <!--zhen@gentoo.org" -->
John P. Davis
</author>
<author title="Correcteur"><mail link="swift@gentoo.org">
Sven Vermeulen</mail>
</author>
<author title="Correcteur"><mail link="bennyc@gentoo.org">
Benny Chuang</mail>
</author>
<author title="Correcteur"><mail link="blubber@gentoo.org">
Tiemo Kieft</mail>
</author>
<author title="Traducteur"><mail link="takezo@skynet.be">
Olivier Roomans</mail>
</author>
<author title="Traducteur"><mail link="cam@cameuh.net">
Camille Huot</mail>
</author>
<license/>
<abstract>
Ce guide vous explique comment mettre en place ALSA (Advanced Linux Sound
Architecture) sur Linux Gentoo.
En complément du Guide de configuration du bureau ("Gentoo Linux Desktop
Configuration Guide"), ce guide est supposé vous donner plus d'informations à ce
sujet.
</abstract>
<version>1.3.5</version>
<date>31 décembre 2003</date>
<chapter>
<title>Introduction</title>
<section>
<title>Qu'est-ce que ALSA ?</title>
<body>
<p>
L'Architecture Son Avancée Linux (ALSA) est un projet pour améliorer le
sous-système sonore en en récrivant une grande partie.
Il est prévu que ALSA soit intégré dans le noyau 2.6.x (ou 3.x.x -- selon lequel
arrivera le premier) dès qu'il sera prêt.
</p>
<p>
ALSA fournit des fonctionnalités audio et MIDI à Linux.
</p>
<p>
En citant <uri>http://www.alsa-project.org</uri>, ALSA a les caractéristiques
suivantes :
<ul>
<li>Support efficace de tous les types d'interface audio, des cartes sons de
l'utilisateur normal aux interfaces audio multicanaux
professionnelles ;</li>
<li>Pilotes son complètement modularisés ;</li>
<li>SMP et design thread-safe ;</li>
<li>Libraire d'espace utilisateur (user space) (alsa-lib) pour simplifier la
programmation d'applications et fournir des fonctionnalités de plus haut
niveau ;</li>
<li>Support des anciennes API OSS, fournissant une compatibilité binaire pour la
majorité des programmes OSS.</li>
</ul>
Cependant, ALSA a beaucoup d'autres fonctionnalités telles que le support de
la restitution et l'enregistrement Full Duplex, le support de cartes son
multiples, le mixage hardware de flux, des capacités de mixage étendues (pour
supporter les fonctionnalités avancées des nouvelles cartes sons) ...
</p>
</body>
</section>
<section><title>Pourquoi utiliser ALSA ?</title>
<body>
<p>
Si votre carte son est supportée par le système de gestion sonore du noyau Linux
ou bien par le driver de son commercial OSS/4 qui se trouve dans tous les
noyaux Linux 2.4.x, vous pouvez compiler <e>ces modules</e> pour les utiliser
sur votre carte son. Si c'est juste ce que vous voulez, alors lisez <uri
link="http://www.tldp.org/HOWTO/Sound-HOWTO/index.html">Linux Sound HOWTO</uri>.
</p>
<p>
Cependant, ces drivers OSS/4 ont quelques limitations (dont celle d'être
commerciaux).
ALSA est un projet qui souhaite se débarrasser de ces limites et de le faire à
la sauce opensource.
ALSA est un système de drivers son complètement GPL et LGPL qui fournit un
système de qualité professionnelle pour enregistrer, jouer et faire du
séquençage MIDI.
</p>
</body>
</section>
<section><title>Quelles sont les cartes supportées par ALSA ?</title>
<body>
<p>
ALSA essaie de supporter autant de (nouvelles) cartes son que possible en
fournissant des drivers opensource. Cependant, quelques fournisseurs ne donnent
que des paquets binaires.
</p>
<p>
Pour savoir si votre carte est supportée, vous pouvez trouver un tableau des
cartes son supportées et non-supportées ici :
<uri>http://www.alsa-project.org/alsa-doc/</uri>.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Installation</title>
<section><title>Les variables USE utilisées par ALSA</title>
<body>
<p>
Pour compiler vos programmes avec le support pour ALSA, ajoutez <e>alsa</e> à
votre variable USE. Certains logiciels ne supportent pas encore ALSA et ont
besoin de OSS. ALSA fournit une émulation de OSS si vous ajoutez <e>oss</e>
dans votre variable USE avant de l'installer.
</p>
</body>
</section>
<section><title>Les modules du noyau</title>
<body>
<p>
Puisque nous utilisons toujours les sources du noyau 2.4.x, nous devons compiler
les modules du noyau et les modules ALSA séparement. Pour ceux qui utilisent un
noyau 2.5.x, vous n'avez qu'à compiler ALSA directement dans le noyau, puisque
les sources des modules ALSA sont désormais incluses dans le noyau.
</p>
<p>
Premièrement, nous allons nous assurer que notre configuration du noyau est
prête pour être utilisée avec ALSA.
Tout ce dont vous avez besoin dans la configuration de votre noyau est le
support pour les cartes son (Sound Card Support) mis en tant que module (M).
Ceci va compiler <c>soundcore.o</c>.
</p>
<note>
Cela fonctionnera probablement avec le support pour carte son intégré au noyau
(Y) à la place d'être en module(M).
Cependant, la documentation officielle de ALSA suggère de le compiler en module,
car ALSA va essayer de le charger.
</note>
<p>
Si vous avez déjà une configuration de noyau en fonctionnement, assurez-vous que
vous avez enlevé tous les drivers de son (excepté celui pour le support de la
carte son qu'on vient d'activer).
Si vous voulez le faire sans devoir rebooter, vous pouvez faire ainsi :
</p>
<pre>
# <i>cd /usr/src/linux</i>
# <i>cp .config ~/</i>
# <i>make mrproper</i>
# <i>cp ~/.config .</i>
# <i>make menuconfig</i>
</pre>
<p>
Maintenant, sélectionnez <e>Sound Card Support</e> en tant que module (M) et
désélectionnez tous les autres drivers son.
Quittez et repondez Y pour sauver la configuration de votre noyau.
Après cela, compilez les modules :
</p>
<pre>
# <i>make dep clean</i>
# <i>make modules modules_install</i>
</pre>
<p>
Avant d'installer vos nouveaux modules, cette dernière ligne va supprimer tous
les modules précédents, même ceux d'une installation précedente d'ALSA.
</p>
<impo>
Cela signifie que, chaque fois que vous recompilerez votre noyau plus tard, vous
DEVREZ recompiler <c>alsa-driver</c>.
</impo>
</body>
</section>
<section><title>Les modules ALSA </title>
<body>
<p>
Maintenant, il est temps d'installer les drivers ALSA pour votre(vos) carte(s)
son. Si votre carte son est en PCI, vous pouvez trouver le nom et le type de
votre carte son en regardant la sortie de <path>/proc/pci</path>.
</p>
<pre>
# <i>grep audio /proc/pci</i>
</pre>
<warn>
Si vous avez déjà des modules sonores installés, dechargez-les
<e>maintenant</e>.
Verifiez avec <c>lsmod</c> et utilisez <c>rmmod</c> pour décharger tous les
modules son de votre système.
</warn>
<p>
Il ne nous reste plus qu'à faire un <c>emerge alsa-driver</c> maintenant, cela
va compiler et installer <e>tous</e> les drivers son ALSA.
</p>
<p>
Cependant, pour ne pas perdre de temps, vous pouvez regarder le <e>Module
Name</e> (Ndt: Nom du module) de votre(vos) carte(s) son sur le
<uri link="http://www.alsa-project.org/alsa-doc">tableau des cartes son
ALSA</uri> en suivant le lien <e>Details</e> de la colonne <e>Driver &
Docs</e> de la ligne correspondant à votre carte son.
Pour moi, c'est <c>snd-emu10k1</c> puisque j'ai une SBlive! qui intègre un
chipset <e>EMU10K1</e>.
Nous allons mettre la variable d'environnement ALSA_CARDS à la valeur du nom du
module (sans le "snd-") avant d'emerger, ainsi emerge ne compilera que le(s)
driver(s) dont nous avons besoin.
</p>
<pre>
# <i>env ALSA_CARDS='emu10k1' emerge alsa-driver</i>
</pre>
<note>
Vous pouvez aussi placer cette variable d'environnement dans votre fichier
<path>/etc/make.conf</path> pour que la prochaine fois que vous aurez besoin
d'emerger alsa-driver vous puissiez seulement faire un
<c>emerge alsa-driver</c>.
</note>
<note>
Quand vous voulez installer les drivers ALSA pour plus d'une carte son, vous
devez configurer ALSA_CARDS avec une liste separée par des espaces comme ceci :
<c>env ALSA_CARDS='emu10k1 intel8x0 ens1370' emerge alsa-driver</c>
</note>
<note>
Si vous désirez avoir la compatibilité avec OSS, assurez-vous de faire un emerge
de <i>alsa-oss</i>, c'est le wrapper de compatibilité ALSA/OSS
</note>
<note>
Si vous comptez recompiler votre noyau plusieurs fois, il serait préférable
d'emerger <c>alsa-driver</c> avec l'option <c>--buildpkg</c>. Cela créera un
paquet binaire de alsa-driver. Plus tard, après avoir recompilé votre noyau,
vous pourrez juste faire un <c>emerge --usepkg alsa-driver</c> ce qui installera
le paquet binaire au lieu de le recompiler complètement.
</note>
<p>
Après cela, les modules ALSA devraient être installés sur votre système.
</p>
</body>
</section>
<section><title>Configuration de ALSA</title>
<body>
<p>
Configurons maintenant ALSA pour qu'il fonctionne correctement.
Nous allons devoir éditer quelques fichiers, pour mettre notre système au
courant des modules ALSA fraîchement installés.
</p>
<p>
D'abord, installez <c>alsa-utils</c> sur votre système :
</p>
<pre caption="Installation de alsa-utils">
# <i>emerge alsa-utils</i>
</pre>
<p>
Ensuite, nous devons éditer le fichier <path>/etc/modules.d/alsa</path>.
</p>
<warn>
Il n'y a pas besoin d'editer <path>/etc/modules.conf</path>. Éditez plutôt
les fichiers dans <path>/etc/modules.d</path>.
</warn>
<p>
Vérifiez la partie ALSA <e>au bas du fichier</e>.
En modifiant cette ligne, vous pouvez spécifier le nombre maximum de cartes son
que vous avez (en général, juste une).
</p>
<pre caption="Au bas de /etc/modules.d/alsa">
<comment>Réglez le bon nombre de cartes son</comment>
options snd cards_limit=1
</pre>
<p>
Maintenant nous allons spécifier le(s) driver(s) que ALSA doit utiliser.
</p>
<pre caption="Dans /etc/modules.d/alsa">
## and then run `update-modules' command.
## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
##
## ALSA portion
alias snd-card-0 snd-emu10k1
<comment>## If you have more than one, add:</comment>
## alias snd-card-1 snd-intel8x0
## alias snd-card-2 snd-ens1370
## OSS/Free portion
## alias sound-slot-0 snd-card-0
## alias sound-slot-1 snd-card-1
##
</pre>
<note>
Si vous avez plus d'une carte son, ajustez la valeur de <c>snd_cards_limit</c>
et ajoutez plus d'alias snd-card au fichier.
Je ne l'ai pas essayé, mais vous pouvez trouver des exemples de configurations
avec deux ou plusieurs cartes son au : <uri
link="http://www.alsa-project.org/alsa-doc/alsa-howto/c1660.htm">Chapitre
6</uri> du <uri
link="http://www.alsa-project.org/alsa-doc/alsa-howto/alsa-howto.html">ALSA
Howto</uri>.
</note>
<p>
La dernière chose à faire dans ce fichier, tout à la fin, est de vérifier si ces
lignes sont présentes et décommentées :
<pre caption="Tout à la fin de /etc/modules.d/alsa">
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
</pre>
</p>
<p>
Maintenant, revérifiez le fichier <path>/etc/modules.d/alsa</path> et quand vous
êtes sûr que tout est correct, exécutez <c>modules-update</c>.
<pre>
# <i>modules-update</i>
</pre>
<note>
En lançant <c>modules-update</c>, on va insérer les données de
<path>/etc/modules.d/alsa</path> dans <path>/etc/modules.conf</path>
</note>
</p>
<p>
Vous devriez aussi vérifier que <path>/etc/devfsd.conf</path> a les
péripheriques ALSA et les permissions enregistrés correctement.
</p>
<pre caption="/etc/devfsd.conf">
# ALSA/OSS stuff
# Comment/change these if you want to change the permissions on
# the audio devices
LOOKUP snd MODLOAD ACTION snd
LOOKUP dsp MODLOAD
LOOKUP mixer MODLOAD
LOOKUP midi MODLOAD
REGISTER sound/.* PERMISSIONS root.audio 660
REGISTER snd/.* PERMISSIONS root.audio 660
</pre>
<note>
Notez que <path>devfsd.conf</path> met les permissions de
<path>/dev/sound</path> à root.audio. C'est pourquoi, les utilisateurs non-root
qui veulent utiliser l'audio doivent faire partie du groupe audio.
</note>
</body>
</section>
</chapter>
<chapter>
<title>Lancer ALSA</title>
<section><title>Ajouter alsasound à un runlevel</title>
<body>
<p>
La première chose à faire maintenant est de faire en sorte que ALSA se lance au
démarrage. Ainsi :
<pre caption="Ajouter alsa aux scripts de démarrage">
# <i>rc-update add alsasound boot</i>
</pre>
</p>
<warn>
Notez que le script alsasound doit être ajouté au runlevel "boot", et non pas au
runlevel "default"
</warn>
</body>
</section>
<section><title>Lancement et activation du son</title>
<body>
<p>
Étant donné que nous sommes des utilisateurs de Linux, nous ne voulons pas
rebooter. Donc nous allons lancer le script alsasound a la main.
</p>
<pre>
# <i>/etc/init.d/alsasound start</i>
</pre>
<p>
Maintenant, ALSA tourne. Si tout est correct, vous devriez pouvoir voir les
modules ALSA chargés en lançant <c>lsmod</c>.
Cependant, le son ne marchera pas encore, parce que tous les canaux sont
"muets". Nous avons besoin de <c>amixer</c> pour corriger cela.
</p>
<pre caption="Lancement de amixer">
# <i>amixer</i>
</pre>
<warn>
Vous ne devriez pas, mais <e>si</e> vous avez une erreur disant "amixer: Mixer
attach default error: No such file or directory", vous devrez faire un modprobe
de <c>snd-mixer-oss</c> et <c>snd-pcm-oss</c>. Après cela, lancez amixer à
nouveau.
</warn>
<pre caption="Uniquement si vous avez une erreur en lançant amixer">
# <i>modprobe snd-mixer-oss</i>
# <i>modprobe snd-pcm-oss</i>
# <i>amixer</i>
</pre>
<p>
Si vous êtes arrivé jusqu'ici, activez les volumes pour les canaux Master et
PCM. Certains matériels ont également besoin que vous activiez les canaux Center
ou même Surround.
</p>
<pre caption="Enlever la sourdine des canaux">
# <i>amixer set Master 100 unmute</i>
# <i>amixer set PCM 100 unmute</i>
<comment>Seulement si les commandes précédentes ne suffisent pas :</comment>
# <i>amixer set Center 100 unmute</i>
# <i>amixer set Surround 100 unmute</i>
<comment>Testez le son :</comment>
# <i>aplay $KDEDIR/share/sounds/pop.wav</i> <codenote>(pop.wav fait partie de KDE)</codenote>
</pre>
<p>
Nous vérifions si le son marche en utilisant la commande aplay (ALSA play). Si
vous entendez un pop, alors le son marche !
Puis, ajustez les réglages du volume à votre convenance ; le programme basé sur
ncurses <c>alsamixer</c> est un bon moyen de le faire.
</p>
<p>
Vous désirez peut-être emerger <c>alsa-xmms</c> qui fournit le support ALSA pour
XMMS.
</p>
<p>
Quand vous rebootez votre système, le script d'initialisation <e>alsasound</e>
va sauver et restaurer proprement vos réglages de volume.
</p>
</body>
</section>
</chapter>
<chapter>
<title>Notes finales</title>
<section><title>Après les mises à jour du noyau ...</title>
<body>
<p>
À chaque fois que vous recompilez votre noyau ou que vous passez à un autre
noyau, vous devez recompiler les modules ALSA.
</p>
<p>
Cependant, si vous avez installé <c>alsa-driver</c>, <c>alsa-lib</c> et
<c>alsa-utils</c>, seul le premier doit être ré-installé à nouveau, puisqu'il va
mettre les modules ALSA dans <path>/lib/modules/*/kernel/sound/pci/</path>.
</p>
<pre caption="Nécessaire après chaque compilation du noyau">
# <i>emerge alsa-driver</i>
</pre>
</body>
</section>
<section><title>/etc/modules.autoload</title>
<body>
<p>
Vous ne devez pas éditer ce fichier pour utiliser ALSA. Après notre <c>rc-update
add alsasound boot</c>, notre système va charger les bons modules au démarrage.
</p>
<p>
Il n'est pas nécessaire d'ajouter <c>snd-pcm-oss</c> ou <c>snd-mixer-oss</c>
dans ce fichier.
Allez voir <uri link="http://www.djcj.org/LAU/guide/alsbook/faq1.html">cette
FAQ</uri> pour plus d'informations.
</p>
</body>
</section>
<section><title>Bugs connus</title>
<body>
<note>
Ce guide est un peu en retard comparé au développement de ALSA. Peut-être que ces
bugs seront déjà résolus lorsque vous lirez ces lignes.
</note>
<ul>
<li>
Si vous avez <b>beaucoup de bruit</b> lorsque vous utilisez l'émulation <b>oss</b>,
ajoutez <e>options snd-pcm-oss dsp_map=1</e> au fichier
<path>/etc/modules.d/alsa</path>.
</li>
</ul>
</body>
</section>
<section>
<title>Connecter une manette de jeu</title>
<body>
<p>
Si votre carte son est équipée d'une connexion pour une manette de jeu,
vous voulez peut-être l'activer. Vérifiez d'abord si le pilote de votre carte
a un paramètre pour joystick. Vous pouvez utiliser <c>modinfo</c> avec votre
<path>snd-<puce son></path>. Par exemple, pour une puce de type
<c>snd-via82xx</c> :
</p>
<pre caption="Exécuter modinfo">
# <i>modinfo snd-via82xx</i>
filename: /lib/modules/2.4.22-ck2/snd-via82xx.o
description: "VIA VT82xx audio"
author: "Jaroslav Kysela <perex@suse.cz>"
license: "GPL"
parm: index int array (min = 1, max = 8), description "Index value for VIA 82xx bridge."
parm: id string array (min = 1, max = 8), description "ID string for VIA 82xx bridge."
parm: enable int array (min = 1, max = 8), description "Enable audio part of VIA 82xx bridge."
parm: mpu_port long array (min = 1, max = 8), description "MPU-401 port. (VT82C686x only)"
<i>parm: joystick int array (min = 1, max = 8), description "Enable joystick. (VT82C686x only)"</i>
parm: ac97_clock int array (min = 1, max = 8), description "AC'97 codec clock (default 48000Hz)."
parm: dxs_support int array (min = 1, max = 8), description "Support for DXS channels
(0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)"
</pre>
<p>
Si le pilote de votre carte a un paramètre pour <c>joystick</c>, vous devriez ajouter
<c>joystick=1</c> sur la ligne <c>options</c> du fichier <path>/etc/modules.d/alsa</path>.
Par exemple, pour une <c>snd-via82xx</c> :
</p>
<pre caption="Ajouter le paramètre pour joystick">
alias snd-card-0 snd-via82xx
options snd-via82xx joystick=1
</pre>
</body>
</section>
<section><title>Quelques liens supplémentaires</title>
<body>
<p>
Vous pouvez allez voir ici pour plus d'informations :
</p>
<p>
<ul>
<li><uri link="http://www.gentoo.org/doc/fr/desktop.xml">Le Guide Gentoo de
Configuration du Bureau</uri></li>
<li><uri link="http://www.alsa-project.org">Page du projet ALSA</uri></li>
<li><uri link="http://www.alsa-project.org/documentation.php3">Documentation
Utilisateur du projet ALSA</uri></li>
<li><uri link="http://www.djcj.org">FAQ et HOWTO ALSA</uri></li>
<li><uri link="http://tldp.org/HOWTO/Sound-HOWTO/index.html">Sound-HOWTO pour
Linux</uri></li>
<li><uri link="http://linux-sound.org/">Programmes Linux pour le son et le
MIDI</uri></li>
</ul>
</p>
</body>
</section>
</chapter>
</guide>
|