Translation(s): English - Français - Italiano - Русский
ALSA (Advanced Linux Sound Architecture ) est un cadriciel et une partie du noyau Linux fournissant une interface de programmation (API) pour les pilotes de cartes son.
En termes simples, ALSA peut être divisé en deux composants : l'API du noyau qui permet d'accéder à votre carte son pour les serveurs et applications de son de plus haut niveau, et une bibliothèque d'espace utilisateur qui fournit des fonctions plus générales (comme les effets, le mixage, le routage, etc.).
Il n'y a aucun moyen de « remplacer » ALSA, en ce qui concerne l'API du noyau. Auparavant, il y avait aussi OSS (Open Sound System), mais c'est obsolète depuis près de 20 ans. Il n'en va pas de même pour la bibliothèque d'espace utilisateur d'ALSA, qui peut être remplacée.
Un serveur audio sera placé entre ALSA et vos applications. Il s’agit généralement de PulseAudio (pour un son facile et automatique), JACK (pour un son à faible latence de qualité professionnelle) ou PipeWire (pour tout cas d’utilisation, mais il est encore expérimental). Un serveur de son n'est pas nécessaire car les applications peuvent émettre du son directement vers ALSA, mais certaines applications utiliseront l'API d'un serveur de son et exigeront qu'elle soit disponible pour produire du son. Plus tristement célèbre, Firefox ne prend pas en charge ALSA directement et utilise à la place l'API PulseAudio, forçant également l'utilisation de PulseAudio (ou d'une couche de compatibilité).
PulseAudio prendra, par défaut, le contrôle de tous les appareils ALSA et redirigera tous les flux audio vers lui-même. PipeWire, s'il est configuré pour le faire, utilisera un petit sous-ensemble de la fonctionnalité principale ALSA dans l'API du noyau pour accéder à votre carte son, et gérera toutes les autres fonctionnalités lui-même (remplaçant entièrement la bibliothèque d'espace utilisateur ALSA).
Le reste de cet article supposera que vous n'utilisez « pas » un serveur audio intermédiaire et que vous utilisez exclusivement ALSA. C'est très rare de nos jours, bien que cela puisse encore intéresser certains. Si vous êtes un utilisateur final typique, vous êtes probablement plus intéressé par la page du serveur audio que vous utilisez (probablement Pulseaudio).
Contents
Paquets
libasound2 - Ce paquet contient la bibliothèque de l'espace utilisateur ALSA et ses greffons standards, ainsi que les fichiers de configuration requis.
libasound2-plugins - Ce paquet contient des greffons supplémentaires pour la bibliothèque de l'espace utilisateur ALSA, y compris des convertisseurs de taux et des greffons de mixage ascendant/descendant. Vous voudrez presque certainement l'installer dans un environnement purement ALSA.
libasound2-doc - Ce paquet contient la documentation HTML de la bibliothèque ALSA, qui décrit l'API de développement pour les applications de l'espace utilisateur qui souhaitent utiliser ALSA.
alsa-utils - Une poignée d'outils en ligne de commane CLI pour configurer et utiliser ALSA dans l'espace utilisateur. Voir la description du paquet pour plus de détails.
alsa-oss - enveloppe ALSA pour les anciennes applications OSS.
alsamixergui - Une interface graphique pour l'application alsamixer.
apulse - Émulation de l'API PulseAudio pour ALSA. Nécessaire pour exécuter Firefox et d'autres applications qui utilisent PulseAudio directement, si vous exécutez une configuration pure d'ALSA.
alsa-firmware-loaders - Nécessite l'activation du composant contrib de Debian. Peut aider à rendre fonctionnels certains matériels audio spécifiques.
Chargement des modules
ALSA devrait « juste fonctionner », avec udev identifiant votre matériel et chargeant le pilote approprié chaque fois que vous démarrez ou chaque fois que le périphérique audio est connecté, rendant le son immédiatement fonctionnel et configurable via des utilitaires tels que alsamixer.
Les utilisateurs ont parfois eu besoin d'initialiser manuellement ALSA avant que leur son ne fonctionne. Pour ce faire, exécutez :
$ sudo alsactl init
Tester
Vous pouvez tester la sortie audio à l'aide de n'importe quel lecteur et de n'importe quel fichier audio. Quelque chose de traditionnel serait aplay qui est utilement disponible dans le paquet alsa-utils, mais il ne prend en charge que les fichiers WAV non compressés. Vous voudrez probablement utiliser quelque chose comme mpv à la place, qui devrait gérer n'importe quoi et peut toujours fonctionner sans configuration préalable.
Il existe également un fichier de bruit blanc générique inclus avec ALSA si vous ne vous souciez pas de tester la fidélité ou la précision à l'aide de l'audio (comme la musique) que vous connaissez et que vous souhaitez simplement vous assurer que la sortie fonctionne. Vous pouvez le jouer avec :
$ aplay /usr/share/sounds/alsa/Noise.wav
ALSA a une implémentation MIDI dans le cas où vous avez des ports MIDI matériels. Vous pouvez utiliser aplaymidi pour lire l'entrée de l'un de ces ports.
Configuration
Vous pouvez trouver les fichiers de configuration ALSA dans le répertoire /etc/alsa/conf.d/. De nombreux fichiers sont déjà inclus ici par défaut. Les fonctionnalités avancées telles que le mixage doivent déjà être configurées avec des valeurs par défaut saines. Si vous souhaitez apporter des modifications, ajoutez un nouveau fichier ici.
Utiliser MIDI avec ALSA
L'utilisation de périphériques fr/MIDI (pour « Musical Instrument Digital Interface ») virtuels ou matériels avec ALSA est décrite sur la page AlsaMidi.
Dépannage
Pas de son
Si vous ne pouvez pas obtenir de son du tout, assurez-vous que votre utilisateur est dans le groupe « audio », puis reconnectez-vous. Vous pouvez ajouter votre utilisateur au groupe en exécutant :
$ sudo adduser votre_nom_d_utilisateur_audio
Remplacement de « votre_nom_d_utilisateur_audio » par votre nom d'utilisateur actuel.
Le microphone ne fonctionne pas
Vérifiez dans alsamixer :
- que le microphone est « désactivé » ;
- que le volume du microphone est suffisamment élevé ;
que la capture est activée pour les paramètres liés au microphone ;
- si le boost du microphone a un effet.
$ arecord -vv -f dat /dev/null
en vous assurant que votre terminal est suffisamment large pour voir la barre horizontale avec des symboles # indiquant le volume détecté (par exemple réduisez la taille de la police avec Ctrl +). Avant la barre « # », vous devriez voir de nombreuses lignes décrivant vos paramètres ALSA actuels. Faites des sons forts près du microphone. En réponse aux sons, la longueur de la barre « # » doit osciller et le nombre doit changer. Une absence de réponse confirme que vous avez un problème lié au microphone.
Distinguez une panne matérielle du microphone d'un bogue logiciel en testant avec une autre installation, par exemple Debian sur un LiveCD (ordinateur de bureau) ou Mobian sur une carte SD (Smartphone Linux principal).
Mauvaise carte utilisée par défaut
Pour voir quels index ont été attribués aux cartes, exécutez :
$ cat /proc/asound/cards
La première carte trouvée par ALSA reçoit généralement l'index 0 et est donc généralement la carte son « par défaut ». Si vous n'êtes pas chanceux, la première carte son trouvée est celle qui ne convient pas à la lecture des sons du système.
Il y a deux façons de corriger ce problème.
1. Forcer le chargement des cartes dans un ordre différent et ajoutez ce qui suit au fichier /etc/modprobe.d/sound.conf :
options snd-trident index=0 options snd-usb-audio index=1
Cela oblige la carte Trident à être le périphérique son par défaut (carte 0) et le micro USB à être la carte 1.
Dans le cas où les deux sorties sont gérées par le même module (par exemple, la sortie HDMI et l'audio intégré), utilisez ceci à la place :
option snd_hda_intel index=1,0
2. Modifiez la carte par défaut en modifiant /etc/asound.conf ou ~/.asoundrc. Plus d'informations sur cette page : https://alsa.opensrc.org/MultipleCards.
Pas de son après le redémarrage
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
- Votre utilisateur fait-il partie du groupe « audio » ? (Voir la première section de dépannage)
- 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 ?
- 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.
Plus d'informations
Pour plus d'informations, lisez https://www.alsa-project.org et https://alsa.opensrc.org.
Voir aussi: AlsaMidi.