1. 简介
什么是ALSA?
ALSA是Advanced Linux Sound Architecture,高级Linux声音架构 的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface ,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA已经成为默认的声音子系统,用来替换2.4系列内核中的OSS(Open Sound System ,开放声音系统)。
ALSA的主要特性包括:高效地支持从消费类入门级声卡到专业级音频设备所有类型的音频接口,完全模块化的设计, 支持对称多处理(SMP)和线程安全,对OSS的向后兼容,以及提供了用户空间的alsa-lib 库来简化应用程序的开发。
Gentoo上的ALSA
从历史上来说,Gentoo提供了两种方法可以使ALSA运行在您的系统上:内核自带的 驱动和外部的alsa-driver 软件包。这两种方案基本上完成的是同一项任务;这使得提供对外部软件包的支持异常困难和耗时。Gentoo维护者决定不再继续对alsa-driver 软件包进行支持,而是将他们的资源集中在Linux内核中的ALSA驱动部分。这份指南将只集中介绍如何通过在内核自带的驱动来配置ALSA。
如果你仍然需要alsa-driver 软件包,请发邮件至Gentoo ALSA维护团队 ,并告之为何在内核自带的驱动不能正常工作,记得包括具体的出错信息。
2. 安装ALSA
在您开始之前
首先,您需要知道您的声卡用什么驱动。大多数情况下,声卡(板载和独立声卡)基于PCI总线,lspci 将帮助您获取所需的信息。如果您没有安装lspci ,请emerge sys-apps/pciutils 。如果您使用的是USB声卡,sys-apps/usbutils 的lsusb 或许 有用。ISA声卡的用户,请试一下sys-apps/isapnptools 。下列页面对使用ISA声卡的用户也许 有所帮助:
注意: 为了便于解释,我们在下文中假设用户使用的是基于PCI总线的声卡。 |
下一步,我们将找出声卡的详细信息。
代码 2.1: 声卡的详细信息 |
# lspci -v | grep -i audio |
现在我们知道机器里的声卡是Sound Blaster Live!,而且声卡的制造商是Creative Labs。看一下ALSA声卡支持表 ,选择Creative Labs。您将会跳转到Creative Labs支持设备表的页面,您可以看到SB Live!采用emu10k1 模块。这正是我们所需要的信息。如果您对技术细节有兴趣,您可以点击"详细信息"旁边的的链接,访问emu10k1 的相关页面。
如果您想使用MIDI, 在emerge任何ALSA软件包之前,您必须在/etc/make.conf 里,把midi 加入到您的USE标记中。我们在下文中将会介绍如何设置MIDI支持 。
配置内核
注意: 自从2005.0版,Gentoo Linux使用2.6系列作为默认的内核。请确认您的内核是2.6系列。以下方法并不适用 于2.4内核。 |
让我们配置内核来启用ALSA选项
重要: genkernel 的用户请先运行genkernel --menuconfig all ,然后参考ALSA内核配置 。 |
代码 2.2: 编译内核 |
# cd /usr/src/linux |
注意: 上述例子假设/usr/src/linux 符号链接指向您想使用的内核源代码。在下一步之前,请确定上述条件。 |
现在我们要看一下在2.6内核下要打开哪些选项使得ALSA能够支持我们的声卡。
请注意:由于考虑到易用性,下面的例子中ALSA都被编译成模块。我们建议您采用相同的步骤,从而可以使用alsaconf 来配置您的声卡。请不要 跳过本文的配置 部分。如果您还是希望将其编入内核,请作相应的调整。
代码 2.3: ALSA内核配置 |
Device Drivers ---> |
现在所有的选项都配置好了,您可以(重新)编译内核,声卡的ALSA支持应该在重启后使用新内核时生效。不要忘了更新您的GRUB配置并使用新编译的内核。您可以前进到ALSA实用工具 查看是否一切都工作正常。
3. 配置/测试ALSA
ALSA实用工具
alsa-utils 是ALSA不可或缺的一部分,它集成了一些非常有用的应用程序,包括ALSA启动脚本。所以我们强烈建议您安装alsa-utils 。
代码 3.1: 安装alsa-utils |
# emerge alsa-utils
|
注意: 如果您没有 将ALSA编译成模块,请前进至ALSA启动脚本 部分。否则您需要配置ALSA。由alsa-utils 提供的alsaconf 使得这个过程相当容易。 |
配置
最新版本的udev (>=udev-103 )为您的声卡提供了某种程度上的内核级自动配置。如果可能的话,让内核自动来设置您的声卡。否则如下所示,用alsaconf 来配置您的声卡。
注意: 在运行时alsaconf ,请关闭所有可能 访问声卡的程序。 |
要配置您的声卡,请以root身份登录控制台,键入alsaconf 。
代码 3.2: 启动alsaconf |
# alsaconf
|
您会看到一个由菜单引导的干净界面,它将自动探测您的设备,发现您的声卡。您会被要求从一个列表中选择您的声卡。然后它会请求修改/etc/modules.d/alsa ,自动调整音量到合适的位置,运行update-modules 并启动/etc/init.d/alsasound 服务。alsaconf 退出后,您可以进一步设置ALSA启动脚本。
之后就可以享受声音了。
参考:http://www.gentoo.org/doc/zh_cn/alsa-guide.xml