ALSA dispose d'un mécanisme pour sauvegarder et restaurer les paramètres :
# alsactl store
# alsactl restore
Il utilisera un fichier par défaut (généralement /var/lib/alsa/asound.state
) pour sauvegarder les paramètres, et les restaurer à partir de là. L'opération de restauration est généralement effectuée automatiquement au démarrage du système, souvent depuis un service systemd.
Cependant, il peut arriver que PulseAudio (le serveur audio souvent utilisé par défaut sur les distributions "récentes"), remplace les paramètres ALSA par les siens, perturbant parfois les choses. Il peut ne pas être si facile d'apprendre à PulseAudio à se comporter comme vous le souhaitez, donc une solution de contournement de ce type pourrait être utilisée :
Vous voudrez peut-être lancer le script suivant (~/alsarestore.sh
) à partir de la crontab de l'utilisateur root.
#!/bin/sh
restore_alsa() {
while [ -z "$(pidof pulseaudio)" ]; do
sleep 1
done
alsactl restore
}
restore_alsa &
Il attendra que PulseAudio soit lancé avant d'appeler alsactl restore
(en considérant que la configuration sauvegardée est celle que vous souhaitez).
Enfin, en tant que root, vous voudrez ajouter ceci à crontab -e
:
@reboot ~/alsarestore.sh 2>/dev/null
Ce contournement est inspiré de cet article du wiki ArchLinux.