Translation(s): English - Français - Italiano - Русский
Contents
ALSA 01-11-2015
ALSA, l'Advanced Linux Sound Architecture, est à la fois un projet et un ensemble de logiciels. Le projet a débuté parce que l'architecture OSS ne donnait pas techniquement entièrement satisfaction. De plus certains pilotes manquaient à la version libre d'OSS ; ils n'étaient disponibles que sur la version commerciale. Pendant plusieurs années, ALSA était un projet qui se développait distinctement de Linux. Les pilotes ont été ajoutés au noyau Linux à partir la série 2.5 et ALSA est devenu le système standard des pilotes audio depuis Linux 2.6.
ALSA n'est pas seulement un ensemble de pilotes pour le son, c'est aussi une bibliothèque API qui permet à des applications de gérer les dernières fonctionnalités des cartes son (par exemple, canaux audio multiples, Dolby AC3, etc.). ALSA fournit un soutien efficace pour de nombreuses applications, il est entièrement modulable et gère le SMP et thread-safe (multitraitement symétrique et traitement de plusieurs processus légers : Wikipedia).
Les applications écrites pour OSS peuvent fonctionner avec ALSA grâce à une émulation dans l'espace utilisateur (en utilisant le chargeur de programme aoss) ou une émulation dans l'espace noyau (les pilotes snd-*-oss). Toutefois, vous ne pouvez pas utiliser les pilotes ALSA et OSS en même temps.
NB : Les noms des pilotes ALSA commencent toujours par snd-.
Paquets
Chargement des modules
Les dernières versions des paquets alsa-base sont conçues pour fonctionner tout simplement. Le paquet alsa-base ne charge pas de modules. C'est plutôt udev qui détecte les branchements à chaud et les matériels de son et charge alors les bons modules, puis alsa-base paramètre les bons niveaux de mixage.
Configurer ALSA en exécutant la commande 'alsactl init' en tant que superutilisateur. Ignorez le message d'erreur comme 'Unknown hardware', 'matériel inconnu', (cette erreur devrait être corrigée dans la version .20 d'alsa-utils), puis redémarrez et essayez de tester votre son. Pour plus de détails, veuillez lire cette page.
Vous pouvez également essayer de détecter et de configurer votre carte son manuellement.
Si vous avez une carte son PCI, faire 'lspci -v' pour lister tous les périphériques PCI disponibles. Cette liste contiendra certainement un matériel multimédia audio, correspondant à votre carte son.
Pour une carte USB, utilisez lsusb.
Vous pouvez aussi jeter un œil à ALSA's soundcard-Matrix pour savoir quel pilote doit être utilisé avec le chipset que vous avez trouvé.
ALSA et OSS
Si votre système est déjà configuré pour charger les pilotes OSS de votre carte son, alors vérifiez dans les fichiers de configuration du chargeur de modules quels sont les modules chargés. Dans le fichier /var/log/dmesg qui est un compte-rendu de l'initialisation, vous trouverez en particulier les chargements des pilotes de périphérique. Vous trouverez les entrées pour les modules OSS qui vous donneront des indices sur le chipset utilisé par vos cartes son. N'oubliez pas de désactiver ces entrées avant de reconfigurer votre système pour charger les modules ALSA.
Si vous n'avez pas déchargé tous les modules OSS, les modules ALSA ne seront pas en mesure de s'initialiser (ou de fonctionner correctement) car le pilote OSS sera utilisé à la place du pilote ALSA. Si vous voyez un message "carte son non détectée" et que vous êtes sûr d'avoir le bon pilote ALSA, la présence d'un module OSS pourrait en être la raison.
Test
Tester le pilote, en utilisant aplay, MPlayer ou xmms par exemple.
Pour tester le MIDI, vous pouvez utiliser aplaymidi.
Partager plusieurs processus sur une même carte
On peut avoir besoin de partager, sur une même carte, plusieurs processus fonctionnant simultanément. Pour cela, il faut pouvoir mélanger les sorties sons de ces processus en un seul flux.
Si votre carte son bon marché ne supporte pas le mixage, essayez le plugin dmix. Il se paramètre automatiquement depuis la version 1.0.10-2 de libasound2 ; pour les versions antérieures, lisez /usr/share/doc/libasound2/examples/asound.conf_dmix ce fichier permet de voir comment activer DMIX dans le fichier /etc/asound.conf (pour tous les utilisateurs) ou ~.asoundrc (pour un simple utilisateur).
Un exemple de fichier .asoundrc pour un ordinateur portable moderne qui possède un HDMI et une simple carte son serait dans le désordre (utilisez au préalable la commande aplay -l pour obtenir les noms corrects pour vos cartes) :
defaults.pcm.!card Generic_1 defaults.ctl.!card Generic_1 defaults.pcm.!device 0 defaults.ctl.!device 0
Méthode alternative
Si votre carte son possède un chipset Realtek, et que vous n'obtenez aucun son, essayez la méthode suivante :
Téléchargez le pilote Realtek HD Audio Codec. Allez dans la rubrique "Quick Links" de la page http://www.realtek.com.tw, acceptez les conditions d'utilisation (cliquez sur : I accept to the above), et ensuite téléchargez le pilote approprié pour Linux.
- Ouvrir le fichier téléchargé, puis l'extraire (par exemple, dans votre répertoire personnel), ensuite, ouvrir un terminal superutilisateur et compilez de façon classique.
./configure make make install
Remarque :
- Assurez-vous que vous avez déjà tout ce qu'il faut pour compiler (gcc, make, build-essential, linux-headers de votre noyau, etc.) avant d'exécuter le script d'installation ci-dessus.
- Si vous rencontrez des erreurs, lisez le fichier INSTALL et editez en conséquence les fichiers de configuration appropriés.
Dépannage
Pour voir quels index ont été affectés aux différentes cartes, tapez :
cat /proc/asound/cards
La première carte que ALSA trouve reçoit, habituellement, l'index 0 et c'est donc en général la carte son par 'défaut'. Malheureusement, il arrive que la première carte son trouvée n'est pas un périphérique son capable de jouer les sons système. (Par ailleurs, une erreur du type "Unknown PCM default" pendant la lecture d'un son se produit si l'utilisateur n'est pas membre du groupe 'audio'. Tapez alors la commande suivante dans un terminal administrateur "adduser <username> audio", pour ajouter l'utilisateur au groupe audio, puis tapez la commande "newgrp" en tant qu'utilisateur).
Il y a deux façons de corriger ce problème.
1. Forcer le chargement des cartes dans un ordre différent. J'ai choisi cette voie et j'ai ajouté ce qui suit à mon fichier /etc/modprobe.d/sound :
options snd-trident index = 0 options snd-usb-audio index = 1
Cela oblige ma carte Trident à être le périphérique son par défaut (carte 0) et mon micro USB à être à l'index = 1.
2. Changer la carte par défaut en modifiant le fichier /etc/asound.conf ou ~/.asoundrc. Plus d'infos ici : Multiple Cards
Est-ce que le redémarrage contourne le BIOS et le menu de GRUB ? Cela peut venir de kexec-tools. Il permet de contourner le BIOS pendant le redémarrage et empêche l'initialisation correcte de certains périphériques. En tant que superutilisateur, modifiez le fichier /etc/default/kexec et mettez à jour LOAD_KEXEC avec la valeur :
LOAD_KEXEC=false
Cela permettra au BIOS d'initialiser correctement le son et d'autres périphériques à chaque démarrage.
Liste de vérification
- Ajoutez-vous au groupe 'audio' (puis reconnectez-vous).
- Lancez alsamixer, activez les canaux de son et montez le volume (essayer aussi de désactiver certains canaux comme s/pdif et changez l'option pour le branchement des prises jack).
- Arts ou esound sont arrêtés ?
- Les modules OSS sont bien déchargés ?
- Les haut-parleurs sont branchés et allumés ?
- Tapez modprobe snd-pcm-oss
- Est-ce que le superutilisateur peut utiliser "aplay /usr/share/sounds/alsa/Noise.wav" ? Tester le son avec aplay et un fichier wav pour que les problèmes de codec n'interfèrent pas.
- Si le son ne fonctionne plus après un redémarrage du système, désactivez kexec-tools.
Version
Rechercher dans /proc/asound/version.
Outils
ALSA apporte également des outils permettant d'effectuer plusieurs tâches :
Alsactl : AlsaControl est un programme qui permet de contrôler les cartes sons et de manipuler les configurations. Alsactl permet de sauvegarder ou de charger des configurations pour différentes cartes sons.
- Alsamixer : Ce logiciel permet de régler le volume des différents canaux, utilise Ncurses pour l'affichage.
- Aplay : Ce logiciel permet de jouer un fichier .wav.
- Arecord : Ce logiciel permet d'enregistrer un fichier .wav à partir d'une sortie sonore.
- Aconnect : Ce logiciel permet de connecter deux ports existants sur un séquenceur ALSA.
Plus d'informations
Pour plus d'informations, lisez les fichiers README.Debian dans les paquets alsa-base et alsa-source ou consultez http://www.alsa-project.org et http://alsa.opensrc.org.
Voir aussi: AlsaMidi.
Nouveautés :
?ALSA.
http://www.student.nada.kth.se/~d98-jas/debian/debian-install-alsa.txt - Il s'agit d'un article ancien (2003) sur la façon de créer un package ALSA sous Debian.