Page suivante Page précédente Table des matières

5. Tester et utiliser

Maintenant vous êtes prêt à tester si le gestionnaire sonore est réellement disponible, avant de l'utiliser.

5.1 Le système de fichiers /proc

Vous pouvez trouver beaucoup de renseignements sur votre système dans le répertoire /proc. /proc est un système de fichiers "virtuel", ce qui signifie qu'il n'existe pas réellement, mais fournit grosso modo une vue sur les processus de votre ordinateur. Pour que /proc soit accessible, votre noyau doit être compilé avec le support de /proc, ce qui est le cas dans la plupart des distributions, mais si vous avez compilé votre propre noyau sans /proc, vous n'aurez rien dans /proc.

/proc/modules recense les modules chargés. Une fois les gestionnaires Alsa chargés, en tapant cat /proc/modules vous devriez avoir quelque chose de ce genre :

snd-pcm1-oss      4            0
snd-sb16          1            1
snd-sb-dsp        4    [snd-sb16]      0
snd-pcm1          4    [snd-pcm1-oss snd-sb-dsp]      0
snd-pcm           3    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1]    0
snd-mixer         3    [snd-pcm1-oss snd-sb16 snd-sb-dsp]      1
snd-mpu401-uart   1    [snd-sb16]      0
snd-midi          4    [snd-sb16 snd-sb-dsp snd-mpu401-uart]   0
snd-opl3          1    [snd-sb16]      0
snd-synth         1    [snd-sb16 snd-opl3]     0
snd-timer         1    [snd-opl3]      0
snd               8    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1 snd-pcm snd-mixer snd-mpu401-uart snd-midi snd-opl3 snd-synth snd-timer]    0
Si quelque chose s'est mal passé pendant l'installation du gestionnaire, vous aurez quand même quelques gestionnaires "snd", mais pas de support audio.

Par exemple (note : ne vous amusez surtout pas à entrer les commandes suivantes, le gestionnaire cs4236 a besoin de paramètres) :

win3:~# modprobe snd-card-cs4236
/lib/modules/2.0.35/misc/snd-card-cs4236.o: init_module: Device or resource busy
snd-mixer: Device or resource busy
win3:~# cat /proc/modules
snd-cs4236        2           0
snd-cs4231        3    [snd-cs4236]    0
snd-timer         1    [snd-cs4231]    0
snd-pcm1          4    [snd-cs4236 snd-cs4231] 0
snd-mixer         3    [snd-cs4236 snd-cs4231] 0
snd-pcm           3    [snd-cs4236 snd-cs4231 snd-pcm1]       0
snd-mpu401-uart   1           0
snd-midi          4    [snd-mpu401-uart]       0
snd-opl3          1           0
snd-synth         1    [snd-opl3]      0
snd-timer         1    [snd-cs4231 snd-opl3]   0
snd               8    [snd-cs4231 snd-timer snd-pcm1 snd-mixer snd-pcm]     0
Vous pouvez vérifier l'existence d'une carte son en regardant /proc/asound/cards. Par exemple :
bash$ cat /proc/asound/cards
0 [card1          : SB16 - Sound Blaster 16
                    Sound Blaster 16 at 0x220, irq 5, dma 1&5
Dans l'exemple précédent (où j'ai oublié les options) l'affichage aurait été :
win3:~# cat /proc/asound/cards
--- no soundcards ---
Une carte CS4236 fonctionnelle donnerait
0 [card1         ]: CS4236 - CS4237B
                    CS4237B at 0x534, irq 7, dma 1&0
Si vous avez beau vérifier et revérifier vos réglages et que vous n'avez toujours rien, allez faire un tour dans la section dépannage.

Le répertoire virtuel /proc/asound fournit beaucoup d'autres renseignements sur le gestionnaire. Notez cependant que /proc/asound n'existera qu'une fois le premier module Alsa chargé. S'il n'y a pas de /proc/asound, cela signifie simplement que le module snd n'a pas été chargé convenablement. Vous pouvez trouver la liste des cartes installées dans /proc/asound/cards, puis des renseignements sur la première dans /proc/asound/0, sur la suivante dans /proc/asound/1, etc.

Il existe une troisième façon d'obtenir des renseignements sur les gestionnaires sonores, si vous avez chargé le module de compatibilité OSS, à savoir le périphérique /dev/sndstat. Le paquetage Alsa vous demande gentiment de ne pas vous fier à cette source d'informations, car elle n'est là que pour la compatibilité avec les gestionnaires OSS, et de meilleurs renseignements sont disponibles via /proc/asound.

