วิธีบันทึกการตั้งค่า AlsaMixer


77

สวัสดีฉันลองใช้โปรแกรม "EarCandy" ตอนนี้ฉันมี / มีปัญหามากมาย ตอนแรกฉันไม่ได้ยินเสียงใด ๆ และตอนนี้เสียงเบามาก PS Earcandy ถูกลบออกจากฮาร์ดดิสก์ของฉันแล้ว

เมื่อฉันเปิดโปรแกรม Alsamixer ด้วย:

alsamixer

ฉันเห็นว่าระดับเสียงของลำโพงอยู่ที่ศูนย์ ตอนนี้ฉันผลักมันไปที่ปริมาณสูงสุด แต่หลังจากรีสตาร์ททุกครั้งฉันต้องเปิดโปรแกรม alsamixer อีกครั้งและต้องตั้งระดับเสียงให้สูงสุดอีกครั้ง ฉันสามารถบันทึกการตั้งค่าสำหรับ alsamixer หรือมีวิธีอื่นในการแก้ไขปัญหาได้หรือไม่ ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


75

ดำเนินการ:

sudo alsactl store

สิ่งนี้ควรบันทึกการกำหนดค่า alsamixer /etc/asound.stateที่ได้รับการโหลดทุกครั้งที่เริ่มต้น


14
แล็ปท็อปของฉันยังคงรีเซ็ตการกำหนดค่าของฉันแม้หลังจากเรียกใช้คำสั่งข้างต้น มันอ้างว่าจะเก็บมัน/var/lib/alsa/asound.stateไว้ มีเหตุผลอื่นอีกหรือไม่ที่ใช้ไม่ได้
Azmisov

1
ฉันมีปัญหาเดียวกันและพฤติกรรมเดียวกันเมื่อฉันลอง sudo alsactl store
JeanSibelius

1
@Azmisov: คุณสามารถทดลองกับระบบเพิ่มเติมดังต่อไปนี้: (1) จัดเก็บการกำหนดค่า (2) เริ่มต้นalsamixerและเปลี่ยนระดับต้นแบบ (2) กู้คืนการกำหนดค่า (3) ตรวจสอบว่าระดับปริญญาโทถูกเรียกคืน หากข้างต้นเป็นไปตามที่คาดการณ์ไว้ให้ตรวจสอบว่าการเรียกคืนนั้นถูกกระตุ้นจริง ๆ เมื่อบูตระบบ ( chkconfig alsa-utilsควรแสดงalsa-utils on)
dma_k

คำตอบนี้แก้ปัญหา SPDIF ของฉัน: askubuntu.com/questions/541847/…
neves

1
เมื่อฉันเรียกมันทำให้ฉันข้อผิดพลาดดังต่อไปนี้sudo alsactl store alsactl: get_controls:567: snd_ctl_open error: Invalid argument
user2513149

24

คุณสามารถบันทึกการตั้งค่ามิกเซอร์ลงในไฟล์ที่กำหนดเองด้วยalsactl:

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

โหลด:

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

2
คำตอบยอดนิยมใช้ไม่ได้สำหรับฉัน แต่สิ่งนี้ได้! ฉันสร้างไฟล์ config และวางมันลงที่และเพิ่มสายโหลดของฉัน/etc/asound.state /etc/rc.local
จอห์น

