Apakah ada cara untuk menyimpan pengaturan alsamixer selain toko alsactl?

9

Masalah root: untuk beberapa alasan, saat boot, Ubuntu 14.04 menonaktifkan (mematikan) output S / PDIF pada kartu suara saya.

Pertanyaan ini dan jawabannya mengindikasikan bahwa sudo alsactl storeakan menyimpan pengaturan alsamixer setelah saya membatalkan mute keluaran S / PDIF, tetapi saat boot, output S / PDIF dimatikan lagi.

Di /var/lib/alsa/asound.state( pastebin ) ada satu entri PDIF, yang saya setel ke "true" dan disimpan; ini telah menghasilkan pemecahan auto-mute untuk "Phantom Jack" saya, tetapi tidak ada entri lain untuk S / PDIF "benar" di asound.state yang dapat saya sesuaikan secara manual.

Ada juga /var/lib/alsa/asound.state.lockfile kosong (11 byte, kosong di gedit) di /alsa/direktori. Apakah ini sesuatu yang harus saya tangani?

JeanSibelius
sumber

Jawaban:

9

Saya memiliki masalah yang sama pada pc saya:
Tampaknya alsa secara efektif mengembalikan SPDIF "unmuted" state saat boot, tetapi kemudian pulseaudio membisukannya ketika sesi pengguna dimulai.
Untuk memverifikasi bahwa pemulihan alsa baik-baik saja, jalankan sudo alsactl restoredi terminal dan lihat apakah suaranya SPDIF.
Untuk memverifikasi bahwa pulseaudio adalah masalahnya, jalankan saja pulseaudio -kuntuk meluncurkan kembali pulseaudio: Anda akan melihat bahwa SPDIF dimatikan.

Karena saya tidak tahu cara mengatur pulseaudio untuk tidak mematikan, ini adalah solusi yang terinspirasi dari sana :

  • Coba jika perintah ini membunyikan saluran SPDIF:
    amixer set IEC958 unmute
  • Jika ya, buat .unmute file tersembunyi:
    gedit .unmute
    rekatkan 4 baris di dalamnya:

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

Simpan dan tutup.
Sekarang, edit .profilefile:
gedit .profile
tambahkan baris ini di akhir:

bash .unmute &

Simpan dan tutup.

Sekarang, coba sesi pembukaan kembali atau reboot.

Catatan : di tautan di atas dari Mageia, mereka menggunakan /etc/rc.local untuk dijalankan alsactl restoresaat boot, itu juga ok. Tetapi menggunakan .profiledan amixer, tidak perlu "sudo" dan itu akan bersuara di setiap sesi mulai untuk login Anda.

laugeo
sumber
1

Saya mengadaptasi jawaban @ laugeo untuk memperbaiki masalah dengan headphone saya.

Masalahnya adalah bahwa headphone diatur untuk bersuara tetapi pada volume 00.

Saya ingin 100, jadi saya menambahkan ini: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

Dan .unmuteskripnya terlihat seperti:

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

Jika Anda ingin membunyikan suara dan mengatur volume ke 100% hanya mengubah saluran. Misalnya untuk saluran induk:

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

Ketika saya menjalankannya sudo alsactl storememberi saya kesalahan berikut

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

Saya harus mengaktifkan kembali saluran Master menggunakan

amixer set Master 100 unmute

dan itu bekerja dengan sempurna untuk kartu suara yang saat ini dipilih. Tapi saluran Master selalu dibungkam lagi setelah boot, jadi saya membuat skrip bernama unmute.shdan mengatur chmod 700agar pengguna lain tidak bisa menjalankannya. Saya mengisi skrip dengan konten berikut:

#!/bin/bash
amixer set Master 100 unmute

dan menyimpannya ke ~/.kde/Autostartdirektori. Jika Anda memiliki Kubuntu atau distro lain dengan KDE, semua skrip dalam direktori itu akan dijalankan saat boot secara otomatis.

Jika Anda tidak memiliki KDE, Anda dapat mencoba menambahkan amixerperintah ke ~/.profilefile.

pengguna2513149
sumber