Jak zapisać ustawienia AlsaMixer?

76

Witam Wypróbowałem program „EarCandy”, teraz miałem / mam wiele problemów. Na początku nie dostałem żadnego dźwięku, a teraz jest bardzo niski poziom głośności. PS Earcandy został teraz usunięty z mojego dysku twardego.

Kiedy otwieram Alsamixer za pomocą:

alsamixer

Widzę, że głośność głośników wynosi zero. Teraz zwiększam głośność do maksimum. Ale po każdym ponownym uruchomieniu muszę ponownie otworzyć alsamixer i ponownie ustawić głośność na maks. Czy mogę zapisać ustawienia dla alsamixer lub czy istnieje jakiś inny sposób rozwiązania problemu? wprowadź opis zdjęcia tutaj

jsterr
źródło

Odpowiedzi:

74

Wykonać:

sudo alsactl store

Powinno to zapisać konfiguracje alsamixer, do /etc/asound.statektórych ładuje się przy każdym uruchomieniu.

Seppo Erviälä
źródło
14
Mój laptop kontynuuje resetowanie konfiguracji, nawet po uruchomieniu powyższego polecenia. Podobno to przechowuje /var/lib/alsa/asound.state. Czy jest jakiś inny powód, dla którego nie działa?
Azmisov
1
Mam dokładnie ten sam problem i dokładnie to samo zachowanie, gdy próbuję sklepu sudo alsactl.
JeanSibelius
1
@Azmisov: Możesz dalej eksperymentować z systemem w następujący sposób: (1) zapisz konfigurację (2) uruchom alsamixeri zmień poziom główny (2) przywróć konfigurację (3) sprawdź, czy poziom główny został przywrócony. Jeśli powyższe jest zgodne z oczekiwaniami, sprawdź, czy przywracanie jest faktycznie uruchamiane podczas uruchamiania systemu ( chkconfig alsa-utilspowinno zostać wyświetlone alsa-utils on).
dma_k
Ta odpowiedź rozwiązała mój problem z SPDIF: askubuntu.com/questions/541847/...
neves
1
Po uruchomieniu sudo alsactl storewyświetla następujący błąd alsactl: get_controls:567: snd_ctl_open error: Invalid argument.
user2513149,
23

Możesz również zapisać ustawienia miksera w pliku niestandardowym za pomocą alsactl:

alsactl --file ~/.config/asound.state store

Przeładowanie:

alsactl --file ~/.config/asound.state restore
palacsint
źródło
2
Najlepsza odpowiedź nie działała dla mnie, ale tak się stało! Utworzyłem plik konfiguracyjny, umieściłem go /etc/asound.statei dodałem do mojego wiersza przeładowania /etc/rc.local.
John
To było dla mnie właściwe rozwiązanie ... ale musiałem określić bezwzględną ścieżkę do pliku .config wewnątrz rc.local(chociaż powinien działać nawet z krewnym, ponieważ jest to ten sam użytkownik ... ale tak nie było). dziękuję i mam nadzieję, że moja podpowiedź też komuś pomoże
davidhq
12

Odpowiedź Seppo Erviälä jest prawidłowa, ale niepełna. Jak już zauważyłem dma_k, man alsactlna końcu wyraźnie stwierdza, że:

/var/lib/alsa/asound.state (lub dowolny inny plik określony flagą -f) służy do przechowywania bieżących ustawień kart dźwiękowych.

palacsinit odpowiednio zauważył, że możesz przechowywać config w swoim pliku za pomocą

alsactl --file ~/.config/asound.state store

i przeładuj za pomocą

alsactl --file ~/.config/asound.state restore

Można to jeszcze poprawić poprzez umieszczenie drugiego wiersza polecenia restore w pliku .desktop.

Musisz uruchomić nano ~/.config/autostart/alsarestore.desktop, który otworzy edytor tekstowy nano i utworzy ~/.config/autostart/alsarestore.desktopplik. Wpisy w ~/.config/autostart/katalogu służą do automatycznego uruchamiania programów i usług dla konkretnego użytkownika podczas uruchamiania / logowania graficznego.

Zawartość pliku .desktop powinna być następująca:

[Desktop Entry]
Type=Application
Terminal=false
Name=alsarestore
Exec=alsactl --file ~/.config/asound.state restore

