Gentoo Linux ALSA指南

来源:互联网 发布:中科大软件学院难考吗 编辑:程序博客网 时间:2024/05/07 15:04

Gentoo Linux ALSA指南

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/usbutilslsusb或许有用。ISA声卡的用户,请试一下sys-apps/isapnptools。下列页面对使用ISA声卡的用户也许有所帮助:

  • The ISAPNPTOOLS Page
  • LinuxJournal PnP Article
  • TLDP Sound HowTo

注意: 为了便于解释,我们在下文中假设用户使用的是基于PCI总线的声卡。

下一步,我们将找出声卡的详细信息。

代码 2.1: 声卡的详细信息

# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)

现在我们知道机器里的声卡是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
# make menuconfig

注意: 上述例子假设/usr/src/linux符号链接指向您想使用的内核源代码。在下一步之前,请确定上述条件。

现在我们要看一下在2.6内核下要打开哪些选项使得ALSA能够支持我们的声卡。

请注意:由于考虑到易用性,下面的例子中ALSA都被编译成模块。我们建议您采用相同的步骤,从而可以使用alsaconf来配置您的声卡。请不要跳过本文的配置部分。如果您还是希望将其编入内核,请作相应的调整。

代码 2.3: ALSA内核配置

Device Drivers  --->
Sound --->

(这个选项需要打开)
<M> Sound card support

(确保OSS被禁用)
Open Sound System --->
< > Open Sound System (DEPRECATED)

(回到上一步进入ALSA)
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
(如果您需要MIDI序列化或者路由,请选择此选项)
<M> Sequencer support
(老式的/dev/mixer*和/dev/dsp*支持。推荐。)
<M> OSS Mixer API
<M> OSS PCM (digital audio) API

(您现在可以要支持的设备。通常您只有一种设备,如果您有多块声卡,请在这里激活全部设备。

(主要用于测试和开发,除非您知道自己在作什么,一般用户不需要启用此选项。)
Generic devices --->

(ISA声卡需要此选项)
ISA devices --->
(如果您有Gravis设备,请选择此选项)
<M> Gravis UltraSound Extreme

(回到上一级进入PCI设备,现在大多数声卡是PCI设备)
PCI devices --->
(我们现在为我们的声卡选择emu10k1驱动)
<M> Emu10k1 (SB Live!, Audigy, E-mu APS)
(或者是Intel的声卡)
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
(或者您使用的是VIA的声卡)
<M> VIA 82C686A/B, 8233/8235 AC97 Controller
(这里,为了安全起见可以多选一些, 以免到最后找不到驱动)
(如果您的声卡是USB接口,回到上一级,选择
USB Devices --->

现在所有的选项都配置好了,您可以(重新)编译内核,声卡的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

原创粉丝点击