Translation(s): English - Français - Italiano - Русский


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).

Paquets

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.

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 :

Essayez

$ 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 :

  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

Plus d'informations

Pour plus d'informations, lisez https://www.alsa-project.org et https://alsa.opensrc.org.

Voir aussi: AlsaMidi.


CategoryHardware CategorySound