如何编译 ALSA 1.0.24?

如何编译 ALSA 1.0.24?

我在主 PC 上使用 Ubuntu Maverick,很久以前我就按照自己喜欢的方式配置了系统(耶!)。一切都很好,直到最近的 Wine 版本发布,它显然是使用 ALSA 1.0.24 制作的,但遗憾的是 Maverick 无法使用。这意味着我在 Wine 中失去了所有声音,这可不是那么有趣!

我发现本教程关于如何构建 ALSA 1.0.24,但我不确定该过程是否“足够安全”可以使用。“足够安全”的意思是“它会破坏我的系统,无法修复”。文章开头的大红字免责声明是否合理?所描述的过程有多危险?我应该冒险尝试一下,还是咬紧牙关,从头开始安装 Mint,就像我在笔记本电脑上做的那样(看起来成功了)?

更新:

在按照 Gilles 的建议尝试为 Lucid 安装 ALSA 二进制文件后,我在播放 Flash 中的某些内容时遇到了其他应用程序声音被屏蔽的问题。为了解决这个问题,我做了以下事情:

/etc/asound.conf使用以下内容创建:

pcm.pulse { type pulse }
ctl.pulse { type pulse }
pcm.!default { type pulse }
ctl.!default { type pulse }

然后只需使用以下命令重新启动 ALSA:

sudo alsa reload

我发现这一切都此论坛主题但选择重新启动 ALSA 而不是重新启动整个系统,并且它成功了!

答案1

这个警告被严重夸大了。它的主要问题是它会将文件安装在 和 下/lib/usr覆盖 Ubuntu 发行版提供的一些文件。这意味着卸载或升级手动安装的驱动程序将不容易。我建议./configure --prefix=/usr/local在编译库和实用程序时指定,以便您安装的不属于发行版的所有内容都在 下/usr/local。对于驱动程序,您没有这种奢侈:它们必须在 下/lib/modules,但幸运的是这些并不那么重要。

尽管如此,我建议仔细检查并记录正在安装的文件。make -n install在运行之前,请运行以查看此信息sudo make install。或者,安装stow包,创建一个目录/usr/local/stow/alsa-1.0.24,授予自己对该目录的写入权限(例如sudo chown hannibal /usr/local/stow/alsa-1.0.24),指定./configure --prefix=/usr/local/stow/alsa-1.0.24,并make install在没有的情况下运行sudo。然后sudo stow alsa-1.0.24/usr/local/stow目录运行。最后,将下的模块符号链接/usr/local/stow/alsa-1.0.24/lib/modules到下的相应目录/lib/modules并运行sudo depmod -a

从上游源代码编译软件包并不是最简单的解决方案。带有适用于 lucid 的 Alsa 1.0.24 软件包的 PPA;这些二进制包可能适用于 maverick。或者您可以尝试重新编译来自 natty 的 1.0.24 软件包

相关内容