Tôi có một chiếc netbook Acer Aspire One 522 có card âm thanh Intel HDA dựa trên chipset Conexant CX20584. Mặc dù KDE phát ra âm thanh khi khởi động, flash và có thể nhiều ứng dụng khác tìm kiếm /dev/dsp
thiết bị không thể phát ra âm thanh qua nó, mang lại trải nghiệm đa phương tiện khá vô dụng.
Khi tôi kiểm tra các thiết bị phát lại ALSA của mình aplay -l
, tôi có thể thấy thiết bị âm thanh chính được nhận dạng là thẻ 1 thay vì 0, được nối với HDMI thay thế:
**** 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
Bằng cách đó tôi nhận được một /dev/dsp1
, nhưng có vẻ như hầu hết các ứng dụng chỉ được mã hóa cứng để sử dụng /dev/dsp
, vì vậy tôi đã tìm kiếm một số cách để trao đổi các chỉ số thẻ. Sau một số nghiên cứu thông qua tài liệu ALSA, tôi đã cố gắng gán chỉ mục cho các mô-đun trình điều khiển được sử dụng bởi HDMI và Intel HDA với /etc/modprobe.d/asound.conf
tệp này :
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
Mặc dù vậy, điều đó không hiệu quả, và dựa trên một số liên kết bị lãng quên trong câu trả lời vô tận của tôi để tìm câu trả lời, có vẻ là do các index
chỉ thị này được cho là phối hợp thứ tự tải mô-đun, nhưng cả hai codec Conexant và HDMI này đều sử dụng cùng một HDA Intel mô-đun trình điều khiển, vì vậy nó dường như không áp dụng trong trường hợp này.
Điều đó nói rằng, có cách nào để xác định chỉ mục thẻ chính xác khi các thiết bị sử dụng cùng mô-đun trình điều khiển ALSA (intel HDA trong trường hợp này) không?