web-dev-qa-db-fra.com

Existe-t-il un moyen de sauvegarder les paramètres d’alsamixer autres que alsactl store?

Le problème fondamental: pour une raison quelconque, au démarrage, Ubuntu 14.04 désactive (met en sourdine) la sortie S/PDIF sur ma carte son.

Cette question et ses réponses indiquent que Sudo alsactl store stockera les paramètres d'alsamixer une fois que la sortie S/PDIF aura été désactivée, mais au démarrage, la sortie S/PDIF sera de nouveau désactivée.

Dans /var/lib/alsa/asound.state ( Pastebin ), il existe une entrée PDIF, que j'ai définie sur "true" et sauvegardée; cela a abouti à la résolution du blocage automatique de mon "Phantom Jack" mais il n'y a pas d'autre entrée pour le "vrai" S/PDIF dans asound.state que je peux régler manuellement.

Il existe également un fichier /var/lib/alsa/asound.state.lock vide (11 octets, vide dans gedit) dans le répertoire /alsa/. Est-ce quelque chose que je devrais avoir affaire à

9
JeanSibelius

J'ai le même problème sur mon pc:
Il semble qu'alsa rétablisse effectivement l'état "non muté" de SPDIF au démarrage, mais ensuite pulseaudio le coupe au démarrage de la session utilisateur.
Pour vérifier que la restauration alsa est correcte, exécutez simplement Sudo alsactl restore dans un terminal et vérifiez si la fonction SPDIF n'est pas désactivée.
Pour vérifier si le problème est pulseaudio, exécutez simplement pulseaudio -k pour le relancer à nouveau: vous devriez voir que SPDIF est mis en sourdine.

Comme je ne sais pas comment paramétrer pulseaudio pour ne pas couper le son, c’est une solution de contournement inspirée de :

  • Essayez si cette commande active le canal SPDIF:
    amixer set IEC958 unmute
  • Si oui, créez un fichier caché .unmute:
    gedit .unmute
    Collez-y 4 lignes:

    #!/bin/bash
    sleep 10 
    /usr/bin/amixer set IEC958 unmute 
    exit
    

sauver et fermer.
Maintenant, éditez le fichier .profile:
gedit .profile
ajoute cette ligne à la fin:

bash .unmute &

sauver et fermer.

Testez maintenant la session de réouverture ou de redémarrage.

Remarque : dans le lien ci-dessus de Mageia, ils utilisent /etc/rc.local pour exécuter alsactl restore au démarrage, ils sont également acceptables. Mais en utilisant .profile et amixer, inutile de "Sudo" et le son sera mis en sourdine à chaque début de session pour votre connexion.

9
laugeo

Je me suis adapté réponse de @ laugeo pour résoudre le problème avec mes écouteurs.

Le problème était que le casque était réglé sur Activer le son mais qu'il était réglé sur 00 volume.

Je voulais que ce soit 100, alors j'ai ajouté ceci: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

Et le script .unmute ressemble à ceci:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Headphone playback 100% unmute
exit

Si vous souhaitez réactiver le son et régler le volume sur 100%, changez simplement le canal. Par exemple pour le canal principal:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Master playback 100% unmute
exit
1
Germán Acosta

Quand j'exécute Sudo alsactl store, l'erreur suivante apparaît.

alsactl: get_controls:567: snd_ctl_open error: Invalid argument.

J'avais besoin d'activer le canal principal en utilisant

amixer set Master 100 unmute

et cela a fonctionné parfaitement pour la carte son actuellement sélectionnée. Mais le canal principal était toujours mis en sourdine après le démarrage. J'ai donc créé un script nommé unmute.sh et défini le chmod 700 afin que les autres utilisateurs ne puissent pas l'exécuter. J'ai rempli le script avec le contenu suivant:

#!/bin/bash
amixer set Master 100 unmute

et l’a sauvegardé dans le répertoire ~/.kde/Autostart. Si vous avez Kubuntu ou une autre distribution avec KDE, tous les scripts de ce répertoire seront exécutés automatiquement au démarrage.

Si vous n'avez pas KDE, vous pouvez essayer d'ajouter la commande amixer au fichier ~/.profile.

0
user2513149