ALSA (Français)
From ArchWiki
i18n |
---|
English |
Español |
Deutsch |
Italiano |
Nederlands |
Русский |
Slovensky |
Česky |
简体中文 |
עברית |
Рolski |
Português do Brasil |
ไทย |
Türkçe |
Français |
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)
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.