5.2 Le mixer

Une fois les gestionnaires de votre carte son installés, comme vous l'indique /proc, vous pouvez essayer de faire du bruit. Tout d'abord, installez le paquetage d'utilitaires, ou, tout au moins, placez la commande "amixer" à un endroit raisonnable (comme /usr/local/bin). Commencez par examiner les réglages du mixer en lançant "amixer". Le résultat peut varier énormément d'une carte à l'autre. Ma Soundblaster 16 donne :

Master         0  % (-14.00dB) : 0  % (-14.00dB)
Bass           0  % (-14.00dB) : 0  % (-14.00dB)
Treble         0  % (-14.00dB) : 0  % (-14.00dB)
Synth          0  % (-62.00dB) : 0  % (-62.00dB)
PCM            0  % (-62.00dB) : 0  % (-62.00dB)
Line-In        0  % (-62.00dB) : 0  % (-62.00dB) Mute
MIC            0  % (-62.00dB) : 0  % (-62.00dB) Mute
CD             0  % (-62.00dB) : 0  % (-62.00dB) Mute
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Out-Gain       0  % (-18.00dB) : 0  % (-18.00dB)
PC Speaker     0  % (-18.00dB) : 0  % (-18.00dB)
Ma carte son à base de Crystal 4237B a beaucoup d'autres options :
Master D       0  % (-22.00dB) : 0  % (-22.00dB) Mute
3D Center      0  % (-22.50dB) : 0  % (-22.50dB)
3D Space       0  % (-22.50dB) : 0  % (-22.50dB) Mute
Synth          0  % (-94.50dB) : 0  % (-94.50dB) Mute
FM             0  % (-94.50dB) : 0  % (-94.50dB) Mute
DSP            0  % (-94.50dB) : 0  % (-94.50dB) Mute
PCM            0  % (-94.50dB) : 0  % (-94.50dB) Mute
Line-In        0  % (-34.50dB) : 0  % (-34.50dB) Mute
MIC            0  % (-22.50dB) : 0  % (-22.50dB) Mute
CD             0  % (-34.50dB) : 0  % (-34.50dB) Mute
Record-Gain    0  % (  0.00dB) : 0  % (  0.00dB)
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Loopback       0  % (-94.50dB) : 0  % (-94.50dB) Mute
Mono           0  % (-45.00dB) : 0  % (-45.00dB) Mute
Aux A          0  % (-34.50dB) : 0  % (-34.50dB) Mute
Vous aurez remarqué les indications Mute (Muet), y compris pour le canal principal du CS4237B ! Pour le CS4237B, il me faut lancer amixer "master d" unmute pour pouvoir entendre le moindre son. La soundblaster n'a pas de sortie en sourdine, mais amixer master 100 unmute réglerait le volume à 100% et réactiverait le canal principal. Vous pouvez utiliser un nombre, un des mots mute et unmute, ou les deux. Lancez amixer "master d" 100 ; amixer pcm 100 unmute pour régler le volume principal du CS4237B au maximum, activer le canal PCM et régler son volume au maximum.

