ALSA (Français)

From ArchWiki

Jump to: navigation, search
i18n
English
Español
Deutsch
Italiano
Nederlands
Русский
Slovensky
Česky
简体中文
עברית
Рolski
Português do Brasil
ไทย
Türkçe
Français

Contents

Introduction

Advanced Linux Sound Architecture (ALSA) est un composant du noyau (kernel) Linux visant à fournir des pilotes pour les cartes son.

Voyez OSS (anglais) si vous recherchez une alternative.

Ce document explique comment rendre fonctionnel ALSA avec un noyau 2.6. Référez-vous également au document autoriser plusieurs programmes à utiliser le son en même temps (anglais).

Installation

Pilotes du noyau

ALSA est inclus dans les noyaux 2.6 et l'est dans tous les paquets kernel26* pour Arch Linux. Si vous comptez compiler votre propre noyau, n'oubliez pas d'activer le pilote ALSA.

Tous les modules nécessaires devraient être détectés et chargés automatiquement par udev. Aucune configuration particulière ne doit être faite à moins que vous n'utilisiez une carte ISA. N'UTILISEZ JAMAIS alsaconf si vous avez une carte sond pci ou ISAPNP, car les entrées ajoutées par alsaconf dans le fichier modprobe.conf peuvent nuire à l'auto-détection d'udev.

Outils userspace

  • Requis pour le programme ALSA et ses outils
# pacman -Sy alsa-lib alsa-utils
  • Recommandé si vous désirez utiliser les applications avec le support d'OSS en passant par dmix
# pacman -S alsa-oss

Tous les programmes utilisant ALSA auront probablement le paquet alsa-lib comme dépendance.

Configuration

Vérifier que le module snd_pcsp soit chargé en dernier

Par défaut, le noyau est compilé avec le module snd_pcsp. Dans la plupart des cas, ce module est chargé avant votre "vrai" carte son. snd_pcsp est un module d'alsa pour le haut-parleur interne de votre ordinateur.

Pour que snd_pcsp soit chargé en dernier, ajoutez ce qui suit au fichier /etc/modprobe.conf:

options snd-pcsp index=2

Si vous ne désirez tout bonnement pas avoir le module snd_pcsp chargé, vous pouvez ajouter ceci à /etc/rc.conf:

MODULES=(... !snd_pcsp)


Note: Vous devrez décharger puis recharger tous les modules son afin que les changements soient pris en compte. Il peut être plus simple de redémarrer le système. À vous de voir.

Vérifier que les modules sont chargés

Vous pouvez supposer que udev détectera et chargera les modules son correctement, incluant les modules de compatibilité OSS. Vous pouvez vérifier avec cette commande:

$ lsmod|grep '^snd'
snd_usb_audio          69696  0 
snd_usb_lib            13504  1 snd_usb_audio
snd_rawmidi            20064  1 snd_usb_lib
snd_hwdep               7044  1 snd_usb_audio
snd_seq_oss            29412  0 
snd_seq_midi_event      6080  1 snd_seq_oss
snd_seq                46220  4 snd_seq_oss,snd_seq_midi_event
snd_seq_device          6796  3 snd_rawmidi,snd_seq_oss,snd_seq
snd_pcm_oss            45216  0 
snd_mixer_oss          15232  1 snd_pcm_oss
snd_intel8x0           27932  0 
snd_ac97_codec         87648  1 snd_intel8x0
snd_ac97_bus            1792  1 snd_ac97_codec
snd_pcm                76296  4 snd_usb_audio,snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer              19780  2 snd_seq,snd_pcm
snd                    43776  12 snd_usb_audio,snd_rawmidi,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc          7944  2 snd_intel8x0,snd_pcm

Si le résultat est similaire, les pilotes de votre carte son ont été chargés correctement (notez que le cas échéant, snd_intel8x0 et snd_usb_audio sont les pilotes pour le matériel). Vous pouvez également voir le répertoire /dev/snd pour vérifier les fichiers des périphériques:

$ ls -l /dev/snd/
total 0
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
crw-rw----  1 root audio 116, 32 Apr  8 14:17 controlC1
crw-rw----  1 root audio 116, 24 Apr  8 14:17 pcmC0D0c
crw-rw----  1 root audio 116, 16 Apr  8 14:17 pcmC0D0p
crw-rw----  1 root audio 116, 25 Apr  8 14:17 pcmC0D1c
crw-rw----  1 root audio 116, 56 Apr  8 14:17 pcmC1D0c
crw-rw----  1 root audio 116, 48 Apr  8 14:17 pcmC1D0p
crw-rw----  1 root audio 116,  1 Apr  8 14:17 seq
crw-rw----  1 root audio 116, 33 Apr  8 14:17 timer

