Esiste un modo per salvare le impostazioni di alsamixer diverse da alsactl store?


9

Il problema alla radice: per qualche motivo, all'avvio, Ubuntu 14.04 disabilita (silenzia) l'uscita S / PDIF sulla mia scheda audio.

Questa domanda e le sue risposte indicano che sudo alsactl storememorizzerà le impostazioni di alsamixer dopo aver ripristinato l'output S / PDIF, ma all'avvio l'output S / PDIF viene nuovamente disattivato.

In /var/lib/alsa/asound.state( pastebin ) c'è una voce PDIF, che ho impostato su "true" e salvato; questo ha portato a risolvere il silenziamento automatico per il mio "Phantom Jack" ma non c'è altra voce per il "vero" S / PDIF in asound.state che posso regolare manualmente.

C'è anche un /var/lib/alsa/asound.state.lockfile vuoto (11 byte, vuoto in gedit) nella /alsa/directory. È qualcosa con cui dovrei occuparmi?

Risposte:


9

Ho lo stesso problema sul mio PC:
sembra che alsa ripristini efficacemente lo stato "non silenziato" di SPDIF durante l'avvio, ma pulseaudio lo silenzia all'avvio della sessione dell'utente.
Per verificare che alsa restore sia ok, esegui semplicemente sudo alsactl restoreun terminale e controlla se riattiva SPDIF.
Per verificare che pulseaudio sia il problema, corri pulseaudio -kper riavviare pulseaudio: dovresti vedere che SPDIF è silenziato.

Poiché non so come impostare pulseaudio per non silenziare, questa è una soluzione alternativa ispirata da :

  • Prova se questo comando riattiva il canale SPDIF:
    amixer set IEC958 unmute
  • Se sì, crea il file nascosto .unmute:
    gedit .unmute
    incolla 4 righe al suo interno:

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

salva e chiudi.
Ora modifica il .profilefile:
gedit .profile
aggiungi questa riga alla fine:

bash .unmute &

salva e chiudi.

Ora prova la sessione di riapertura o il riavvio.

Nota : nel link sopra di Mageia, usano /etc/rc.local per essere eseguito alsactl restoreall'avvio, è anche ok. Ma usando .profilee amixer, non c'è bisogno di "sudo" e si riattiverà ad ogni avvio della sessione per il tuo login.


1

Ho adattato la risposta di @ laugeo per risolvere il problema con le mie cuffie.

Il problema era che la cuffia era impostata per riattivare l'audio ma era su volume 00.

Volevo che fosse 100, quindi ho aggiunto questo: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

E la .unmutesceneggiatura ha il seguente aspetto:

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

Se si desidera riattivare l'audio e impostare il volume al 100%, è sufficiente cambiare canale. Ad esempio per il canale principale:

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

0

Quando corro sudo alsactl storemi dà il seguente errore

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

Ho dovuto riattivare l'audio del canale Master usando

amixer set Master 100 unmute

e ha funzionato perfettamente per la scheda audio attualmente selezionata. Ma il canale Master è sempre stato disattivato nuovamente dopo l'avvio, quindi ho creato uno script chiamato unmute.she impostato in chmod 700modo che altri utenti non potessero eseguirlo. Ho riempito lo script con il seguente contenuto:

#!/bin/bash
amixer set Master 100 unmute

e salvato nella ~/.kde/Autostartdirectory. Se hai Kubuntu o un'altra distribuzione con KDE, tutti gli script in quella directory verranno eseguiti automaticamente all'avvio.

Se non hai KDE puoi provare ad aggiungere il amixercomando al ~/.profilefile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.