Między innymi możesz przechowywać swoją konfigurację /etc/asound.statei dowiązać do niej dowiązanie symboliczne /var/lib/alsa/asound.state, ale ta jest raczej sugestią niż testowanym rozwiązaniem

Sergiy Kolodyazhnyy
źródło
To był jedyny sposób, w jaki pracowałem dla siebie na Ubuntu Xenial 16.04
Francisco Costa
1
Polecenia „zapisz” i „przywróć” działają dobrze w przypadku sterowania ręcznego. Jednak po skonfigurowaniu pliku autostartu za pomocą polecenia „restore” widzę, że ustawienie mikrofonu w alsamixer jest przepisywane w celu wyciszenia, a wynik jest statyczny. Jeśli ręcznie wykonam polecenie przywracania, wszystko jest w porządku. Dlaczego ustawienie mikrofonu zmienia się i nie jest poprawiane przez odpowiednio zapisany plik konfiguracyjny przez autostart?
Brad Horn
@BradHorn możliwe, że masz coś nadpisującego polecenie. Działa, ale potem coś innego cofa jego zmiany
Sergiy Kolodyazhnyy,
jakieś pomysły co to może być?
Brad Horn
1
@BradHorn nie z czubka mojej głowy, nie. Spróbuj zmienić Execwiersz w .desktoppliku, który ma być Exec=bash -c "sleep 5 && alsactl --file ~/.config/asound.state restore". Spowoduje to 5-sekundowe opóźnienie, więc cokolwiek nadpisuje twoje ustawienia, najpierw uruchomi się, a następnie polecenie przywracania. Spróbuj zagrać z sleepwartościami, jeśli nadal nadpisują twoje ustawienia.
Sergiy Kolodyazhnyy
2

Po 2 miesiącach prób stworzenia „sklepu sudo alsactl” do pracy, w końcu udało mi się to zrobić. Najpierw wpisz terminal „alsamixer”, aby wejść do interfejsu użytkownika alsamixer. Następnie skonfiguruj potrzebne konfiguracje (np. Zwiększ poziom głośników / słuchawek lub wyłącz wyciszenie naciskając „m” na klawiaturze). Teraz najważniejsza część. Przed wyjściem z alsamixer otwórz nowy terminal i wykonaj: „sudo su”, aby uzyskać wysokie uprawnienia (bądź bardzo ostrożny z poleceniami używanymi w trybie „sudo su”, ponieważ możesz zniszczyć system), a następnie wykonaj „alsactl store”, aby zapisać ustawienia alsa. Następnie zamknij oba terminale i uruchom ponownie komputer. To wystarczy.

tisfo
źródło
To mi nie działa.
kleinfreund
Działa dla mnie, nie dokładnie jak tutaj, ale z sudo su.
Дмитрий Полянин
1

Rozwiązanie Sergiy Kolodyazhnyy działało dla mnie. Chociaż musiałem dodać modyfikację Exec=bash -c "sleep 5 .... Rzeczywiście dzieje się tak, ponieważ PulseAudio modyfikuje ALSA.
Innym rozwiązaniem jest wyłączenie PulseAudio podczas uruchamiania (patrz tutaj ):

sudo cp /etc/pulse/client.conf /etc/pulse/client.confbackup
sudo nano /etc/pulse/client.conf

Znajdź ; autospawn = yes, usuń ;i zmień na:

autospawn = no

To rozwiązanie również działało dla mnie, chociaż Ubuntu na początku dał mi błąd programu systemowego. Ponieważ nienawidzę tego rodzaju wiadomości, skorzystałem z pierwszego rozwiązania.

worek
źródło
0

Alsa-Json-Gateway https://github.com/fulup-bzh/AlsaJsonGateway obsługuje przechowywanie / przywracanie sesji kart dźwiękowych z JSON / REST API

  • list session / jsonapi? request = list-sesji i cardid = hw: 0
  • store session / jsonapi? request = session-store & cardid = hw: 0 & args = MySoundConfig
  • restore / jsonapi? request = load-session & cardid = hw: 0 & args = MySoundConfig
fulup
źródło
0

Dla tych, których odpowiedź @Sergiy Kolodyazhnyy nie zadziałała, spróbuj zastąpić alsactlją pełną ścieżką (bez względu na to, co ci which alsactlzwróciło).

dev93
źródło