มีวิธีบันทึกการตั้งค่า alsamixer นอกเหนือจากที่จัดเก็บ alsactl หรือไม่?


9

ปัญหาราก: ด้วยเหตุผลบางอย่างในการบูต Ubuntu 14.04 ปิดการใช้งาน (ปิดเสียง) เอาท์พุท S / PDIF บนการ์ดเสียงของฉัน

คำถามและคำตอบนี้ระบุว่าsudo alsactl storeจะจัดเก็บการตั้งค่า alsamixer เมื่อฉันเปิดเสียงออก S / PDIF เอาท์พุท แต่ในการบู๊ตเอาต์พุต S / PDIF จะถูกปิดเสียงอีกครั้ง

ใน/var/lib/alsa/asound.state( pastebin ) มีหนึ่งรายการ PDIF ซึ่งฉันได้ตั้งค่าเป็น "จริง" และบันทึก; สิ่งนี้ส่งผลให้การแก้ปัญหาปิดเสียงอัตโนมัติสำหรับ "Phantom Jack" ของฉัน แต่ไม่มีรายการอื่นสำหรับ S / PDIF "จริง" ใน asound.state ที่ฉันสามารถปรับได้ด้วยตนเอง

นอกจากนี้ยังมี/var/lib/alsa/asound.state.lockไฟล์เปล่า(11 ไบต์, ว่างเปล่าใน gedit) ใน/alsa/ไดเรกทอรี นี่คือสิ่งที่ฉันควรจะจัดการกับ?

คำตอบ:


9

ฉันมีปัญหาเดียวกันบนพีซีของฉัน:
ปรากฏว่า alsa คืนค่าสถานะ SPDIF "unmuted" ได้อย่างมีประสิทธิภาพในระหว่างการบู๊ต แต่จากนั้น pulseaudio จะปิดเสียงเมื่อเริ่มเซสชันผู้ใช้
ในการตรวจสอบว่าการเรียกคืนของ alsa นั้นใช้ได้เพียงแค่รันsudo alsactl restoreในเทอร์มินัลแล้วดูว่ามันเปิดเสียง SPDIF หรือไม่
หากต้องการตรวจสอบว่า pulseaudio เป็นปัญหาให้เรียกใช้งานการเรียกใช้pulseaudio -kpulseaudio อีกครั้ง: คุณจะเห็นว่า SPDIF ถูกปิดเสียง

เนื่องจากฉันไม่รู้วิธีการตั้ง pulseaudio สำหรับการไม่ปิดเสียงนี่เป็นวิธีแก้ปัญหาที่ได้รับแรงบันดาลใจจากที่นั่น :

  • ลองถ้าคำสั่งนี้เปิดเสียงช่อง SPDIF:
    amixer set IEC958 unmute
  • ถ้าใช่ให้สร้างไฟล์. unmute ที่ซ่อนอยู่:
    gedit .unmute
    วาง 4 บรรทัดในไฟล์:

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

บันทึกและปิด
ตอนนี้แก้ไข.profileไฟล์:
gedit .profile
เพิ่มบรรทัดนี้ในตอนท้าย:

bash .unmute &

บันทึกและปิด

ตอนนี้ทดสอบเซสชั่นเปิดใหม่หรือรีบูต

หมายเหตุ : ในลิงก์ด้านบนจาก Mageia พวกเขาใช้ /etc/rc.local เพื่อเรียกใช้alsactl restoreในเวลาบูตมันก็โอเค แต่การใช้.profileและ amixer ไม่จำเป็นต้อง "sudo" และมันจะเปิดเสียงในทุกครั้งที่เริ่มต้นสำหรับการเข้าสู่ระบบของคุณ


1

ฉันปรับคำตอบของ @ laugeoเพื่อแก้ไขปัญหาด้วยหูฟังของฉัน

ปัญหาคือว่าหูฟังถูกตั้งค่าให้เปิดเสียง แต่มันอยู่ที่ระดับเสียง 00

ฉันต้องการให้เป็น 100 ดังนั้นฉันจึงเพิ่ม: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

และ.unmuteสคริปต์ดูเหมือนว่า:

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

หากคุณต้องการเปิดเสียงและตั้งระดับเสียงเป็น 100% เพียงเปลี่ยนช่อง ตัวอย่างเช่นสำหรับช่องหลัก:

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

0

เมื่อฉันเรียกใช้sudo alsactl storeมันทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้

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

ฉันต้องการเปิดเสียงช่องหลักโดยใช้

amixer set Master 100 unmute

และทำงานได้อย่างสมบูรณ์แบบสำหรับการ์ดเสียงที่เลือกในปัจจุบัน แต่ช่องมาสเตอร์ถูกปิดเสียงอีกครั้งเสมอหลังจากบูตดังนั้นฉันจึงสร้างสคริปต์ชื่อunmute.shและตั้งค่าchmod 700เพื่อให้ผู้ใช้รายอื่นไม่สามารถเรียกใช้ได้ ฉันเติมสคริปต์ด้วยเนื้อหาต่อไปนี้:

#!/bin/bash
amixer set Master 100 unmute

และบันทึกลงใน~/.kde/Autostartไดเรกทอรี หากคุณมี Kubuntu หรือ distro อื่น ๆ ที่มี KDE สคริปต์ทั้งหมดในไดเรกทอรีนั้นจะถูกเรียกใช้ตอนบูตโดยอัตโนมัติ

หากคุณไม่มี KDE คุณสามารถลองเพิ่มamixerคำสั่งลงใน~/.profileไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.