Alsa-sound-mini-HOWTO
Valentijn Sessink valentyn@alsa-project.org
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.
1. Introduction
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.
1.1 Remerciements
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,
miodrag@multimania.com, 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.
1.2 Historique
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.
1.3 Nouvelles versions de ce document
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.
1.4 Commentaires
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 (à alsa-howto@alsa-project.org), 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, à linux-howto@metalab.unc.edu, pour plus d'informations.
1.5 Politique de distribution
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.
2. Guide d'installation rapide
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.
2.1 Installation
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.
2.2 Jouer et enregistrer du son
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...
3. Avant de commencer
3.1 Introduction
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.
3.2 Informations générales sur les gestionnaires ALSA
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/
3.3 Matériel supporté
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(TM) ;
- 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'enregistrement. 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.
- 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)
3.4 Autres HOWTO
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).
4. Comment installer les gestionnaires sonores ALSA
4.1 Ce dont vous avez besoin
- 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).
- du paquetage isapnptools.
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/