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)  :

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 : Une liste plus récente se trouve dans les sources du gestionnaire lui-même, à savoir dans doc/SOUNDCARDS

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

Si vous avez une carte PnP, vous aurez également besoin : 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/