Existe-t-il un moyen de sauvegarder les paramètres alsamixer autre que le magasin alsactl?

9

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

Cette question et ses réponses indiquent que sudo alsactl storeva stocker les paramètres alsamixer une fois que j'ai réactivé la sortie S / PDIF, mais au démarrage, la sortie S / PDIF est à nouveau muette.

Dans /var/lib/alsa/asound.state( pastebin ), il y a une entrée PDIF, que j'ai définie sur "true" et enregistrée; cela a entraîné la résolution de la coupure 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 puisse ajuster manuellement.

Il y a aussi un /var/lib/alsa/asound.state.lockfichier vide (11 octets, vide dans gedit) dans le /alsa/répertoire. Est-ce quelque chose que je devrais traiter?

JeanSibelius
la source

Réponses:

9

J'ai le même problème sur mon PC:
il semble qu'alsa restaure effectivement l'état SPDIF "non muet" lors du démarrage, mais puis pulseaudio le mute au démarrage de la session utilisateur.
Pour vérifier que la restauration alsa est correcte, exécutez simplement sudo alsactl restoredans un terminal et regardez si elle rétablit SPDIF.
Pour vérifier que pulseaudio est le problème, lancez simplement pulseaudio -kpour relancer pulseaudio: vous devriez voir que SPDIF est en sourdine.

Comme je ne sais pas comment régler pulseaudio pour ne pas couper le son, voici une solution de contournement inspirée de :

  • Essayez si cette commande rétablit 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 .profilefichier:
gedit .profile
ajoutez cette ligne à la fin:

bash .unmute &

sauver et fermer.

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

Remarque : dans le lien ci-dessus de Mageia, ils utilisent /etc/rc.local pour s'exécuter alsactl restoreau démarrage, c'est également correct. Mais en utilisant .profileet amixer, pas besoin de "sudo" et il sera réactivé à chaque démarrage de session pour votre connexion.

laugeo
la source
1

J'ai adapté la réponse de @ laugeo pour résoudre le problème avec mes écouteurs.

Le problème était que le casque était réglé pour être réactivé mais qu'il était 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 .unmutescript ressemble à:

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

Si vous voulez réactiver le son et régler le volume à 100%, changez simplement le canal. Par exemple pour le canal maître:

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

Lorsque je cours, sudo alsactl storecela me donne l'erreur suivante

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

J'avais besoin de ré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 Master était toujours à nouveau muet après le démarrage, j'ai donc créé un script nommé unmute.shet défini de chmod 700sorte 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 enregistré dans le ~/.kde/Autostartrépertoire. 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 amixercommande au ~/.profilefichier.

user2513149
la source