ฉันซื้อการ์ดเสียง USB ฉันต้องการตั้งค่าเดสก์ท็อป Linux ของฉันเพื่อให้สามารถใช้อุปกรณ์ USB ได้หากเสียบและสลับโดยอัตโนมัติเมื่อเสียบอุปกรณ์ (ไม่) เป็นไปได้และอย่างไร
ฉันซื้อการ์ดเสียง USB ฉันต้องการตั้งค่าเดสก์ท็อป Linux ของฉันเพื่อให้สามารถใช้อุปกรณ์ USB ได้หากเสียบและสลับโดยอัตโนมัติเมื่อเสียบอุปกรณ์ (ไม่) เป็นไปได้และอย่างไร
คำตอบ:
ค้นหาบัตรของคุณด้วย
$ cat /proc/asound/cards
ในการรับชื่อการ์ด ALSA ที่ถูกต้องให้ใช้aplay
:
$ aplay -l
จากนั้นสร้าง/etc/asound.conf
โดยทำดังนี้:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
แทนที่ "บัตร 1" ด้วยหมายเลขหรือชื่อบัตรของคุณที่ระบุไว้ข้างต้น
หรือคุณสามารถเปลี่ยนการสั่งซื้อบัตรของคุณเพื่อให้การ์ด USB ของคุณจะเป็นบัตร 0 asound.conf
และมันจะทำงานโดยไม่มีการแก้ไข
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
นี่เป็นวิธีการเลือกการ์ดเสียงเริ่มต้นใน Alsa คุณอาจต้องการติดตั้ง Alsa เพื่อให้วิธีนี้ใช้งานได้หากคุณใช้ Pulse Audio
cat / proc / asound / modules
จะแสดงรายการโมดูลเสียงของคุณเอาต์พุตของคำสั่งจะเป็นเช่นนี้ (เช่น):
0 snd_hda_intel
1 snd_usb_intel
คุณสามารถเข้าใจได้ง่ายว่าอันไหนเป็นการ์ดเสียง usb ของคุณจากด้านบน
nano /etc/modprobe.d/alsa-base.conf
แก้ไข alsa-base.conf นี้ในแบบที่บัตรที่คุณต้องการมีดัชนี = -2 / 0 และบัตรอื่นมีดัชนี = -1 / 1 (ติดกับ -2 และ -1)
ตัวเลือก snd_hda_intel index = -1
options snd_usb_intel index = -2
ในกรณีนี้อุปกรณ์ usb เป็นอุปกรณ์ที่ต้องการ
หากคุณมีการ์ด differnt สองใบที่มีชื่อเดียวกันจากเอาต์พุตเช่นนี้:
ตัวเลือก snd_hda_intel
ตัวเลือก snd_hda_intel
ออกคำสั่งนี้เพื่อค้นหาสิ่งที่:
cat / proc / asound / การ์ด
จากนั้นแก้ไขโมดูลด้วยวิธีนี้:
ตัวเลือก snd_hda_intel เปิดใช้งาน = 1 ดัชนี = 0
ตัวเลือก snd_hda_intel เปิดใช้งาน = 0 ดัชนี = 1
อาจจำเป็นต้องบูตเครื่องใหม่ดังนั้นคุณอาจต้องสลับการ์ดเสียงของคุณเอง
ฉันไม่สามารถรับเอาต์พุตจากอุปกรณ์ USB ของฉันได้ cat /proc/asound/modules
ผลลัพธ์ของฉันคือ:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
ฉันลองคำตอบทั้งสองอธิบายไว้ที่นี่ซึ่งไม่ได้ช่วย (ด้วยชุดค่าดัชนีจำนวนมากและการรีสตาร์ทจำนวนมาก) ฉันคิดว่าปัญหาคืออุปกรณ์ USB ของฉันเริ่มต้นหลังจากบูตเครื่อง อะไรก็ตามวิธีแก้ปัญหาการทำงานของฉันคือขึ้นบัญชีดำกับอุปกรณ์เสียง 2 ตัวโดยอัพเดท/etc/modprobe.d/blacklist.conf
เป็น:
blacklist snd_hda_intel
คำตอบจาก Matija Nalis เพียงครึ่งเดียวทำงานให้ฉัน (alsamixer เปลี่ยนค่าเริ่มต้น แต่สิ่งอื่น ๆ เช่น aplay และ firefox ติดอยู่กับค่าเริ่มต้นผิด) ตัวอย่างจาก debian wiki นี้เหมาะกับฉัน (บน CentOS-6 แล็ปท็อป):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
สำหรับเร็กคอร์ด: ALSA มีการบันทึกไม่ดีและโดยเฉพาะอย่างยิ่งสิ่งที่ง่ายมากเช่นการเลือกการ์ดที่จะใช้ยากเกินไป แย่กว่านั้นดูเหมือนว่าจะเปลี่ยนระหว่างระบบ นอกจากนี้ฉันยังได้รับแท็ก "Generic_1" จาก aplay -l ซึ่งมันจะปรากฏเป็น "การ์ด 1" ในรายการ คนอื่นดูเหมือนจะใช้มันดังนั้นฉันก็ทำแบบเดียวกัน ... มันหมายความว่าอะไรฉันไม่สามารถพูดได้
ในขณะที่คุณสามารถเปลี่ยนบัตร alsa เริ่มต้นได้โดยการแก้ไข. asoundrc หรือระบบ asound.conf มีปัญหาที่สำคัญสองสามประการเกี่ยวกับวิธีการนี้
มันเปราะบางและต้องให้แอปพลิเคชันรีสตาร์ทเพื่อรับเกียรติ
หากคุณต้องการเปลี่ยนการ์ดได้อย่างรวดเร็วคุณจำเป็นต้องใช้ตัวบันทึกเสียงที่ทำให้แอปพลิเคชันจากการ์ดเสียงถูกต้องเช่น pulseaudio
นี่คือตัวแปรของคำตอบของ Matija Nalis และ Tel นี่คือสิ่งที่ได้ผลสำหรับฉัน:
~ / .asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, เสียง HDMI เป็นการ์ด 0 และการ์ดเสียง USB เป็นการ์ด 1 ตาม aplay -l)
หมายเหตุ: วิธีการอื่นไม่ได้ผลสำหรับฉันเนื่องจาก / proc / asound / modules ไม่มีอยู่และไม่มีโมดูลเสียง hdmi ในบัญชีดำหรือวางไว้ที่ลำดับความสำคัญต่ำจะถูกฝังลงในเคอร์เนล ดูเหมือนว่าฉันจะต้องคอมไพล์เคอร์เนลใหม่โดยไม่รองรับเสียง hdmi เพื่อปิดการใช้งานอย่างสมบูรณ์