Bagaimana cara menyimpan pengaturan AlsaMixer?

77

Halo Saya sudah mencoba program "EarCandy", sekarang saya punya / punya banyak masalah. Awalnya saya tidak mendapatkan suara dan sekarang volumenya sangat rendah. PS Earcandy sekarang dihapus dari harddisk saya.

Ketika saya membuka Alsamixer dengan:

alsamixer

Saya melihat bahwa volume untuk speaker adalah nol. Sekarang saya dorong ke volume maksimal. Tetapi setelah setiap restart, saya harus membuka alsamixer lagi dan harus mengatur volume ke max lagi. Bisakah saya menyimpan pengaturan untuk alsamixer atau apakah ada cara lain untuk memperbaiki masalah? masukkan deskripsi gambar di sini

Jsterr
sumber

Jawaban:

75

Menjalankan:

sudo alsactl store

Ini harus menyimpan konfigurasi alsamixer /etc/asound.stateyang dimuat setiap startup.

Seppo Erviälä
sumber
14
Laptop saya terus mengatur ulang konfigurasi saya, bahkan setelah menjalankan perintah di atas. Ia mengklaim menyimpannya /var/lib/alsa/asound.state. Apakah ada alasan lain untuk itu tidak berfungsi?
Azmisov
1
Saya memiliki masalah yang persis sama, dan perilaku yang persis sama ketika saya mencoba sudo juga toko.
JeanSibelius
1
@Ammisov: Anda dapat bereksperimen lebih jauh dengan sistem seperti berikut: (1) menyimpan konfigurasi (2) mulai alsamixerdan ubah tingkat master (2) pulihkan konfigurasi (3) periksa tingkat master telah dipulihkan. Jika di atas seperti yang diharapkan, periksa apakah pemulihan sebenarnya dipicu pada boot sistem ( chkconfig alsa-utilsseharusnya ditampilkan alsa-utils on).
dma_k
Jawaban ini memecahkan masalah SPDIF saya: askubuntu.com/questions/541847/…
neves
1
Ketika saya menjalankannya sudo alsactl storememberi saya kesalahan berikut alsactl: get_controls:567: snd_ctl_open error: Invalid argument.
user2513149
24

Anda juga dapat menyimpan pengaturan mixer ke dalam file khusus dengan alsactl:

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

Memuat ulang:

alsactl --file ~/.config/asound.state restore
palacsint
sumber
2
Jawaban teratas tidak berhasil untuk saya tetapi ini berhasil! Saya membuat file config dan meletakkannya di /etc/asound.statedan menambahkan baris reload ke file saya /etc/rc.local.
John
Ini adalah solusi yang tepat bagi saya ... tapi saya harus menentukan path absolut ke file .config di dalam rc.local(walaupun itu harus bekerja bahkan dengan relatif karena itu pengguna yang sama .. tetapi tidak). terima kasih dan saya harap petunjuk saya juga membantu seseorang
davidhq
12

Jawaban Seppo Erviälä benar tetapi tidak lengkap. Seperti yang sudah dicatat dma_k, man alsactldengan jelas menyatakan pada akhirnya bahwa,

/var/lib/alsa/asound.state (atau file apa pun yang Anda tentukan dengan flag -f) digunakan untuk menyimpan pengaturan saat ini untuk kartu suara Anda.

palacsinit dengan tepat mencatat bahwa Anda dapat menyimpan config ke dalam file Anda

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

dan memuat ulang dengan

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

Ini dapat lebih ditingkatkan dengan menempatkan baris kedua, perintah restore ke file .desktop.

Anda harus menjalankan nano ~/.config/autostart/alsarestore.desktop, yang akan membuka editor teks nano dan membuat ~/.config/autostart/alsarestore.desktopfile. Entri dalam ~/.config/autostart/direktori digunakan untuk memulai kembali program dan layanan untuk pengguna tertentu pada startup / login grafis.

Isi file .desktop harus sebagai berikut:

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

Di antara hal-hal lain, Anda dapat menyimpan konfigurasi Anda /etc/asound.statedan menghubungkannya /var/lib/alsa/asound.state, tetapi yang ini lebih merupakan saran daripada solusi yang diuji

