Alsa-sound-mini-HOWTO
v 1.7, 29 Juillet 1999
Ce document décrit l'installation des gestionnaires sonores ALSA pour Linux.
Ces gestionnaires peuvent être utilisés en remplacement des gestionnaires
habituels, et sont entièrement compatibles avec eux.
Ce document explique comment installer et utiliser les gestionnaires sonores
ALSA pour votre carte son. Les gestionnaires ALSA sont entièrement modularisés
et supportent kerneld et kmod. Ils sont compatibles avec l'API OSS, avec
des possibilités supérieures. En deux mots : compatibles, mais meilleurs.
Ce document contient des informations obtenues sur les pages des
gestionnaires ALSA. La structure est inspirée du SB-mini-HOWTO, principalement
parce qu'il avait la structure recherchée. Grâce aux
SGML Tools, ce HOWTO est disponible dans
plusieurs formats, générés à partir d'un seul fichier source. Merci à Erik
Warmelink pour sa relecture, ainsi qu'à Alfred Munnikes pour ses quelques
questions et précieuses suggestions.
Remerciements à Yamahata Isaku pour la traduction en japonais, et à
Miodrag Vallat,
[email protected], pour l'adaptation française.
De plus, merci à Steve Crowder qui a fait un excellent travail de relecture et
d'édition du texte, ainsi qu'à Marc-Aurèle Darche, Piotr Ingling, Juergen
Kahrs, Tim Pearce, Patrick Stoddard, Rutger de Graaf, Shuly Wintner, Jyrki
Saarela, Jonas Lofwander, Kumar Sankaran et bien d'autres personnes encore pour
leurs conseils utiles et leurs ajouts.
Version 1.7 - 29 juillet 1999. Quelques corrections.
Version 1.6 - 26 juillet 1999. Ajout d'une section sur les versions d'Alsa.
Version 1.5 - 21 mai 1999. Modifié la section sur le mixer, ajouté une section
installation rapide.
Version 1.4 - 18 mai 1999. Ajout de l'URL de la version française, changé
quelques URL.
Version 1.3 - 16 mai 1999. Grâce à Jaroslav le HOWTO dispose d'une place sur
le site du projet ALSA. Du coup, quelques changements d'URL et d'adresses
email.
Version 1.2 - 11 mai 1999. Diverses mises à jour.
Version 1.1 - 11 mars 1999. Ajouté deux cartes sons des nouveaux gestionnaires
0.3, et quelques notes à propos des noyaux 2.2.
Version 1.0 - 8 février 1999. Ajouté quelques notes à la section dépannage, qui
semble désormais complète.
Version 0.3 beta - 20 janvier 1999. Un lien sur la page web d'ALSA. Nous voici
officiels !
Version 0.2 alpha - mi janvier 1999, première version sgml.
Version 0.1 alpha - janvier 1999, première version, principalement HTML.
La dernière version peut être trouvée sur
http://www.alsa-project.org/~valentyn
Des versions en d'autres formats se trouvent dans le répertoire
other-formats. Malheureusement, je n'ai pas réussi à compiler une
version Postscript, car le script sgml2latex échoue avec un tas d'erreurs.
Yamahata Isaku a réalisé une version en japonais, qui sera disponible
sur le site Japonais d'ALSA,
http://plaza21.mbn.or.jp/~momokuri/alsa/index.html
Miodrag Vallat a réalisé une version en français, disponible en
http://www.freenix.fr/unix/linux/HOWTO/mini/Alsa.html.
Si vous réalisez une traduction de ce document dans une autre langue, faites-le
moi savoir et je rajouterai une référence ici.
Je compte sur vous, les lecteurs, pour rendre ce HOWTO utile. Si vous avez des
suggestions, des corrections, ou des commentaires, n'hésitez pas à me les
envoyer (à
[email protected]), et je tâcherai de les inclure dans la
prochaine version.
Remarque : Je ne reçois pas beaucoup de courrier à propos des gestionnaires
ALSA, mais toute addition sera la bienvenue. Même un «merci» sera apprécié -
peut-être qu'il ne sera pas une mauvaise idée d'ajouter une section «J'ai bien
apprécié» ou «Ceci-ou-cela n'était pas très clair».
Si vous publiez ce document sur CD-ROM ou sous forme imprimée, un exemplaire
serait apprécié. Écrivez-moi pour avoir mon adresse postale. Pensez également à
faire un don au Linux Documentation Project pour aider la documentation libre
pour Linux. Contactez le coordinateur des HOWTO Linux, Guylhem Aznar, à
[email protected], pour plus d'informations.
Copyright 1998/1999 Valentijn Sessink
Ce HOWTO est une documentation libre ; vous pouvez la redistribuer et/ou la
modifier selon les termes de la Licence Publique Générale GNU publiée par
la Free Software Foundation (version 2 ou bien toute autre version ultérieure
choisie par vous.
Ce document est distribué car potentiellement utile, mais sans aucune
garantie, ni explicite, ni implicite, y compris les garanties de
commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la
Licence Publique Générale GNU pour plus de détails.
Vous pouvez obtenir une copie de la GNU General Public License en écrivant
à la
Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
Si vous voulez du son, immédiatement, sans attendre d'avoir lu ce HOWTO, ce
bref aperçu de l'installation des gestionnaires ALSA peut être utile.
Les gestionnaires ALSA versions 0.3.0, 0.3.1 et 0.3.2 ont divers problèmes dûs
à la restructuration de l'interface mixer. Veuillez utiliser une version
adaptée (cf. la section sur les versions). Vous devriez sans aucun doute
utiliser la version 0.3.0-pre4.
Puis la routine : «./configure ; make ; make install» pour les
gestionnaires, la bibliothèque et les utilitaires.
Il vous faut les trois car vous avez besoin des utilitaires pour désactiver la
sourdine. Les noyaux 2.2.x doivent être configurés avec
le support son générique («Sound card support»), mais sans choisir de carte
son, tandis que les noyaux 2.0.x doivent avoir le support son
désactivé.
Les gestionnaires ALSA utilisent leur propres fichiers de périphériques, que
vous pouvez créer à l'aide du script ./snddevices.
Vous devez charger le module pour votre carte (ou utiliser kmod) et si vous
souhaitez avoir la compatibilité avec les gestionnaires sonores standard du
noyau Linux (qui n'en voudrait pas ?) vous devez charger un autre module nommé
snd-pcm1-oss. Consultez la section
Quel module pour quelle carte~? pour déterminer quel module charger. Une fois les
modules chargés, vous pouvez regarder dans /proc/asound pour plus
d'informations sur les gestionnaires ALSA.
Quelques remarques. ALSA a ses propres fichiers de périphériques dans /dev/snd,
par exemple /dev/snd/pcmC0D1 pour la carte 0, périphérique (device) 1.
Vous pouvez utiliser les anciens fichiers /dev/pcmXY si vous avez chargé le
module snd-pcm1-oss de compatibilité. Avant de pouvoir jouer du son, il vous
faut désactiver la sourdine avec amixer. Lancez «amixer», puis essayez quelque
chose du genre
amixer pcm 100 unmute
En règle générale, vous pouvez utiliser les options «mute» ou «unmute», «rec»
ou «norec», une valeur numérique ou une combinaison gauche:droite.
Voilà ! Maintenant si tout fonctionne, vous avez gagné. S'il y a des problèmes,
vous allez devoir lire quand même ce HOWTO...
Ce document tente de vous aider à installer et à utiliser les gestionnaires
sonores ALSA pour votre système Linux. Le système de référence est une
distribution Slackware 4.0 tournant sur un ordinateur AMD/K6 (compatible x86),
mais cela devrait fonctionner avec toute autre distribution Linux. Je ne sais
pas si les pilotes ALSA fonctionnent sur d'autres plates-formes ; d'après la
documentation, ALSA fonctionne également sur les plates-formes Alpha. Je n'ai que
des ordinateurs x86 ici, et toute information supplémentaire que vous pourriez
avoir sera la bienvenue.
Il peut s'avérer utile de lire le Linux Sound HOWTO (cf. section Autres HOWTO),
mais ce HOWTO ne traite que des gestionnaires du noyau.
ALSA a été initialement écrit comme remplacement du gestionnaire sonore pour
les cartes Gravis UltraSound (GUS). Devant le succès de ces gestionnaires GUS,
l'auteur a lancé le projet ALSA afin d'aboutir à un gestionnaire générique
pour plusieurs cartes sonores, avec une conception entièrement modulaire.
ALSA est compatible avec les gestionnaires sonores OSS/Free et OSS/Linux (les
gestionnaires du noyau), mais dispose de sa propre interface qui est encore
meilleure que celle d'OSS. Une liste des fonctionnalités se trouve en
http://www.alsa-project.org/intro.html
Veuillez noter que les gestionnaires ALSA sont toujours en développement. Ils
évoluent au cours du temps, et certains programmes utilisant ALSA ne
fonctionnent qu'avec certaines versions particulières. A part ça : je les
trouve super. J'utilise ALSA depuis déjà 10 mois et je ne retournerai jamais
aux temps anciens des gestionnaires sonores non libres ;)
La page Web du projet ALSA se trouve en
http://www.alsa-project.org/
Les gestionnaires ALSA ne supportent qu'un sous-ensemble des cartes sonores
existantes. Au moment de la rédaction de ce document, les cartes suivantes sont
supportées (cependant, certaines ne le sont pas par ALSA 0.3.0-pre4, ce qui
vous obligera à utiliser ALSA 0.3.2 ou une version plus récente) :
- cartes à base de chipset Trident 4D Wave DX/NX, grâce à Trident
Microsystems qui a fourni au projet ALSA des gestionnaires de base sous GPL
(pour les périphériques mixer et PCM seulement) ainsi qu'une documentation sur
leurs chipsets audio 4D Wave PCI. Reportez-vous à
http://www.tridentmicro.com/HTML/products%20folder/audio.htm
pour plus de détails. Ces gestionnaires sont fournis dans la version ALSA
0.3.2.
Parmi les cartes utilisant ce composant, on trouve : Best Union Miss Melody
4DWave PCI, HIS 4DWave PCI, Warpspeed ONSpeed 4DWave PCI, AzTech PCI 64-Q3D,
Addonics SV 750, CHIC True Sound 4DWave, Shark Predator4D-PCI et Jaton
SonicWave 4D ;
- Gravis Ultrasound (GUS) : «PnP», Extreme, Classic/ACE, MAX ;
- cartes à base de chipset GUS : Dynasonic 3-D, STB Sound Rage 32,
UltraSound 32-Pro (STB), ExpertColor MED3201 et d'autres utilisant le chipset
AMD InterWave™ ;
- Soundblaster : 1.0, 2.0, Pro, 16, AWE32/64, PCI64 ;
- ESS AudioDrive ESx688 ;
- chipsets ESS ES18xx. Notez que j'ai eu personnellement des problèmes
insolubles avec un modèle ES1888, malgré tous les efforts du développeur du
gestionnaire ;
- ESS Solo-1 ES1938. Un seul des deux canaux fonctionne, ce qui empêche
l'energistrement. L'auteur du gestionnaire est «au courant du problème et en
train d'en chercher les causes» ;
- Yamaha : chipsets OPL3-SA2, OPL3-SA3 ;
- OAK Mozart ;
- Schubert 32 PCI (PINE, chipset S3 SonicVibes PCI) ;
- Ensoniq AudioPCI ES1370/1371 PCI (Soundblaster PCI64) ;
- SonicVibes PCI (PINE Schubert 32 PCI) ;
- cartes à base de chipset ForteMedia FM801 (dans ALSA 0.3.2) ;
- cartes à base de chipset OPTI 82C9xx ;
- cartes à base de chipset AD1847, AD1848 et CS4248.
Un grand nombre de cartes à base de Crystal Semiconductors sont également
supportées. Ces puces se trouvent dans bon nombre de matériels, sous forme de
carte séparée (certaines cartes Philips PCA) ou sur les cartes mères (par
exemple IBM Aptiva, ordinateurs Dell). Les cartes utilisant les chipsets
suivants sont supportées :
- 4231
- 4232
- 4232A
- 4235
- 4236B
- 4237B
- 4238B
- 4239
- 4610 (dans ALSA 0.3.2)
- 4612 (dans ALSA 0.3.2)
- 4615 (dans ALSA 0.3.2)
- 4680 (dans ALSA 0.3.2)
Une liste plus récente se trouve dans les sources du gestionnaire lui-même,
à savoir dans doc/SOUNDCARDS
Cet ALSA-sound-mini-HOWTO n'est qu'un mini-HOWTO. D'autres HOWTO peuvent vous
aider si celui-ci est trop concis. J'en indiquerai quelques-uns en essayant
d'installer les gestionnaires ALSA. Les HOWTO se trouvent en général sur les
miroirs de Metalab (ex Sunsite). Allez donc voir sur
http://metalab.unc.edu/LDP/mirrors.html quel est votre miroir le plus
proche. Vous trouverez les HOWTO dans le répertoire LDP/HOWTO/.
Notez que les liens dans ce document sont tous relatifs à /LDP/HOWTO/mini.
Si vous consultez ce document depuis un miroir suffisamment convenable, vous
trouverez les HOWTO indiqués.
Une note à propos des noyaux 2.2.x : avec cette série, le support son est comme
toute autre support : il fonctionne, mais différemment de ce à quoi vous étiez
habitué. Ce HOWTO (comme tous les autres) se destine principalement aux noyaux
2.0, bien que j'essaierai d'indiquer les différences.
Je serai heureux d'ajouter tout ce qui sera nécessaire pour maintenir ce HOWTO
à jour vis-à-vis des noyaux 2.2.
Cartes son
Vous venez d'acheter une carte son, ou elle se trouve déjà enfermée dans votre
ordinateur depuis des lustres. Et maintenant vous allez vous en servir ! Allez
voir le
Sound-HOWTO pour voir si
cela en vaut la peine (Vous préférerez peut-être acheter d'abord cette
nouvelle Mega-Rumble-Blaster, puis essayer les gestionnaires ALSA).
Cartes Plug and Play
La plupart des cartes son modernes pour la plateforme Intel sont des cartes
ISA PnP, une abréviation de «Plug and Play», ce qui signifie que la carte doit
être configurée par le système d'exploitation. Ceci a lieu via une routine
d'initialisation au démarrage. Vous allez sans doute devoir configurer votre
carte avec le paquetage PnP-utils. Toutes les distributions Linux suffisamment
récentes l'incluent. Pour vous en servir, jetez donc un oeil au
Plug-and-Play-HOWTO.
Les gestionnaires ALSA semblent disposer de leur propre support ISA-PnP pour
quelques cartes son. Malheureusement, tant que je ne trouve pas de documentation
à ce sujet, je ne peux pas vous expliquer comment il fonctionne. Si quelqu'un
souhaite essayer ALSA en évitant sciemment les ISA-PnP-tools, qu'il m'envoie
un message.
Modules
Les gestionnaires ALSA sont construits en tant que modules. Vous pouvez trouver
plus d'informations sur les modules dans le
Kernel-HOWTO. Il existe aussi un module-HOWTO, mais il n'est plus
maintenu à l'heure actuelle ; consultez la section «unmaintained» du
Howto-HOWTO. Il existe aussi un
Modules-mini-HOWTO qui peut être utile.
Kerneld
Un autre HOWTO qui peut être utile à certains est le
Kerneld-mini-HOWTO. Kerneld est un daemon qui
installe et retire les modules du noyau quand c'est nécessaire (je n'en ai
aucune expérience, donc toute information à ce sujet est la bienvenue. La
documentation des gestionnaires ALSA contient quelques informations sur la
configuration de kerneld, qui ont été ajoutées à ce mini-HOWTO).
- un système Linux en état de fonctionnement (par exemple une distribution
Slackware), avec les paquetages de développement installés (i.e. gcc, make,
etc.) ;
- une carte son supportée ;
- un minimum de connaissance de Linux (savoir utiliser "ls", "cd", "tar",
etc.) ;
- l'accès au compte administrateur (root).
Si vous avez une carte PnP, vous aurez également besoin :
- du paquetage isapnptools.
Le texte INSTALL dans le répertoire des gestionnaires laisse supposer que
pour certaines cartes, le support PnP est intégré. J'ai aussi reçu une note
de Jaroslav à ce sujet. Lorsque j'aurai plus d'informations à ce sujet
je les ajouterai à ce mini-HOWTO.
Notez que vous ne devez pas avoir le moindre gestionnaire sonore actif quand
vous voulez utiliser les gestionnaires ALSA. Si votre noyau est compilé avec
les gestionnaires sonores "en dur", vous devrez le recompiler. Si vous avez le
vieux module "sound.o" actif, vous devez le désactiver. Si vous utilisez
kerneld, cela revient à effacer sound.o du répertoire
/lib/modules/<version_du_noyau>/misc. Les systèmes RedHat récents ont une
configuration du son différente, avec plusieurs modules actifs. Vous devrez
tous les désactiver.
Les noyaux 2.2 ont une autre approche du son. Vous devrez inclure le support
sonore ! Hé oui, c'est vrai : vous ajoutez le support sonore au noyau, mais
sans la moindre carte son. Ensuite, compilez et installez le noyau et ensuite,
compilez les gestionnaires ALSA.
Les gestionnaires ALSA sont disponibles en
ftp://ftp.alsa-project.org/pub/,
et il en existe un miroir en
ftp://linux.a2000.nl/alsa. Pour une installation ALSA totalement
fonctionnelle, il vous faut les gestionnaires, la bibliothèque et les
utilitaires ; par exemple, si vous avez choisi le miroir, vous allez récupérer
ftp://linux.a2000.nl/alsa/driver/alsa-driver-0.3.0-pre4.tar.gz,
ftp://linux.a2000.nl/alsa/lib/alsa-lib-0.3.0pre4.tar.gz et
ftp://linux.a2000.nl/alsa/utils/
alsa-utils-0.3.0-pre3.tar.gz (et NON il ne s'agit pas de liens complets, vous
feriez mieux d'aller voir sur place quelles versions sont disponibles, cf. la
section suivante).
Les gestionnaires ALSA ont parcouru une longue route. Leur développement à
commencé au temps des noyaux 2.0, puis les noyaux 2.2 sont apparus (avec leur
propre noyau sonore).
La version actuelle d'ALSA va subir une réécriture de l'interface mixer.
L'ancienne interface était un classique volume, graves/aigus, tandis que la
nouvelle interface fournit des informations sur les entrées et les sorties de
chaque élément. En d'autres mots, un programme peut désormais demander à la
carte son si, par exemple, la sortie cd audio est connectée à l'entrée
enregistrement. Le mixer est prêt, mais les utilitaires associés sont encore en
développement.
Si vous souhaitez utiliser ALSA sans peine, vous devriez probablement choisir
alsa-driver-0.3.0-pre4, alsa-lib-0.3.0-pre4 et alsa-utils-0.3.0-pre3.
Les versions plus anciennes, 0.2.0-pre10p3 et plus anciennes fonctionnent sous
un noyau 2.0.x, mais je n'arrive pas à les faire fonctionner sous 2.2.x
(probablement parce qu'elles ne savent pas s'interfacer avec le module
soundcore du noyau).
La dernière version (0.3.2) fonctionne tout aussi bien sous 2.0.x que sous
2.2.x. Veuillez noter que cette version sera la dernière à supporter les noyaux
2.0.x, donc si une nouvelle version arrive, vous devrez migrer vers
le noyau 2.2.
Vous pouvez utiliser la version 0.3.2 s'il vous faut la toute dernière version,
mais ce n'est pas recommandé à cause de la réécriture de l'interface mixer.
J'ai rencontré des problèmes avec le mixer OSS et l'utilitaire amixer a une
toute nouvelle interface difficile d'emploi.
Vous devez extraire les sources des gestionnaires par toute commande
raisonnable, comme le bon vieux tar -zxf «fichier». Pour les débutants et les
amnésiques :
cd /usr/src
tar -zxf ~/alsa-driver-0.3.0-pre4.tar.gz
(Si cela a fonctionné, soit vous êtes toujours logué en root, ce qui est une
mauvaise idée -- arrêtez votre lecture et allez consulter le
DOS/Win95-to-Linux-HOWTO --, soit vous avez déjà pensé qu'il s'agissait du genre
de tâche nécessitant les privilèges administrateur. Donc : il vous faut les
privilèges root, tapez "su" puis le mot de passe).
tar -zxf ~/alsa-lib-0.3.0pre4.tar.gz
tar -zxf ~/alsa-utils-0.3.0pre3.tar.gz
Également utilisable et plus amusant : find ~ -name alsa* -exec tar -zxf
{} \; (pas la peine d'essayer ça, c'est juste un exemple). Notez que si
vous téléchargez les gestionnaires avec Netscape, vous risquez de récupérer
les gestionnaires décompactés avec l'extension «.tar.gz». Si tar se plaint du
format de fichier, vous obtiendrez peut-être de meilleurs résultats en retirant
la lettre "z" des options de tar.
Vous devez compiler les gestionnaires avant de pouvoir compiler et utiliser la
bibliothèque. Vous avez besoin de compiler la bibliothèque avant de pouvoir
compiler et utiliser les utilitaires. Commençons :
cd alsa-driver-0.3.0-pre4
./configure
Si vous souhaitez utiliser le support PnP intégré, vous devriez utiliser
./configure --with-isapnp=yes
make
Maintenant vous avez besoin d'être «root» pour installer tout ça (mais vous
l'étiez peut-être déjà)
make install
Si vous obtenez un message vous indiquant que «version.h» n'a pas pu être
trouvé, cela vient probablement du fait que votre arborescence des sources du
noyau n'est pas correcte. Il vous faut quelques fichiers des sources du noyau
afin de compiler les gestionnaires ALSA. Décompactez votre linux-2.x.y
préféré dans /usr/src, et lancez un make menuconfig . (En fait,
make symlinks devrait suffire).
Au tour de la bibliothèque :
cd ../alsa-lib-0.3.0-pre4
./configure
make
make install
Vous avez compris le truc ? Alors pour les utilitaires :
cd ../alsa-utils-0.3.0-pre3
./configure
make
make install
Note : vous pouvez laisser de côté le «make install» des utilitaires pour
l'instant. Vous pouvez même laisser tomber la compilation de la bibliothèque
et des utilitaires, pour voir tout de suite si les gestionnaires fonctionnent.
Il y a un script dans le répertoire des gestionnaires qui va installer les
fichiers de périphériques ALSA dans votre répertoire /dev. Lancez
./snddevices
dans le répertoire alsa-driver. Il devrait maintenant y avoir un répertoire
/dev/snd (Vérifiez sa présence. Si vous n'êtes pas assez familier
avec la commande «ls», allez plutôt consulter d'autres HOWTO avant. Vous devez
avoir un minimum de connaissances de Linux pour installer ces pilotes).
Maintenant vous êtes prêt à insérer les gestionnaires, alors jetez-vous
donc sur le paragraphe qui suit.
Il existe deux façons d'utiliser les modules ALSA. Je préfère personnellement
utiliser la méthode manuelle, à savoir insérer le gestionnaire au démarrage.
Les gestionnaires ALSA sont conçus pour être chargeables et déchargeables à
volonté -- par exemple ils ne réinitialisent pas le mixer au chargement -- donc
vous pouvez facilement utiliser l'approche kerneld.
Veuillez lire la section
compatibilité OSS.
Vous en aurez besoin pour avoir un support sonore «à l'ancienne».
Note : si vous avez une carte son PnP, vous devez tout d'abord la configurer
aux bons paramètres IO/IRQ/DMA (ou au moins à des valeurs connues). Consultez le
Plug-and-Play-HOWTO. Avez-vous configuré votre carte PnP ? Bien, alors
poursuivons. Le plus dur est de faire «modprobe snd-«carte son»». Cela devrait
faire l'affaire. Notez que toutes les distributions ne mettent pas /sbin dans
le PATH. Si vous obtenez «bash: modprobe: command not found», cela signifie
probablement que modprobe n'est pas dans votre path. Essayez «/sbin/modprobe
snd-sb16», ou tâchez de trouver l'utilitaire modprobe quelque part.
La plus grosse difficulté vient des chipsets Crystal, que les gestionnaires ALSA
ne détectent pas automatiquement. Des informations plus récentes peuvent être
trouvées dans le fichier INSTALL du répertoire alsa-driver. Deux exemples, puis
une liste :
Gravis UltraSound (GUS) et compatibles :
/sbin/modprobe snd-gusclassic
Pour toutes les cartes 16 bit compatibles Soundblaster (SoundBlaster 16 (PnP),
SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP) :
/sbin/modprobe snd-sb16
Gravis UltraSound Extreme
modprobe snd-gusextreme
Gravis UltraSound MAX
modprobe snd-gusmax
ESS AudioDrive ES-1688 et ES-688
modprobe snd-audiodrive1688
ESS AudioDrive ES-18xx
Pour les cartes à base d'ESS AudioDrive 18xx
modprobe snd-audiodrive18xx
Gravis UltraSound PnP
Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32, ExpertColor
MED3201 et toute autre carte son basée sur un chipset AMD InterWave™.
modprobe snd-interwave
UltraSound 32-Pro
UltraSound 32-Pro (carte produite par STB, utilisée par Compaq) et toute autre
carte son basée sur un chipset AMD InterWave™ avec un circuit TEA6330T pour
un contrôle étendu des volumes grave, aigu et principal.
modprobe snd-interwave-stb
Soundblaster
Cartes Soundblaster 8 bits (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster
Pro)
modprobe snd-sb8
Soundblaster 16
Cartes SoundBlaster 16 bits (SoundBlaster 16 (PnP), SoundBlaster AWE
32 (PnP), SoundBlaster AWE 64 (PnP). Attention, ce module ne supporte pas la
carte SoundBlaster VibraX16.
modprobe snd-sb16
OAK Mozart
modprobe snd-mozart
OPTi 82C9xx
Cartes à base de chipset OPTi 82C9xx.
modprobe snd-opti9xx
AD1847/48 et CS4248
modprobe snd-card-ad1848
Yamaha OPL3-SA2/SA3
Un "modprobe snd-opl3sa" ne fonctionnera pas, ce gestionnaire ne faisant pas de
détection automatique. Voyez plus loin.
S3 SonicVibes
Cartes S3 SonicVibes PCI (PINE Schubert 32 PCI).
modprobe snd-sonicvibes
Ensoniq/Soundblaster PCI64
Cartes Ensoniq AudioPCI ES1370/1371 PCI (SoundBlaster PCI 64)
modprobe snd-audiopci
CS4231
Un «modprobe snd-card-cs4231» ne fonctionnera pas, ce gestionnaire ne faisant
pas de détection automatique. Voyez plus loin.
CS4232/4232A
Toutes les cartes à base de chipset CS4232/CS4232A.
Un «modprobe snd-card-cs4232» ne fonctionnera pas, ce gestionnaire ne faisant
pas de détection automatique. Voyez plus loin.
CS4235 et supérieur
Toutes les cartes à base de chipset
CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239. Un «modprobe snd-card-cs4236» ne
fonctionnera pas, ce gestionnaire ne faisant pas de détection automatique.
Voyez plus loin.
CS 4610/4612/4615 et 4680
modprobe snd-card-cs461x
ESS Solo 1
Cartes ESS Solo-1, 128iPCI (es1938, ESS-SOLO-1). Ces cartes ne figurent pas
dans le fichier INSTALL des gestionnaires. Jonas Lofwander m'a communiqué un
lien vers un document expliquant comment configurer ces cartes -- en gros, rien
de plus qu'un modprobe snd-esssolo1 mais...
http://195.163.39.4/~dice/alsa-solo1.txt peut vous être utile si vous
utilisez ALSA 0.3.2. Si vous avez un IBM Thinkpad 1412 vous pouvez aussi
consulter
http://www.geocities.com/SiliconValley/Peaks/3649/1412.html, merci à
Kumar Sankaran.
Trident 4DWave DX/NX
Cartes Best Union Miss Melody 4DWave PCI, HIS 4DWave PCI, Warpspeed ONSpeed
4DWave PCI, AzTech PCI 64-Q3D, Addonics SV 750, CHIC True Sound 4Dwave, Shark
Predator 4D-PCI, Jaton SonicWave 4D. Ces cartes sont supportées par ALSA 0.3.2.
modprobe snd-trid4dwave
ForteMedia FM801
Cartes PCI à base de FM801.
modprobe snd-card-fm801
Si vous avez un gestionnaire n'effectuant pas de détection automatique, vous
devez fournir des informations supplémentaires pour que le gestionnaire
fonctionne. Vous pourrez trouver plus d'informations dans le fichier INSTALL
du répertoire alsa-driver.
OPL3-SA2 et OPL3-SA3
D'après le fichier INSTALL, vous devez fournir toutes les informations
suivantes pour ce gestionnaire. Si vous avez initialisé la carte avec les
isapnptools, vous pouvez probablement trouver ces informations dans le fichier
/etc/isapnp.conf :
snd_port - port de contrôle de l'OPL3-SA
snd_wss_port - port WSS de l'OPL3-SA (0x530,0xe80,0xf40,0x604)
snd_midi_port - port de l'UART MPU-401 (0x300,0x330), -1 pour désactiver
snd_fm_port - port FM de l'OPL3-SA (0x388), -1 pour désactiver
snd_irq - IRQ de l'OPL3-SA (5,7,9,10)
snd_dma1 - canal DMA 1 de l'OPL3-SA (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 de l'OPL3-SA (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-opl3sa snd_port=0xNNN snd_wss_port=0x530 snd_midi_port=-1
snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire (sans support midi). Je reste convaincu que le
support midi n'est nécessaire que pour connecter des synthétiseurs etc. à une
machine Linux. Je n'ai jamais eu besoin du support midi, même pour jouer des
fichiers midi).
Notez que les valeurs "NN" doivent être précisées, mais je ne sais pas quelles
valeurs sont les plus raisonnables. Je ne sais d'ailleurs pas si la
spécification d'une taille DMA est réellement nécessaire.
Si vous avez un IBM Thinkpad avec ce composant, la lecture de
http://www.cirs.org/patrick/index.html peut vous être utile.
CS4231
D'après le fichier INSTALL, vous devez fournir le port de la carte. Cependant,
pour le gestionnaire CS 4235/6/7/8/9 qui suit, il m'a fallu fournir toutes les
informations (à l'exception des tailles DMA) pour que le gestionnaire
fonctionne.
Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement
trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port du CS4231 (PnP, par défaut 0x534)
snd_mpu_port - port de l'UART MPU-401 (PnP, par défaut 0x300), -1 pour désactiver
snd_irq - IRQ du CS4231 (5,7,9,11,12,15)
snd_mpu_irq - IRQ de l'UART MPU-401 (9,11,12,15)
snd_dma1 - canal DMA 1 du CS4231 (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 du CS4231 (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-card-cs4231 snd_port=0x534
snd_mpu_port=-1 snd_irq=5 snd_dma1=0
snd_dma1_size=NN snd_dma2=1
snd_dma2_size=NN"
pour charger ce gestionnaire pour une carte configurée avec ses valeurs par
défaut (sans le support midi, cf la note pour l'OPL-3, ni le support manette
de jeu). Si vous utilisez d'autres valeurs dans /etc/isapnp.conf, reportez-les
ici aussi.
Notez que les valeurs "NN" doivent être précisées, mais je ne sais pas quelles
valeurs sont les plus raisonnables. Je ne sais d'ailleurs pas si la
spécification d'une taille DMA est réellement nécessaire.
CS4232 et CS4232A
D'après le fichier INSTALL, vous devez fournir le port de la carte. Cependant,
pour ce gestionnaire et le suivant, il m'a fallu fournir toutes les informations
(à l'exception des tailles DMA) pour que le gestionnaire fonctionne.
Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement
trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port du CS4232 (PnP, par défaut 0x534)
snd_cport - port de contrôle du CS4232 (PnP, par défaut 0x120)
snd_mpu_port - port de l'UART MPU-401 (PnP, par défaut 0x300), -1 pour désactiver
snd_fm_port - port FM du CS4232 (PnP, par défaut 0x388), -1 pour désactiver
snd_jport - port manette de jeu du CS4232 (PnP, par défaut 0x200), -1 pour désactiver
snd_irq - IRQ du CS4232 (5,7,9,11,12,15)
snd_mpu_irq - IRQ de l'UART MPU-401 (9,11,12,15)
snd_dma1 - canal DMA 1 du CS4232 (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 du CS4232 (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120
snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN
snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire pour une carte configurée avec ses valeurs par
défaut (sans le support midi, cf la note pour l'OPL-3, ni le support manette
de jeu). Si vous utilisez d'autres valeurs dans /etc/isapnp.conf, reportez-les
ici aussi.
Notez que les valeurs "NN" doivent être précisées, mais je ne sais pas quelles
valeurs sont les plus raisonnables. Je ne sais d'ailleurs pas si la
spécification d'une taille DMA est réellement nécessaire.
CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239
D'après le fichier INSTALL, vous devez fournir le port de la carte. Cependant,
pour une carte à base de CS4237B, il m'a fallu fournir toutes les informations
(à l'exception des tailles DMA) pour que le gestionnaire fonctionne.
Si vous avez initialisé la carte avec les isapnptools, vous pouvez probablement
trouver ces informations dans le fichier /etc/isapnp.conf :
snd_port - port du CS423x (PnP, par défaut 0x534)
snd_cport - port de contrôle du CS423x (PnP, par défaut 0x120)
snd_mpu_port - port de l'UART MPU-401 (PnP, par défaut 0x300), -1 pour désactiver
snd_fm_port - port FM du CS423x (PnP, par défaut 0x388), -1 pour désactiver
snd_jport - port manette de jeu du CS423x (PnP, par défaut 0x200), -1 pour désactiver
snd_irq - IRQ du CS423x (5,7,9,11,12,15)
snd_mpu_irq - IRQ de l'UART MPU-401 (9,11,12,15)
snd_dma1 - canal DMA 1 du CS423x (0,1,3)
snd_dma1_size - taille de la mémoire tampon du DMA 1 en Ko (4-64Ko)
snd_dma2 - canal DMA 2 du CS423x (0,1,3), -1 si aucun
snd_dma2_size - taille de la mémoire tampon du DMA 2 en Ko (4-64Ko)
Lancez un "modprobe snd-card-cs4236 snd_port=0x534 snd_cport=0x120
snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN
snd_dma2=1 snd_dma2_size=NN"
pour charger ce gestionnaire pour une carte configurée avec ses valeurs par
défaut (sans le support midi, cf la note pour l'OPL-3, ni le support manette
de jeu).
Notes :
- les valeurs "NN" doivent être précisées, mais je ne sais pas quelles
valeurs sont les plus raisonnables ;
- mon CS4237B fonctionne parfaitement sans utiliser les options de taille DMA.
kerneld est un daemon qui charge les modules chaque fois que
nécessaire, et les décharge quand ils ne sont plus utilisés. N'ayant aucune
expérience de kerneld, je ne sais pas si les renseignements que je donne ici
sont fiables. Ils proviennent du fichier INSTALL des gestionnaires ALSA. Une
excellente source d'informations sur kerneld est le Kerneld-mini-HOWTO.
Procédez ainsi :
- Modifiez votre /etc/conf.modules (des exemples sont donnés plus loin) ;
- Lancez 'modprobe snd-
carte ' où carte est le nom de votre carte.
[Ce que je trouve étonnant, vu que kerneld est censé le charger lui-même ?
VS]
Exemple de /etc/conf.modules pour une carte Gravis UltraSound PnP :
alias char-major-14 snd
alias snd-minor-oss-0 snd-interwave
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-interwave
options snd snd_major=14 snd_cards_limit=1
options snd-interwave snd_index=1 snd_id="guspnp" snd_port=0x220 snd_irq=5
snd_dma1=5 snd_dma2=6
Exemple pour utiliser plus d'une carte son sur votre machine (ici pour une
Sound Blaster 16 et une Gravis UltraSound Classic) :
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-sb16
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma16=5
options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 snd_dma2=7
Exemple si deux cartes Gravis UltraSound Classic sont installées :
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-gusclassic
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 snd_irq=5,11
snd_dma1=5,6 snd_dma2=7,3
Si vous souhaitez avoir une compatibilité avec OSS/Free ou OSS/Linux, il vous
faut charger un gestionnaire de plus : le gestionnaire de compatibilité
snd-pcm1-oss. Lancez
modprobe snd-pcm1-oss
Cela vous donnera le support de /dev/audio et /dev/dsp, comme le font les
gestionnaires OSS/Free (ceux du noyau) et OSS/Linux (ceux vendus séparément).
Notez qu'il ne s'agit que d'une émulation.
Maintenant vous êtes prêt à tester si le gestionnaire sonore est réellement
disponible, avant de l'utiliser.
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 d'ensemble 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 bien évidemment 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.
Si cat /proc/asound/card1/pcm0 donne quelque chose du genre :
ES1370 DAC2/ADC
Playback isn't active.
Record isn't active.
cela signifie que votre gestionnaire est prêt à l'emploi, mais ne fait
rien pour l'instant (donc tout s'est bien passé).
Pour les utilisateurs de noyau 2.0.x, 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. Les gestionnaires
ALSA vous demandent poliment 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 facilement disponibles via /proc/asound. Sous
les noyaux 2.2.x, ALSA utilise le module soundcore du noyau et ne peut pas
émuler /dev/sndstat, car cela interférerait avec les gestionnaires OSS.
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». Cette
commande affiche les réglages du mixer, à savoir les réglages
de volume des différentes parties de la carte son. 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
Si vous ne recevez qu'un laconique «amixer: Specify command...», vous utilisez
les utilitaires d'ALSA 0.3.2. Vous en avez besoin pour utiliser les
gestionnaires 0.3.0+, mais il n'y a pas encore de documentation et comme la
nouvelle interface du mixer est encore en beta test, je vous recommande de vous
en tenir à ALSA 0.3.0-pre4. De plus, le nouvel amixer n'a pas encore de page
man, vous devrez vous débrouiller tout seul.
Réglage du mixer en lecture
Vous aurez remarqué les indications Mute (Muet) pour certains
périphériques. Cela signifie que ces périphériques n'émettront pas de son, quel
que soit le réglage du volume. Certaines cartes (comme ici le CS4237B) mettent
même le canal principal en sourdine.
Ainsi, 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. Pour des réglages séparés sur les canaux gauche
et droite, utilisez un signe «deux-points», par exemple
amixer CD 25:50
(et non, je ne sais pas lequel est le gauche et lequel est le droit, mais de
toute façon cela dépend aussi fortement de la position de vos haut-parleurs).
Éléments du mixer
Les différentes parties du mixer peuvent être déroutantes si vous n'avez pas de
connaissances sur la production du son numérique. Le sound-HOWTO peut vous
aider un peu, mais voici ici une brève explication.
Vous aurez sans doute besoin de seulement quelques éléments : l'un d'entre eux
est le réglage «CD» (le volume de votre lecteur de cd-rom, pourvu qu'il soit
connecté à la carte son par un câble à 3 ou 4 fils rouge,blanc et noir).
Le réglage «PCM» est utilisé pour la plupart des applications. Les programmes
comme mpg123, xmms, speakfreely, realplayer et la plupart des autres utilisent
le canal PCM.
«MIC» représente le micro, «line-in» est une entrée supplémentaire (pas
toujours présente) de votre carte son.
Les réglages «gain» permettent un réglage supplémentaire d'amplification.
Réglage du mixer en enregistrement
Vous pouvez régler le canal CD en enregistrement en entrant
amixer cd rec
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). La plupart des micros ont un
réglage de «gain» permettant d'amplifier le volume ; vous allez probablement
devoir l'utiliser si vous ne recevez pas le moindre son du micro.
Autres réglages du mixer
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/mixerC0D0 , où <ficher contient une
précédente copie de /proc/asound/N/mixerC0D0. Je n'ai pas pu le faire sur mon
système, il se plaint de périphériques non existants.
Les gestionnaires ALSA ont des périphériques associés dans le répertoire
/dev/snd.
Si vous avez une carte, vous devriez avoir les périphériques suivants :
/dev/snd/pcmC0D0 - la sortie PCM de la carte0
/dev/snd/mixerC0D0 - le mixer de la carte 0
/dev/snd/controlC0D0 - 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 pcmC0D0 et pcmC0D1.
Note : les gestionnaires ALSA ont changé de notation par rapport à la précédente
version, qui utilisait /dev/snd/pcm00 (premier chiffre pour la carte, deuxième
chiffre pour le périphérique). Si ce HOWTO emploie l'ancienne notation,
prévenez-moi pour que je le corrige.
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/pcmC0D0 ainsi : cat <fichier > /dev/snd/pcmC0D0 . 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 fichiers 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/pcmC0D0 -> /dev/audio0 (/dev/audio) -> numéro mineur 4
/dev/snd/pcmC0D0 -> /dev/dsp0 (/dev/dsp) -> numéro mineur 3
/dev/snd/pcmC0D1 -> /dev/adsp0 (/dev/adsp) -> numéro mineur 12
/dev/snd/pcmC1D0 -> /dev/audio1 -> numéro mineur 4+16 = 20
/dev/snd/pcmC1D0 -> /dev/dsp1 -> numéro mineur 3+16 = 19
/dev/snd/pcmC1D1 -> /dev/adsp1 -> numéro mineur 12+16 = 28
/dev/snd/pcmC2D0 -> /dev/audio2 -> numéro mineur 4+32 = 36
/dev/snd/pcmC2D0 -> /dev/dsp2 -> numéro mineur 3+32 = 35
/dev/snd/pcmC2D1 -> /dev/adsp2 -> numéro mineur 12+32 = 44
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ée 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 fragments - 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ère 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.
Pensez à lire la FAQ dans le répertoire des gestionnaires sonores. Cette section
est toujours en construction.
Arborescence des sources du noyau
Si vous n'arrivez pas à compiler vos gestionnaires ALSA, avec des messages
d'erreur mentionnant «version.h» ou d'autres fichiers d'en-têtes non trouvés,
cela peut signifier que vous n'avez pas les fichiers d'en-têtes du noyau.
Allez consulter le kernel-HOWTO, décompactez un noyau récent dans /usr/src
et lancez make config .
Pensez à vérifier les points suivants :
Compatibilité des cartes son
Êtes vous certain que votre carte EST supportée ? Vérifiez encore.
Il arrive qu'un modèle X123 ne soit pas exactement un modèle X123b, et vous
perdrez votre temps.
D'un autre côté, même une carte supportée peut vous poser problème - il m'a
fallu deux heures pour installer une carte CS4237B, ce qui, après tout, n'était
qu'un excellent cas de RTFM.
«Périphérique ou ressource occupée» (device busy) ou «symboles non résolus»(unresolved symbols)
Il se peut que vous ayez un noyau 2.0.x avec le support son intégré, ou que le
gestionnaire OSS/Lite (celui du noyau) soit chargé (vérifiez par
cat /proc/modules ). Retirez le gestionnaire ou recompilez le noyau
(reportez-vous au Kernel-HOWTO).
Le module son des noyaux 2.0 est nommé «sound.o» et ne doit pas être
actif (contrairement au gestionnaire ALSA «snd.o», bien entendu).
Si vous avez un noyau 2.2.x sans support son, les gestionnaires ALSA ne
fonctionneront pas non plus.
Noyaux 2.0.x
Je sais que c'est un peu confus, mais laissez-moi expliquer une fois de plus. Si
vous avez un noyau 2.0.x (la commande «uname -a» renvoyant quelque chose
du genre
«Linux pingouin 2.0.35 #6 Wed Sep 23 10:19:16 CEST 1998 i686 unknown») alors
vous devez désactiver tout support son dans le noyau.
Noyaux 2.2.x
Si vous avez un noyau 2.2.x vous avez besoin du support son. Un noyau
2.2 doit être compilé avec le support son, mais sans le moindre gestionnaire
de carte son. Il vous faut donc choisir le support son et vérifier qu'aucun
autre gestionnaire spécifique n'est compilé.
Références à d'autres gestionnaires
Une autre raison pour laquelle le gestionnaire se plaint que le périphérique
est occupé peut être que le fichier /etc/conf.modules référence encore les
anciens gestionnaires. Vous devriez effacer ces références et ne laisser que
des références aux gestionnaires ALSA (bien sûr, laissez les gestionnaires non
sonores tels quels).
Symboles non résolus, deuxième
Une autre cause des messages «symboles non résolus» peut être un noyau
plus récent que les gestionnaires. Assurez-vous de recompiler les gestionnaires
ALSA après chaque changement de noyau, de façon à être certain d'avoir des
gestionnaires correspondant à votre noyau.
Vérifiez le réglage PnP
Êtes-vous sûr que votre carte son est activée ? Relisez donc le PnP-HOWTO,
et vérifiez que votre carte son est correctement activée.
Vos paramètres sont-ils corrects ?
Vérifiez encore et toujours les paramètres de votre carte son. N'oubliez pas
que 534 n'est pas la même chose que 543, pas plus que 0x534 n'est 534.
Pensez également que certaines cartes doivent être chargées avec un nom
différent de celui supposé. Faites une pause, allez boire une bière ou toute
autre boisson, et vérifiez encore votre commande «modprobe». Par exemple,
le gestionnaire Crystal 4232 doit être inséré par «modprobe snd-cs4232», pas
«snd-cs4231», et que celui de la SoundBlaster PCI64 se nomme
«snd-audiopci», pas «snd-es1370» (tout est dans la documentation, et bien que
je sois l'auteur du HOWTO, il m'est arrivé de passer une soirée à essayer
de faire jouer du son à snd-cs4231).
La sourdine
Les gestionnaires ALSA exploitent les possibilités de «sourdine» dont
disposent la plupart des cartes son. Si vous avez chargé les gestionnaires
impeccablement mais qu'ils s'obstinent à rester silencieux, vous avez
probablement oublié de désactiver la sourdine. Il vous faut «amixer» ou
«alsamixer» pour cela, tous deux présents dans le paquetage alsa-utils.
Un simple
amixer -c 1 master 70:70 unmute
amixer -c 1 pcm 70:70 unmute
amixer -c 1 cd 70:70 unmute
devrait suffire à la plupart des applications.
Amplification
La plupart des cartes son ont un réglage de mixer supplémentaire pour amplifier
le son en entrée ou en sortie. Ce réglage est communément appelé «gain»,
«in-gain» pour l'entrée et «out-gain» pour la sortie. Agir sur ce réglage vous
aidera beaucoup à obtenir le niveau sonore maximum de vos haut-parleurs (mais
pensez à vos parents, voisins et à vos oreilles tout de même).
Une commande comme
amixer out-gain 100 unmute
pourra probablement rendre service.
Compatibilité avec OSS/Linux
S'il s'agit de votre première utilisation des gestionnaires ALSA, vous
souhaiterez probablement utiliser le support son exactement comme vous le
faisiez avant, (i.e. à l'aide des gestionnaires /dev/pcmX). Il vous faut pour
cela le gestionnaire de compatibilité OSS. Faites un modprobe snd-pcm1-oss
(reportez-vous à la fin de la section pour le chargement des modules).
Veuillez noter que snd-pcm1-oss est différent de snd-pcm1, vous avez
réellement besoin de snd-pcm1-oss pour le support à l'ancienne.
Impossible d'accéder au mixer
Si vous avez essayé d'installer plusieurs versions différentes d'ALSA, il
arrive que le mixer ne puisse plus être utilisé. Cela se produit quand vous
avez installé ALSA 0.3.2 puis êtes revenu à ALSA 0.3.0-pre4 (si ma mémoire est
bonne). Dans ce cas, effacez tous les fichiers libasound et les liens dans
/usr/lib et recompiler les bibliothèques et les utilitaires :
rm /usr/lib/libasound.*
Pour être vraiment tranquille, effacez tous les gestionnaires ALSA ensuite,
puis recompilez et réinstallez les gestionnaires.
Essayez «insmod»
Il est parfois utile de commencer avec insmod au lieu de kerneld. Comme ça,
vous pourrez peut-être voir un message d'erreur.
Lisez le fichier INSTALL
Le fichier INSTALL du répertoire des gestionnaires contient beaucoup
d'informations. Si votre gestionnaire ne fonctionne pas, regardez s'il n'y a
pas d'informations complémentaires.
Messages de déboguage
En dernier ressort, vous pouvez recompiler les gestionnaires en leur indiquant
d'envoyer des informations de déboguage dans /var/log/messages. Allez dans le
répertoire des gestionnaires (cd /usr/src/alsa-driver-... et lancez :
./configure --with-debug=detect; make clean; make
Retirez le gestionnaire (s'il est actif, voir plus bas pour une commande
pratique).
Puis relancez la commande "modprobe" que vous aviez utilisée précédemment,
pour charger le gestionnaire fraîchement compilé.
Allez voir dans /var/log/messages s'il y a des messages.
Si rien ne va plus...
Si ces messages ne peuvent vous aider, envoyez un message à la liste de
diffusion des développeurs ALSA,
[email protected] en précisant les informations suivantes :
- nom de votre carte son, ainsi que les noms des composants présents sur la carte ;
- les sections appropriées de votre fichier isapnp.conf si vous avez des cartes sons PnP ;
- votre fichier conf.modules ou la commande que vous utilisez pour activer
les gestionnaires ALSA ;
- tous les messages de /var/log/messages concernant les gestionnaires ALSA.
Si vous avez découvert un bug, les développeurs d'ALSA seraient heureux de
connaître les informations suivantes (au minimum) :
- versions de votre noyau et de vos gestionnaires : 'cat /proc/asound/version' ;
- informations sur la carte son :
- nom de la carte son ;
- liste des composants présents sur la carte ;
- contenu de 'cat /proc/asound/cards' ;
- tous les messages de /var/log/messages concernant les gestionnaires
ALSA ;
- une description du problème.
Si vous utilisez kmod ou kerneld et les gestionnaires ALSA pour jouer des CD
audio, ni kmod ni kerneld ne vont probablement charger les gestionnaires comme
attendu. Cela est dû au fait que les lecteurs CD en ligne de commande ne font
que demander au lecteur de cd-rom de lancer la lecture audio, sans utiliser les
périphériques sonores qui pourraient indiquer à kmod ou kerneld qu'une sortie
son va avoir lieu. L'utilisation de modprobe sera probablement votre seule
solution à ce problème.
Normalement, le port série est géré par le gestionnaire série standard. Avant
de pouvoir faire «modprobe snd-serial» il vous faut demander au gestionnaire
de ne plus s'occuper du port série.
Voici comment faire :
setserial /dev/ttyS0 none
modprobe snd-serial
(en remplaçant /dev/ttyS0 par le gestionnaire /dev/ttySx correspondant à votre
périphérique MIDI).
Après chaque mise à jour de votre noyau, vous devrez probablement recompiler
les gestionnaires ALSA. S'ils se trouvent toujours dans le répertoire /usr/src,
n'oubliez pas de lancer un make clean avant de refaire la séquence
./configure, make, make install.
Oh, et il ya aussi ce problème de numérotation : le noyau «2.2.0ac1» est
vu comme un «not a number» (pas un nombre) par le script configure. Il me
semble que cela a été résolu dans les scripts plus récents, sinon vous pouvez
peut-être modifier le numéro de version du noyau dans les sources.
Supposons que vous avez une installation de KDE en état de marche, mais que vous
n'arrivez pas à faire fonctionner les sons système, comme pour l'ouverture des
fenêtres, les changements de bureaux, etc. Le son fonctionne en général. Si
votre lecteur de CD audio et votre lecteur mp3 fonctionnent, cela est
probablement dû au fait que «kwmsound» est manquant.
Solution : vérifiez que "kwmsound" figure dans votre script de démarrage
($KDEDIR/bin/startkde)
Si vous aviez le support son sous Linux précédemment, vos applications se
réfèrent probablement à /dev/pcm0, /dev/audio et /dev/mixer. C'est parfait si
vous utilisez la compatibilité OSS à l'aide du module snd-pcm1-oss. Il serait
mieux, cependant, d'utiliser les véritables périphériques ALSA, ceux de
/dev/snd.
Retirer une dizaine de modules un par un est pénible. Heureusement, tous les
modules commencent par le préfixe "snd-", et une petite ligne de commande fera
l'affaire.
Vous pouvez retirer facilement les modules ALSA à l'aide de la commande
suivante :
cat /proc/modules|gawk '/^snd-/{print $1}|xargs -i rmmod {}
Juergen Kahrs ajoute : «J'ai écrit un script qui retire également soundcore et
soundlow s'ils sont présents et que le son n'est plus utilisé. Ce script
traite trois fois /proc/modules afin de ne pas laisser traîner trop de
modules.» Cette solution est :
awk '/^snd/||/^sound/&&($3==0){system("rmmod " $1)}' /proc/modules /proc/modules /proc/modules
Note : si un module est dépendant d'un autre, il n'est pas possible de commencer
par retirer le premier. Cela signifie qu'il se peut que vous deviez relancer
la commande de retrait une deuxième fois (je n'ai cependant jamais rencontré
cette situation, il semble qu'il soit possible de retirer les modules ALSA dans
l'ordre dans lequel ils apparaissent dans /proc/modules).
|