ALSA : se débarrasser du "craquement" des HP au démarrage

Depuis que j’ai installé Debian sur ma “nouvelle” machine de bureau j’ai toujours eu un petit “craquement” des hauts-parleurs au démarrage de la machine, quand ALSA s’initialise. Ce n’était pas très gênant avec mes vieilles enceintes très basiques, mais avec un kit 2.1 le caisson de basses se met de la partie et produit un “boum” assez retentissant, particulièrement peu discret lors d’un (re)démarrage en soirée / nuit (et toujours stressant peu importe le moment de la journée).

Ce souci semble suffisamment répandu pour que j’en fasse un petit T&A.
La cause est toute simple : au moment où le service alsa-utils rétablit les niveaux de mixage, des interférences ont lieu sur la connectique microphone, ce qui provoque un bruit passager (probablement à cause de l’élévation trop rapide des niveaux des différents canaux).

La solution est tout aussi simple : il s’agit de mettre à zéro tout ce qui a trait au microphone (et tant que vous y êtes, à n’importe quelle autre source du même genre : line-in, par exemple) aussi bien en sortie (lecture) qu’en entrée (enregistrement).
[ul][li] Vous pouvez faire ça avec votre mixer X habituel, puis lancer # alsactl store pour que les changements s’appliquent au démarrage du système. Attention, par défaut beaucoup de mixers sous X n’affichent pas l’intégralité des canaux disponibles, il faudra peut-être rajouter les canaux manquants.[/li]
[li] Si vous voulez être sûr de voir tous les canaux, utilisez $ alsamixer (canaux de lecture = F3 ; canaux d’enregistrement = F4) suivi lui aussi de # alsactl store pour enregistrer la configuration. Ou pour faire d’une pierre deux coups, directement # alsamixer sans commande supplémentaire.[/li][/ul]

Redémarrer ensuite la machine pour valider la nouvelle configuration.
Il ne vous reste plus qu’à retourner dans votre mixer X pour rétablir les réglages auxquels vous êtes habitué (puisque la manip’ précédente les a changés). Comme votre mixer fonctionne sous votre compte utilisateur, vos réglages seront rétablis au démarrage de votre session X sans pour autant toucher aux réglages root qu’alsa-utils utilise lors du démarrage.

Pour résumer, la séquence de boot (en ce qui concerne les niveaux de mixage) est la suivante :
[ul][li] initialement, tous les canaux sont à des niveaux arbitraires en fonction de votre carte (souvent zéro)[/li]
[li] le service alsa-utils démarre, et rétablit les niveaux enregistrés par root (c’est là que le “craquement” se produit à cause des interférences dans le matériel)[/li]
[li] votre mixer démarre avec votre session X, et rétablit les niveaux de votre précédente session (mais sans “craquement” des hauts-parleurs cette fois-ci)[/li][/ul]

En espérant que ça puisse permettre à d’autres de se débarrasser de ce petit désagrément pénible !

Question stupide : marche pas avec un alsactl store ?

Question pas stupide du tout, après quelques expérimentations (et autant de reboots) j’en suis arrivé à la conclusion que alsactl store fonctionne également. Merci, je ne connaissais pas cette commande.
J’ai mis le T&A à jour en conséquence.

Chez moi ça ne fonctionne pas. Et c’est bien dommage, c’est vrai que c’est chiant :s

J’avais de la musique via le serveur mpd, le son se coupe donc bien et était bien toujours coupé au redémarrage mais toujours ce “boom” des enceintes à l’initialisation d’alsa au démarrage.

J’ai fait tout coupé dans alsamixer sous ma session X via une connexion en su dans un terminal.

Tu as seulement ALSA, ou bien un autre serveur de son par dessus (genre PulseAudio) ?
Si tu redémarres en mode dépannage (pour être sûr que X ne puisse pas intervenir) y’a quoi dans ton alsamixer ?
Tes canaux sont “juste” à zéro, ou carrément coupés (touche M comme “Mute” dans alsamixer) ?

C’est ce que j’ai fait aussi, ça ne devrait pas venir de là.