Czy jest jakiś sposób, aby zapisać ustawienia alsamixer inne niż sklep alsactl?

9

Główny problem: z jakiegoś powodu podczas uruchamiania Ubuntu 14.04 wyłącza (wycisza) wyjście S / PDIF na mojej karcie dźwiękowej.

To pytanie i odpowiedzi wskazują, że sudo alsactl storezapiszę ustawienia alsamixera, kiedy wyciszę wyjście S / PDIF, ale podczas rozruchu wyjście S / PDIF zostanie ponownie wyciszone.

W /var/lib/alsa/asound.state( pastebin ) jest jeden wpis PDIF, który ustawiłem na „true” i zapisałem; zaowocowało to rozwiązaniem automatycznego wyciszenia mojego „Phantom Jack”, ale nie ma innego wpisu dla „prawdziwego” S / PDIF w asound.state, którego można ręcznie dostosować.

W /var/lib/alsa/asound.state.lockkatalogu znajduje się również pusty plik (11 bajtów, pusty w gedit) /alsa/. Czy to coś, z czym powinienem sobie poradzić?

JeanSibelius
źródło

Odpowiedzi:

9

Mam ten sam problem na moim komputerze:
wygląda na to, że skutecznie alsa przywraca SPDIF „nie wyciszony” stan podczas rozruchu, ale potem pulseaudio wycisza go, gdy rozpoczyna się sesja użytkownika.
Aby sprawdzić, czy przywracanie alsa jest w porządku, po prostu uruchom sudo alsactl restoreterminal i sprawdź, czy wyłącza SPDIF.
Aby sprawdzić, czy problem stanowi pulseaudio, po prostu uruchom, pulseaudio -kaby ponownie uruchomić pulseaudio: powinieneś zobaczyć, że SPDIF jest wyciszony.

Ponieważ nie wiem, jak ustawić pulseaudio, aby nie wyciszał, oto obejście zainspirowane stamtąd :

  • Spróbuj, jeśli to polecenie wyciszy kanał SPDIF:
    amixer set IEC958 unmute
  • Jeśli tak, utwórz ukryty plik .unmute:
    gedit .unmute
    wklej w nim 4 linie:

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

Zapisz i zamknij.
Teraz edytuj .profileplik:
gedit .profile
dodaj ten wiersz na końcu:

bash .unmute &

Zapisz i zamknij.

Teraz przetestuj sesję ponownego otwierania lub restartu.

Uwaga : w powyższym linku od Magei używają /etc/rc.local do uruchamiania alsactl restorew czasie rozruchu, jest również w porządku. Ale używając .profilei amixer, nie musisz „sudo” i będzie wyciszony przy każdym rozpoczęciu sesji twojego loginu.

laugeo
źródło
1

Dostosowałem odpowiedź @ laugeo, aby rozwiązać problem ze słuchawkami.

Problem polegał na tym, że słuchawki były wyciszone, ale miały głośność 00.

Chciałem, aby było 100, więc dodałem to: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

A .unmuteskrypt wygląda następująco:

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

Jeśli chcesz wyłączyć wyciszenie i ustawić głośność na 100%, po prostu zmień kanał. Na przykład dla kanału głównego:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Master playback 100% unmute
exit
Germán Acosta
źródło
0

Po uruchomieniu sudo alsactl storewyświetla następujący błąd

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

Musiałem wyłączyć wyciszenie kanału głównego za pomocą

amixer set Master 100 unmute

i działało idealnie dla aktualnie wybranej karty dźwiękowej. Ale kanał główny był zawsze wyciszany po uruchomieniu, więc utworzyłem skrypt o nazwie unmute.shi ustawiłem chmod 700tak, aby inni użytkownicy nie mogli go uruchomić. Skrypt został wypełniony następującą treścią:

#!/bin/bash
amixer set Master 100 unmute

i zapisałem go w ~/.kde/Autostartkatalogu. Jeśli masz Kubuntu lub inną dystrybucję z KDE, wszystkie skrypty w tym katalogu będą uruchamiane automatycznie podczas rozruchu.

Jeśli nie masz KDE, możesz spróbować dodać amixerpolecenie do ~/.profilepliku.

użytkownik2513149
źródło