Si vous avez au moins les périphériques controlC0 et pcmC0D0p ou similaire, alors les modules de son ont été détectés et chargés correctement.

Si ce n'est pas le cas, les modules son n'ont pas été correctement détectés. Si vous voulez de l'aide depuis IRC ou des forums, veuillez poster le résultat des commandes ci-dessus. Pour résoudre cela, vous pouvez essayer de charger les modules manuellement:

  • Recherchez les modules de votre carte son: principale des cartes son ALSA. Le module aura le préfixe 'snd-' ('snd-via82xx' par exemple).
  • Chargez les modules:
 # modprobe snd-NAME-OF-MODULE
 # modprobe snd-pcm-oss
  • Vérifiez le fichier du périphérique dans /dev/snd (voyez ci-dessus) et/ou essayez de voir si alsamixer ou amixer ont une sortie correcte.
  • Ajoutez snd-NOM-DU-MODULE et snd-pcm-oss à la liste MODULES du fichier /etc/rc.conf pour être sûr que les modules seront chargés la prochaine foi (vérifiez que vous avec bien mis snd-NOM-DU-MODULE avant snd-pcm-oss).

Activer et tester les canaux audio

Dans cette section, nous supposerons que vous êtes connecté en tant qu'utilisateur root. Si vous désirez exécuter les étapes suivantes en tant qu'utilisateur sans privilèges, vous devez d'abord voir la section Configuration des permissions.

  • Activez la carte son

La version actuelle d'ALSA s'installe avec tout les canaux désactivé par défaut, donc même si l'installation est faite avec succès, et que tous les périphériques sont fonctionnels, vous n'entendrez aucun son. Vous devrez activer les canaux audio manuellement en premier lieu. Il est recommandé d'utiliser 'alsamixer' pour faire cela. Dans l'interface texte d'alsamixer, le label "MM" en dessous de chaque canal signifie qu'ils sont réspectivement désactivés, et "00" indique qu'ils sont activés. Pressez la touche 'm' pour permuter l'interrupteur. Utilisez les touches fléchées gauche et droite pour naviguer entre les canaux, et haut et bas pour gérer le volume. Certain canaux comme 'Master' et 'PCM' et peut-être 'Speaker' également doivent être activés pour que le son soit fonctionnel.

NOTE: Lorsque vous utilisez amixer, vérifiez que vous activez tout comme vous réglez le volume. Pour cela, vous devez utiliser le symbol %. amixer comprend le signe de pourcentage (%) et non les nombres. Si vous utilisez un nombre, disons 90, alors amixer le prendra pour 100 %, ce qui peux déteriorer vos haut-parleurs.

 # amixer set Master 90% unmute
 # amixer set PCM 85% unmute
  • Essayez de lire un fichier wav
 # aplay /usr/share/sounds/alsa/Front_Center.wav

NOTE: Certaines cartes doivent avoir les canaux de sorties digitales désactivés afin de pouvoir utiliser le son analogique. Pour la carte Soundblaster Audigy LS, désactivez le canal IEC958.