นี่เป็นทางออกที่ถูกต้องสำหรับฉัน ... แต่ฉันต้องระบุพา ธ สัมบูรณ์ไปยังไฟล์. config ภายในrc.local(แม้ว่ามันจะทำงานได้ดีกับญาติเพราะมันเป็นผู้ใช้คนเดียวกัน .. ขอบคุณและฉันหวังว่าคำใบ้ของฉันจะช่วยใครซักคนด้วย
davidhq

12

คำตอบของ Seppo Erviäläนั้นถูกต้อง แต่ยังไม่สมบูรณ์ ดังที่ dma_k จดบันทึกแล้วระบุman alsactlอย่างชัดเจนในตอนท้ายว่า

/var/lib/alsa/asound.state (หรือไฟล์ใด ๆ ที่คุณระบุด้วยแฟล็ก -f) ใช้เพื่อจัดเก็บการตั้งค่าปัจจุบันสำหรับการ์ดเสียงของคุณ

palacsinit ตั้งข้อสังเกตอย่างเหมาะสมว่าคุณสามารถจัดเก็บการกำหนดค่าลงในไฟล์ของคุณด้วย

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

และโหลดซ้ำด้วย

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

สิ่งนี้สามารถปรับปรุงให้ดียิ่งขึ้นได้โดยการวางบรรทัดที่สองคำสั่ง restore ลงในไฟล์. desktop

คุณจะต้องเรียกใช้nano ~/.config/autostart/alsarestore.desktopซึ่งจะเปิดตัวแก้ไขข้อความนาโนและสร้าง~/.config/autostart/alsarestore.desktopไฟล์ รายการใน~/.config/autostart/ไดเรกทอรีใช้เพื่อเริ่มโปรแกรมและบริการอัตโนมัติสำหรับผู้ใช้เฉพาะเมื่อเข้าสู่ระบบ / เริ่มต้นแบบกราฟิก

เนื้อหาของไฟล์ .desktop ควรเป็นดังนี้:

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

เหนือสิ่งอื่นใดคุณสามารถจัดเก็บการกำหนดค่าของคุณ/etc/asound.stateและเชื่อมโยงกับมัน/var/lib/alsa/asound.stateแต่อันนี้เป็นข้อเสนอแนะมากกว่าการทดสอบวิธีแก้ปัญหา


นี่เป็นวิธีเดียวที่ฉันทำงานให้ฉันบน Ubuntu Xenial 16.04
Francisco Costa

1
คำสั่ง "store" และ "restore" นั้นใช้ได้ผลดีสำหรับการควบคุมด้วยตนเอง อย่างไรก็ตามเมื่อฉันตั้งค่าไฟล์ autostart ด้วยคำสั่ง "คืนค่า" ฉันเห็นการตั้งค่าไมโครโฟนใน alsamixer กำลังถูกเขียนใหม่เพื่อปิดเสียงและผลลัพธ์เป็นแบบคงที่ ถ้าฉันทำคำสั่งกู้คืนด้วยตนเองทั้งหมดก็ใช้ได้ ทำไมการตั้งค่าไมโครโฟนจึงเปลี่ยนแปลงและไม่ได้รับการแก้ไขโดยไฟล์การกำหนดค่าที่จัดเก็บอย่างเหมาะสมโดยระบบเริ่มอัตโนมัติ?
แบรดฮอร์น

@BradHorn เป็นไปได้ที่คุณจะมีสิ่งอื่นที่เขียนทับคำสั่งของคุณ มันทำงาน แต่แล้วก็มีสิ่งอื่นยกเลิกการเปลี่ยนแปลงของมัน
Sergiy Kolodyazhnyy

ความคิดใดที่อาจเป็น?
Brad Horn

1
@BradHorn ไม่ได้อยู่ด้านบนของหัวของฉันไม่ ลองเปลี่ยนExecบรรทัดในไฟล์จะเป็น.desktop Exec=bash -c "sleep 5 && alsactl --file ~/.config/asound.state restore"สิ่งนี้จะแนะนำการหน่วงเวลา 5 วินาทีดังนั้นสิ่งใดก็ตามที่เขียนทับการตั้งค่าของคุณจะทำงานก่อนจากนั้นคำสั่งกู้คืนจะทำงานหลังจากนั้น ลองเล่นด้วยsleepค่าหากยังคงแทนที่การตั้งค่าของคุณ
Sergiy Kolodyazhnyy

2

หลังจาก 2 เดือนของการพยายามทำให้ "sudo alsactl store" ใช้งานได้ในที่สุดฉันก็สามารถทำได้ ประการแรกพิมพ์ใน terminal "alsamixer" เพื่อเข้าสู่ alsamixer UI จากนั้นกำหนดค่าที่คุณต้องการ (เช่นเพิ่มระดับลำโพง / หูฟังหรือเปิดเสียงสิ่งที่กด "m" บนแป้นพิมพ์) ตอนนี้เป็นส่วนที่สำคัญที่สุด ก่อนที่คุณจะออกจาก alsamixer ให้เปิดเทอร์มินัลใหม่และทำ: "sudo su" เพื่อรับสิทธิ์สูง (โปรดระวังคำสั่งที่คุณใช้ในโหมด "sudo su" เพราะคุณอาจทำลายระบบของคุณ) จากนั้นทำ "alsactl store" เพื่อบันทึก การตั้งค่า alsa จากนั้นปิดทั้งสองเครื่องแล้วรีสตาร์ทเครื่องคอมพิวเตอร์ สิ่งนี้จะทำงาน


มันไม่ได้ผลสำหรับฉัน
kleinfreund

งานสำหรับฉันไม่ exacly วิธีการที่นี่ sudo suแต่มี
ДмитрийПолянин

1

วิธีแก้ปัญหาของ Sergiy Kolodyazhnyy ใช้ได้สำหรับฉัน Exec=bash -c "sleep 5 ...ถึงแม้ว่าผมจะมีการเพิ่มการเปลี่ยนแปลงของ สิ่งนี้เกิดขึ้นจริงเพราะ PulseAudio กำลังแก้ไข ALSA
อีกวิธีการหนึ่งคือปิดการใช้งาน PulseAudio ในระหว่างการบู๊ต (ดูที่นี่ ):

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

ค้นหา; autospawn = yesลบ;และเปลี่ยนเป็น:

autospawn = no

โซลูชันนี้ใช้งานได้สำหรับฉันแม้ว่า Ubuntu จะให้ข้อผิดพลาดของโปรแกรมระบบเมื่อเริ่มต้น เนื่องจากฉันเกลียดข้อความประเภทนี้ฉันจึงใช้วิธีแก้ปัญหาแรก



0

Alsa-Json-Gateway https://github.com/fulup-bzh/AlsaJsonGatewayรองรับการจัดเก็บ / กู้คืนเซสชันการ์ดเสียงจาก JSON / REST API

  • list session / jsonapi? request = session-list & cardid = hw: 0
  • store session / jsonapi? request = session-store & cardid = hw: 0 & args = MySoundConfig
  • คืนค่า / jsonapi? request = session-load & cardid = hw: 0 & args = MySoundConfig

0

สำหรับผู้ที่ตอบ @Sergiy Kolodyazhnyy 's ไม่ได้ทำงานลองเปลี่ยนalsactlโดยเส้นทางที่สมบูรณ์ (ใดwhich alsactlส่งกลับให้คุณ)

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