我有一台Acer Aspire One 522上网本,其中有一个基于Conexant CX20584芯片组的Intel HDA声卡。尽管KDE在启动时确实会输出声音,但是Flash和其他可能寻找/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文档进行了一些研究之后,我尝试使用该/etc/modprobe.d/asound.conf
文件为HDMI和Intel HDA使用的驱动程序模块分配索引:
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)时,是否可以定义正确的卡索引?