เสียงไม่ทำงานเมื่อทั้งการ์ดเสียงและ HDMI ใช้ไดรเวอร์ Intel HDA วิธีการแลกเปลี่ยนคำสั่งการโหลดอุปกรณ์


10

ฉันมีเน็ตบุ๊ก Acer Aspire One 522 ซึ่งมีการ์ดเสียง Intel HDA ที่ใช้ชิปเซ็ต Conexant CX20584 แม้ว่า KDE จะส่งเสียงออกเมื่อเริ่มต้นใช้งานแฟลชและแอปอื่น ๆ อีกมากมายซึ่งมองหา/dev/dspอุปกรณ์เพียงแค่ไม่สามารถส่งเสียงออกมาได้ แต่ให้ประสบการณ์มัลติมีเดียที่ไร้ประโยชน์

เมื่อฉันตรวจสอบอุปกรณ์การเล่น ALSA ของฉันด้วยaplay -lฉันจะเห็นว่าอุปกรณ์เสียงหลักได้รับการจดจำเป็นการ์ด 1 แทนที่จะเป็น 0 ซึ่งถูกเชื่อมต่อกับ HDMI แทน:

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ด้วยวิธีนี้ฉันได้รับ/dev/dsp1แต่ดูเหมือนว่าแอพส่วนใหญ่จะใช้ฮาร์ดโค้ดเพียงอย่างเดียว/dev/dspดังนั้นฉันจึงมองหาวิธีการแลกเปลี่ยนดัชนีการ์ด หลังจากการวิจัยผ่านเอกสาร ALSA ฉันพยายามกำหนดดัชนีให้กับโมดูลไดรเวอร์ที่ใช้โดย HDMI และ Intel HDA ด้วย/etc/modprobe.d/asound.confไฟล์นี้:

options snd cards_limit=2
options snd-hda-codec-conexant index=0
options snd-hda-codec-hdmi index=1
options snd slots=snd-hda-codec-conexant,snd-hda-codec-hdmi

แต่มันก็ไม่ได้ผลและจากลิงค์ที่ลืมไปแล้วในการค้นหาคำตอบที่ไม่รู้จบของฉันดูเหมือนว่าเป็นเพราะindexคำสั่งเหล่านี้ควรจะประสานการสั่งโหลดโมดูล แต่ทั้ง Conexant และตัวแปลงสัญญาณ HDMI เหล่านี้ใช้ Intel HDA เดียวกัน โมดูลไดรเวอร์ดังนั้นจึงดูเหมือนจะไม่ใช้ในกรณีนี้

ที่กล่าวว่ามีวิธีการกำหนดดัชนีบัตรที่ถูกต้องเมื่ออุปกรณ์ใช้โมดูลไดรเวอร์ ALSA เดียวกัน (intel HDA ในกรณีนี้) หรือไม่

คำตอบ:


10

ในที่สุดฉันก็พบคำตอบของปัญหานี้ตามโพสต์นี้จากฟอรัมอื่น (ดู "ความพยายาม 1b" สำหรับการอ้างอิง) ตามที่ระบุไว้หนึ่งสามารถระบุรหัสโมดูลแม้ว่าไดรเวอร์ที่ใช้เหมือนกัน:

alias char-major-116 snd
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel

options snd cards_limit=2

options snd-hda-intel id=SB index=0
options snd-hda-intel id=HDMI index=1

ดังนั้นจึงต้องทำการเรียงลำดับการ์ดที่ถูกต้องและทำให้เสียงทำงานตามที่คาดไว้:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

สำหรับการสมัครกับกรณีอื่น ๆ ที่คล้ายคลึงกันคุณสามารถตรวจสอบ/proc/asoundsymlink ของการ์ดของคุณได้ซึ่งจะเป็นรหัสโมดูลที่คุณต้องการ:

$ ls -l /proc/asound/
total 0
lrwxrwxrwx 1 root root 5 Jan 26 19:19 HDMI -> card1
lrwxrwxrwx 1 root root 5 Jan 26 19:19 SB -> card0
dr-xr-xr-x 4 root root 0 Jan 26 19:19 card0
dr-xr-xr-x 3 root root 0 Jan 26 19:19 card1
-r--r--r-- 1 root root 0 Jan 26 19:19 cards
-r--r--r-- 1 root root 0 Jan 26 19:19 devices
-r--r--r-- 1 root root 0 Jan 26 19:19 hwdep
-r--r--r-- 1 root root 0 Jan 26 19:19 modules
dr-xr-xr-x 2 root root 0 Jan 26 19:19 oss
-r--r--r-- 1 root root 0 Jan 26 19:19 pcm
dr-xr-xr-x 2 root root 0 Jan 26 19:19 seq
-r--r--r-- 1 root root 0 Jan 26 19:19 timers
-r--r--r-- 1 root root 0 Jan 26 19:19 version
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.