Si vous ne pouvez entendre quoi que ce soit, vérifiez de nouveau les préférences du mixer, en étant sûr que les canaux PCM et MASTER sont activés (certains ordinateurs tel que l'IBM Thinkpad ont un canal spplémentaire nommé 'SPEAKER') et essayez l'utilitaire alsaconf en tant que root :

# alsaconf


Configuration des permissions

Pour pouvoir utiliser la carte son en tant qu'utilisateur standard, suivez les étapes suivantes :

  • Ajoutez votre utilisateur au groupe audio :
# gpasswd -a UTILISATEUR audio
  • Reconnectez-vous afin d'être sûr que le groupe audio est chargé.

Restaurer les réglages du mixer ALSA au démarrage

  • Éxecutez 'alsactl' une fois afin de créer le fichier '/etc/asound.state'
alsactl store
  • Éditez le fichier '/etc/rc.conf' et ajoutez 'alsa' à la liste des daemons à lancer au démarrage. Ceci conservera les réglages à chaque arrêt et les chargera à nouveau lorsque le système démarrera.
  • Si les réglages du mixer ne sont pas chargés au démarrage, ajoutez ce qui suit au fichier '/etc/rc.local' :
alsactl restore

Avoir la sortie SPDIF

(Depuis des monceaux des forums de gentoo)

  • Dans le Contrôle de Volume de GNOME, dans l'onglet option, changez ICE958 pour PCM. Cette options peut être activé depuis les préférences.
  • Si vous n'avez pas le Contrôle de Volume de GNOME installé,
    • Editez /etc/asound.state. Ceci est le fichier où alsasound conserve les réglages du mixer.
    • Cherchez la ligne ayant: 'IEC958 Playback Switch'. Près de cela, vous trouverez une ligne ayant value:false. Modifiez cela pour: value:true.
    • Maintenant, cherchez la ligne: 'IEC958 Playback AC97-SPSA'. Changez la valeur pour 0.
    • Relancez ALSA.

D'une autre manière, vous pouvez activer la sortie SPDIF automatiquement à la connection (testé avec une SoundBlaster Audigy):

  • Ajoutez les lignes suivantes au fichier /etc/rc.local :
 # Use COAX-digital output
 amixer set 'IEC958 Optical' 100 unmute
 amixer set 'Audigy Analog/Digital Output Jack' on

Vous pouvez trouver le nom de la sortie digitale de votre carte avec :

amixer scontrols

Préférences de KDE

  • Démarrez KDE :
# startx
  • Configurez le volume comme vous le désirez pour cet utilisateur (chaque utilisateur a ses propres réglages):
$ alsamixer

Déconnectez-vous puis reconnectez-vous pour avoir le son fonctionnel (j'ai dû, pour ma part, stopper le serveur X, puis me reconnecter, puis relancer X, firefox enfin, et avoir le sond fonctionnel sur youtube).

  • KDE 3.3 Allez dans le menu K -> Multimédia -> KMix
    • Choisissez préférences -> configurer KMix
    • Désactivez l'option "Restaurer le volume à la connection".
    • Pressez Ok. Tout doit être configuré à présent : le son sera le même dans KDE que dans un terminal.

Égaliseur

Note : Cette méthode requiert l'utilisation du plug-in ladspa, qui peut utiliser des ressources du processeur lorsque le son est utilisé. De plus, ceci est fait pour le son stéréophonique (pour l'utilisation avec un casque par exemple).

  • Vous aurez besoin, en plus des outils userspace mentionné plus tôt, d'alsaplugin :
pacman -S alsaplugin
  • Installez les paquets ladspa et shw-plugins, si vous ne l'avez pas fait plus tôt :
pacman -S ladspa shw-plugins
  • Si vous n'avez pas déjà créé les fichiers ~/.asoundrc ou /etc/asound.conf, créez l'un d'eux :
vim ~/.asoundrc
  • Insérez ce qui suit dans le fichier de configuration d'ALSA (~/.asoundrc ou /etc/asound.conf) :
pcm.eq {
 type ladspa

 # The output from the EQ can either go direct to a hardware device
 # (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go
 # to the software mixer shown here.
 #slave.pcm "plughw:0,0"
 slave.pcm "plug:dmix"
 # Sometimes you may need to specify the path to the plugins,
 # especially if you've just installed them.  Once you've logged
 # out/restarted this shouldn't be necessary, but if you get errors
 # about being unable to find plugins, try uncommenting this.
 #path "/usr/lib/ladspa"
 plugins [
   {
     label mbeq
     id 1197
     input {
       #this setting is here by example, edit to your own taste
       #bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,
       #50000hz, 10000hz, 20000hz
       controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
     }
   }
 ]
}
# Redirect the default device to go via the EQ - you may want to do
# this last, once you're sure everything is working.  Otherwise all
# your audio programs will break/crash if something has gone wrong.
pcm.!default {
 type plug
 slave.pcm "eq"
}
# Redirect the OSS emulation through the EQ too (when programs are running through "aoss")
pcm.dsp0 {
 type plug
 slave.pcm "eq"
}
  • Redémarrez les services d'ALSA:
/etc/rc.d/alsa restart
  • Tout devrais être bon. Sinon, allez voir sur les forums.

Résolutions des problèmes

Toujours pas de son ?

Souvenez-vous, ALSA est installé avec tous les canaux coupés par défaut (Voyez cette section précédente : [[ALSA_(Français)#Unmuting_the_channels_and_testing_the_sound_card|Activer votre carte son (lien à faire)]

Toutefois, si vous êtes certain que tout est activé comme il se doit, que les pilotes sont installés correctement, et que le volume est à un niveau correct, mais que vous n'entendez toujours rien, essayez de désactiver le module snd_pcsp dans la section MODULES du fichier /etc/rc.conf:

MODULES=(!snd_pcsp ...)

Notez que cela désactivera le haut-parleur interne de votre ordinateur. Si le son persiste à être absent, ajoutez ce qui suit dans votre fichier /etc/modprobe.conf:

options snd-NAME-OF-MODULE ac97_quirk=0

Cette fonction est connue pour fonctionner avec via82xx:

options snd-NAME-OF-MODULE ac97_quirk=1

Cette fonction est connue pour fonctionner avec snd_intel8x0.

Pas de son avec les cartes Intel intégrées

Il peut y avoir un problème avec deux modules chargés, snd_intel8x0 et snd_intel8x0m. Dans ce cas, éditez la section MODULES du fichier /etc/rc.conf pour blacklister le second module :

MODULES=(!snd_intel8x0m ...)

Fermer le canal nommé "Amplificateur Externe" (External Aplifier) dans alsamixer peut également être utile. Voyez Le Wiki d'ALSA (anglais).

Avec le controlleur audio Intel Corporation 82801 I (ICH9 Family) HD Audio Controller pour ordinateur portable, vous pouvez essayer d'ajouter ceci au fichier /etc/modprobe.d/sound :

options snd-hda-intel model=laptop

ou

options snd-hda-intel model=laptop enable=1 index=0

Sans quoi, le haut-parleur de l'ordinateur risque de ne pas fonctionner. Référez-vous à la page HDA Sound Problems (anglais)

Pauvre qualité sonore

Si vous avez du son de mauvaise qualité, tentez de mettre le volume du canal PCM (dans alsamixer) à un niveau de manière à ce que le gain soit de 0.

Perturbation lorsque le son démarre et s'arrête

Certains modules peuvent arrêter votre carte son lorsqu'elle est inutilisée. Ceci peut créer des perturbations lors de l'arrêt de la carte son. Si cela vous ennuie, essayez "modinfo snd-NOM-DU-MODULE", et cherchez l'option permettant d'activer ou de désactiver cette fonction.

Par exemple : pour désactiver l'économie d'énergie en utilisant le module snd-had-intel, ajoutez au fichier /etc/modprobe.conf :

options snd-hda-intel power_save=0

Ou essayez cela :

modprobe snd-hda-intel power_save=0

Alsamixer ne fonctionne pas

Si alsamixer ne fonctionne et que vous avez en retour l'erreur suivante :

alsamixer: function snd_ctl_open failed for default: No such device or directory

Vous devez d'abord vérifier que votre utilisateur fait partie du groupe audio, et ensuite vous reconnecter si besoin.

Vous pouvez également réinstaller le noyau de votre système. Éxécutez pacman -Sy kernel26 ou n'importe quel autre noyau que vous désirez.

La sortie digitale ne fonctionne pas

Si la sortie digitale de votre carte audio ne fonctionne pas ou qu'elle a cessée de fonctionner, mais qu'elle est bien activé dans alsamixer, éxectuez en tant que root :

iecset audio on

Vous pouvez ajouter ceci au fichier /etc/rc.conf si vous devez l'éxecuter après chaque redémarrage.

Le canal PCM n'est pas ajustable

Il se peut que le canal PCM ne soit pas ajustable. Dans ce cas, tentez de retirer tout les modules relatifs au son, hormis snd-NOM-DU-MODULE et snd-pcm-oss, de la section MODULES du fichier /etc/rc.conf.

HP TX2500

Ajoutez les deux lignes suivantes au fichier /etc/modprobe.conf :

options snd-cmipci mpu_port=0x330 fm_port=0x388
options snd-hda-intel index=0 model=toshiba position_fix=1

Et n'oubliez pas d'ajouter HAL à la liste des démons dans le fichier /etc/rc.conf

Son manquant en lecture des fichiers mp3

Si il manque du son à vos fichier mp3 ou que le son saute, et que vous possédez un système avec plus de deux haut-parleurs, éxecutez alsamixer et désactivez tout les canaux que vous n'avez pas. Désactivez le canal du haut parleur central si vous n'en possedez pas.

Ressource externes

Personal tools