我运行的是 Debian Unstable x64,但有时使用仅在 i386 中可用的旧版应用程序或游戏。使用普通 ALSA(一个理智的人只能承受这么多的 PulseAudio),i386 应用程序由于插件问题而无法获得任何声音。
我已经安装了 ALSA x64 的均衡器插件,并像.asoundrc
这样指定:
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm "plug:dmix";
}
pcm.!default {
type plug;
slave.pcm plugequal;
}
这意味着 i386 应用程序也尝试加载插件,但失败了,而且根本没有发出任何声音 - 如下所示:
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_equal.so
从表面上看,为两种架构安装插件似乎是不可能的:它们存在冲突,apt
并且使用主目录中的同一个文件来存储它们的设置(我想是吧?.alsaequal.bin
),而它们需要采用不同的格式。(在不移动文件的情况下将一个版本替换为另一个版本会导致错误“.alsaequal.bin 长度错误”。)
每次使用不同的架构时,都要经历所有步骤来更改插件和配置文件,这很麻烦,而且容易出错,所以我想以某种方式避免这种情况。我想到两个选择:
告诉 ALSA 对 i386 和 x64 使用不同的 rcfile
明确指定 .alsaequal.bin 的路径,这可能允许我为两种架构运行插件。(它可以在 .asoundrc 中配置,但这只会导致选项 1。)
不幸的是,我也不知道该怎么做。当然,后者是首选,但由于它并不常用,而且我主要将均衡器用于音乐和电影,所以如果 i386 应用程序直接使用声音就好了。
提前致谢!