7 votes

Comment configurer ALSA ?

Après être passé de Unity à XFCE, j'ai rencontré des difficultés avec ma configuration sonore. J'ai plusieurs cartes son sur mon système, celle que je veux utiliser est la dernière à être chargée par le noyau. ALSA semble utiliser la première par défaut.

De plus, je ne peux pas utiliser le son dans plus d'une application simultanément, je reçois des erreurs telles que "sound device in use", etc. Quelqu'un peut-il me donner des informations sur l'architecture ALSA, les outils que je dois utiliser pour sonder le système et des conseils sur la façon de structurer le fichier de configuration.

17voto

Gearoid Murphy Points 787

Le fichier de configuration du système est stocké dans '/etc/asound.conf', toutes les applications conformes à ALSA liront ce fichier à chaque démarrage. Le meilleur endroit où regarder pour avoir une idée de vos périphériques sonores actuels est ici, dans '/proc/asound/'. Si vous n'avez pas de fichier de configuration, les applications ALSA utiliseront /proc/asound/card0 comme périphérique sonore par défaut. Vous pouvez vérifier la version d'ALSA que vous exécutez ici '/proc/asound/version'.

Chaque périphérique sonore est associé à un ensemble de "pcms". Chaque pcm est en fait un canal de sortie : "front", "rear", "surround41", "surround51", etc. Vous pouvez voir quels canaux pcm sont disponibles en utilisant cette commande :

aplay -L | grep CARD

Quelques-uns de ces canaux pcm ne correspondent pas à des sorties audio physiques mais sont des canaux logiciels fournis par ALSA. Celui qui nous intéresse est appelé 'dmix'. Le canal 'dmix' est un mixeur logiciel fourni par ALSA pour gérer plusieurs flux d'entrée simultanés.

Une chose à noter est l'utilisation de plusieurs conventions pour identifier un dispositif sonore particulier. Le fichier de configuration utilisera card0, card1, etc ou simplement 0, 1, etc. Il est également possible de se référer à la carte par son nom, comme Creative, Nvidia, etc. Ces noms sont définis comme des soft links dans le répertoire ALSA proc : 'ls -l /proc/asound'. Typiquement, lorsqu'on se réfère à un canal PCM dans le fichier de configuration, le format est le suivant : "nom-canal:card-index,sub-index". Ainsi, par exemple, "dmix:2,0" fait référence au canal pcm dmix de la carte 2, sous-dispositif 0. Vous pouvez voir les sous-dispositifs associés à chaque carte son en utilisant cette commande :

aplay -l

L'étape finale est le fichier de configuration lui-même, situé ici '/etc/asound.conf'. Nous avons besoin de 2 composants dans ce fichier, une définition du canal 'pcm' et une définition du canal 'ctl'. Le canal 'pcm' définit notre sortie et est responsable du multiplexage de plusieurs flux sonores dans un seul canal de sortie matériel. Le canal 'ctl' est utilisé pour le mixeur et est responsable du contrôle du volume.

ALSA utilise un canal pcm logiciel appelé "plug" qui gère le multiplexage. Il s'agit d'un frontal logiciel pour un canal de sortie pcm asservi. Le canal de sortie pcm asservi doit lui-même être capable de mixer. Voici un exemple de fichier de configuration :

pcm.custom
{
    type plug
    slave
    {
        pcm "dmix:2,0"
    }
}

ctl.custom
{
    type hw
    card Creative
}

pcm.!default pcm.custom
ctl.!default ctl.custom

Dans ce cas, j'utilise le canal de sortie 'dmix' pour le troisième périphérique sonore du système "dmix:2,0". Le 3ème indice est 2 car il commence à partir de 0 (card0, card1, card2). En outre, le schéma 'ctl' fait référence à la même carte, mais cette fois en utilisant son nom en liaison souple 'Creative'.

J'espère que cela sera utile à d'autres.

-2voto

tierney Points 56

Essayez de taper alsamixer dans un terminal.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X