Vous pouvez régler le canal CD en enregistrement en entrant amixer cd rectt puis le remettre en lecture avec amixer cd norec. Si vous préférez enregistrer depuis un micro, vous devrez probablement utiliser amixer record-gain 100 ; amixer mic 100 rec mute (ne pas mettre l'entrée micro en sourdine produit des parasites si le micro capte son propre signal par les haut-parleurs). Malheureusement, je n'ai pas pu modifier le réglage des canaux "3d center" et "3d space" avec amixer. Si quelqu'un y parvient, faites-le moi savoir. Vous pouvez cependant utiliser alsamixer pour cela.

La FAQ Alsa prétend qu'il est possible de restaurer les réglages du mixer avec cat <fichier> > /proc/asound/N/mixer0, où <ficher contient une précédente copie de /proc/asound/N/mixer0. Je n'ai pas pu le faire sur mon système, il se plaint de périphériques non existants.

5.3 Les périphériques /dev/snd/

Les gestionnaires Alsa ont des périphériques associés dans le répertoire /dev/snd. Si vous avez une carte, vous aurez les périphériques suivants :

/dev/snd/pcm00 - la sortie PCM de la carte0
/dev/snd/mixer0 - le mixer de la carte 0
/dev/snd/control0 - le contrôleur de la carte 0
Le premier chiffre est le numéro de la carte son, le deuxième (s'il y a lieu) étant le numéro du périphérique. Une carte son ayant deux sorties PCM aurait pcm00 et pcm01.

Maintenant, vous êtes prêt à envoyer un fichier son dans la sortie PCM de la première carte. Essayez de copier n'importe quel fichier texte dans /dev/snd/pcm00 ainsi : cat <fichier > /dev/snd/pcm00. Le fichier peut être quelconque, pourvu qu'il ne soit pas de longueur nulle. Si vous avez un fichier son qui traîne quelque part, vous pouvez l'essayer. Vous pouvez aussi récupérer le fichier en http://www.ldp.org/sounds/english.au, pour entendre Linus Torvalds expliquer comment prononcer Linux.

La configuration par défaut de votre périphérique sonore est 8000 Hz, 8 bits. Ce qui signifie que le fichier "english.au" mentionné plus haut générera de la voix, tandis que les autres fichier généreront probablement des parasites. Si vous n'entendez rien, vérifiez vos haut-parleurs, essayez de relancer amixer ou consultez un médecin. (Plus loin vous pourrez utiliser les fonctionnalités 48 kHz, 16 bit de votre carte son avec votre programme audio préféré, comme sox ou mpg123).

Si vous avez chargé le module "snd-pcm1-oss", vous pouvez également utiliser la compatibilité OSS pour accéder à votre carte son. Les correspondances suivantes sont alors effectuées :

/dev/snd/pcm00 -> /dev/audio0 (/dev/audio) -> numéro mineur 4
/dev/snd/pcm00 -> /dev/dsp0 (/dev/dsp) -> numéro mineur 3
/dev/snd/pcm01 -> /dev/adsp0 (/dev/adsp) -> numéro mineur 12
/dev/snd/pcm10 -> /dev/audio1 -> numéro mineur 4+16 = 20
/dev/snd/pcm10 -> /dev/dsp1 -> numéro mineur 3+16 = 19
/dev/snd/pcm11 -> /dev/adsp1 -> numéro mineur 12+16 = 28
/dev/snd/pcm20 -> /dev/audio2 -> numéro mineur 4+32 = 36
/dev/snd/pcm20 -> /dev/dsp2 -> numéro mineur 3+32 = 39
/dev/snd/pcm21 -> /dev/adsp2 -> numéro mineur 12+32 = 44

5.4 Informations complémentaires

Le fichier INSTALL des gestionnaires Alsa mentionne quelques trucs et astuces pour indiquer leurs réglages aux gestionnaires. Leur utilité dépend des applications sonores dont vous vous servez. Les applications classiques, comme mpg123, sox (généralement utilisé par la commande play), ou RealPlayer, fonctionneront probablement parfaitement sans avoir recours à ces astuces. Je n'en ai jamais eu besoin personnellement.

/proc/asound/N/pcmN0

"Playback erase" - efface toutes les informations sur les applications OSS
"Playback <application> <nombre de fragments> <taille des fragments> [<options>]"
"Record erase" - efface toutes les informations sur les applications OSS
"Record <application> <nombre de fragments> <taille des fragments> [<options>]"

application - nom de l'application (avec ou sans chemin complet).

nombre de fragments - nombre de fragments, ou zéro pour laisser le choix à Alsa.

taille des fragmentstt> - taille des fragments en octets, ou zéro pour laisser le choix à Alsa.

options - paramètres optionnels

WR_ONLY - si l'application tente d'ouvrir le périphérique PCM en mode O_RDWR, modifier en O_WRONLY (pas d'enregistrement) - pour Quake etc.

Exemples :

echo "Playback x11amp 128 16384" > /proc/asound/0/pcm00
echo "Playback squake 0 0 WR_ONLY" > /proc/asound/0/pcm00

/proc/asound/N/sb16

"Playback 8" -> n'utiliser que le canal DMA 8 bits pour la lecture.
"Playback 16" -> n'utiliser que le canal DMA 16 bits pour la lecture.
"Playback auto" (par défaut) -> choix automatique : la premièer ouverture utilisera le canal DMA 16 bits.
"Record 8" -> n'utiliser que le canal DMA 8 bits pour l'enregistrement.
"Record 16" -> n'utiliser que le canal DMA 16 bits pour l'enregistrement.
"Record auto" (par défaut) -> choix automatique : la première ouverture utilisera le canal DMA 16 bits.

Exemple : echo "Record 16" > /proc/asound/0/sb16

Pour plus d'informations, consultez le fichier INSTALL.


Page suivante Page précédente Table des matières