Sergiy Kolodyazhnyy
sumber
Ini adalah satu-satunya cara saya bekerja untuk saya di Ubuntu Xenial 16.04
Francisco Costa
1
Perintah "store" dan "restore" berfungsi dengan baik untuk kontrol manual. Namun, ketika saya mengatur file autostart dengan perintah "restore", saya melihat pengaturan mic di alsamixer sedang ditulis ulang untuk bisu dan hasilnya statis. Jika saya secara manual melakukan perintah restore, semuanya baik-baik saja. Mengapa pengaturan mic berubah dan tidak diperbaiki oleh file konfigurasi yang disimpan dengan tepat oleh autostart ???
Brad Horn
@BradHorn mungkin Anda memiliki sesuatu yang lain yang menimpa perintah Anda. Itu berjalan, tapi kemudian sesuatu yang lain membatalkan perubahannya
Sergiy Kolodyazhnyy
ada ide apa itu?
Brad Horn
1
@BradHorn bukan dari atas kepalaku, tidak. Coba ubah Execbaris menjadi .desktopfile Exec=bash -c "sleep 5 && alsactl --file ~/.config/asound.state restore". Itu akan menyebabkan penundaan 5 detik, jadi apa pun yang menimpa pengaturan Anda akan berjalan terlebih dahulu, dan kemudian perintah pemulihan Anda akan berjalan setelah itu. Cobalah bermain dengan sleepnilai - nilai jika itu masih menimpa pengaturan Anda.
Sergiy Kolodyazhnyy
2

Setelah 2 bulan mencoba membuat "sudo alsactl store" untuk bekerja, saya akhirnya berhasil melakukannya. Pertama-tama ketik terminal "alsamixer" untuk memasuki UI alsamixer. Kemudian buat konfigurasi yang Anda butuhkan (mis. Tingkatkan speaker / headphone atau bunyikan sesuatu dengan menekan "m" pada keyboard). Sekarang bagian terpenting. Sebelum Anda keluar dari alsamixer, buka terminal baru dan lakukan: "sudo su" untuk mendapatkan hak istimewa yang tinggi (Berhati-hatilah dengan perintah yang Anda gunakan dalam mode "sudo su" karena Anda dapat menghancurkan sistem Anda) dan kemudian lakukan "alsactl store" untuk menyimpan pengaturan alsa. Kemudian tutup kedua terminal dan nyalakan kembali komputer Anda. Ini akan melakukan pekerjaan.

tisfo
sumber
Ini tidak berhasil untuk saya.
kleinfreund
Bekerja untuk saya, tidak persis bagaimana di sini, tetapi dengan sudo su.
Дмитрий Полянин
1

Solusi Sergiy Kolodyazhnyy bekerja untuk saya. Meskipun saya harus menambahkan modifikasi Exec=bash -c "sleep 5 .... Memang ini terjadi karena PulseAudio memodifikasi ALSA.
Solusi lain adalah menonaktifkan PulseAudio saat boot (lihat di sini ):

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

Temukan ; autospawn = yes, hapus ;dan ubah menjadi:

autospawn = no

Solusi ini juga berfungsi untuk saya, meskipun Ubuntu memberi saya kesalahan program sistem pada awalnya. Karena saya benci pesan semacam ini, saya menggunakan solusi pertama.

kantung
sumber
0

Setelah menjalankan sudo alsamixermixer harus mempertahankan perubahan yang Anda buat.

Lihat Suara tidak berfungsi setelah profil saya memuat jawaban yang juga dapat Anda temukan petunjuknya.

Semoga berhasil!

Geppettvs D'Constanzo
sumber
0

Alsa-Json-Gateway https://github.com/fulup-bzh/AlsaJsonGateway mendukung penyimpanan / pemulihan sesi kartu suara dari JSON / REST API

  • daftar sesi / jsonapi? request = daftar sesi & cardid = hw: 0
  • sesi store / jsonapi? request = sesi-store & cardid = hw: 0 & args = MySoundConfig
  • restore / jsonapi? request = sesi-load & cardid = hw: 0 & args = MySoundConfig
fulup
sumber
0

Bagi mereka yang jawaban @Sergiy Kolodyazhnyy tidak berfungsi, coba ganti alsactldengan jalur lengkapnya (apa pun yang which alsactldikembalikan kepada Anda).

dev93
sumber