首先介绍下背景,Linux 音频系统非常不完全简史:
1. OSS3 是 Linux 内核中比较老的声音系统,目前已逐渐废弃
2. OSS4 开发的时候是闭源软件,所以 2002 年 ALSA 被用来替代 OSS3 作为 Linux 内核中的声音构架
3. 2007 年的时候 4Front Technologies 发布了 GPL 版本的 OSS4,此时 ALSA 已成气候
关于 ALSA,OSS4,PulseAudio 和 Jack 一知半解版介绍(Esd 等就此省略一万字):
1. ALSA 目前是 Linux 内核上标准的音频框架,但是仅支持 Linux 系统,没有软件混响。对各种设备的支持非常全面。
2. OSS4 由于错过时机而没能成为官方内核的一部分,但是它的跨平台性远好于 ALSA,支持 Windows、BSD 和许多 UNIX,其 API 据说也更适合开发。OSS4 有实时、低延时的特性,支持软件混响,所有操作在内核层实现。但是对 USB 设备的支持明显薄弱许多。
3. PulseAudio 是为 POSIX 兼容环境设计的一个声音代理程序,内置软件混响。PulseAudio 可以将程序对声音系统的请求代理到 ALSA、OSS 等多种后端,甚至可以通过网络传输这些讯息。
4. Jack 是一个专业级的声音服务系统,跨平台性强,其表现对内核的实时性要求较 PulseAudio 高一些,在一般的操作系统上 Jack 没有前者流行。
Ubuntu 默认使用 ALSA 作为底层声音驱动,程序则与 PulseAudio 交互,这是一个很不错的方案。然而作者偶尔会遇到 ALSA 被独占其他软件无法发声的问题,才随着 #ubuntu-cn 上的 OSS4 热潮赶了把时髦。
换 OSS4 是要折腾的,折腾就是有风险的,以下为折腾的理由:
1. 默认的 ALSA 在你的电脑上不能正常工作
2. 纯粹喜欢 OSS4,不喜欢 ALSA
3. 想要跟风折腾
换 OSS4 的具体好处:
1. 某些情况下音质更好
2. 低延迟,低 CPU 占用
3. 自带软件混响
4. 文档更全面
换 OSS4 的具体坏处:
1. 有些硬件不被支持
2. 对 midi 支持很差
3. USB 声音设备支持仍处于试验性阶段
4. 自己折腾可能会把系统声音系统搞跨
开始说安装 OSS4 的具体方法。
方法一
到 OSS4 官方网站下载免费商业版, 下载页面。
选择相应的版本,比如 Linux 2.6 (x86) (DEB),点 Submit 获得下载链接。注意这个版本按许可证仅可以使用一年。
得到 deb 文件后双击安装(或者 sudo dpkg -i oss-linux*.deb)。
方法二
Ubuntu 10.10 可以直接从软件仓库安装版本略旧的 OSS4:
sudo apt-get install oss4-base oss4-dkms oss4-gtk
Ubuntu 10.04 和 11.04 不可以使用这个方法,10.04 仓库中的 oss4-dkms 存在打包问题无法正确构建内核模块,11.04 因为内核新(linux >= 2.6.36)而 oss4 版本太老而无法成功构建内核模块。
方法三
如果你像我一样喜欢开源版,又喜欢折腾,那么我们一起来编译最新版的。
首先安装 mercurial 以便取回最新版代码:
sudo apt-get install mercurial
取出代码:
cd ~
hg clone :8000/hgroot/opensound/opensound oss-devel
创建编译目录,OSS4 需要在空目录编译:
cd ~/
sudo rm -rf oss42build
mkdir oss42build
编译并安装,假设你的主目录是 /home/aron:
cd oss42build/
NO_WARNING_CHECKS=yes /home/aron/oss-devel/configure --enable-libsalsa=NO
make
sudo make deb
sudo dpkg -i oss*.deb