Linux下声卡驱动软件ALSA的安装与配置
2000-11-23 7:00
发布者:netbull 阅读次数:5585
LinuxByte注:本站有ALSA最新版本下载
张子
几年以来,尽管Linux凭借开放、自由的特性和强大的性能,在全球服务器市场上所向披靡,占据越来越多的市场份额,但是若作为桌面软件,Linux的多媒体特性一直不能让人非常满意。比如,Linux系统自带的声卡驱动程序能够支持的声卡很少。绝大多数市场上流行的声卡产品都难以得到系统的支持。
这种情况正在迅速转变。许多厂商看到大势所趋,积极参加驱动程序的开发工作。一些组织和个人也开始一展身手,做了很多有益的探索。
今天介绍的这套软件是一套声卡驱动程序包---ALSA, 全称是Advanced Linux Sound Architecture。它是GNU大旗下的软件之一。顾名思义,它可以在Linux下面驱动声卡设备。
它可以支持大多数流行的声卡。模块化架构。支持全双工,数字音频等声卡特性。
在http://www.alsa-project.org所属的FTP站点可以下载最新的软件包。如果你有兴趣和足够的能力,也可以加入开发队伍。向全世界展现聪明才智。
下面详细介绍ALSA的全部安装配置过程和注意事项,还会给出支持的声卡列表。
安装前请你对照列表,检查自己的声卡是否被支持。以免白忙一场。
一:硬件及其软件环境要求。
作者的硬件环境:赛扬366 CPU/微星6199va主板/128MB kingmax内存/10.2GB金钻2硬盘/8X CDROM/WINFast L2300显卡/雅马哈724芯片的声卡
硬盘分区和操作系统软件:Windows98+Windows2000+BluePoint1.0(蓝点中文Linux,与Redhat 完全兼容)。使用LILO启动器。
ALSA对Linux软件环境的要求:没有要求特别的Linux版本,但是要求内核版本在2.2.x之上。如果你的Linux系统内核低于此版本,请重新编译新的核心。BluePoint1.0的内核版本是2.2.13。
二:下载软件。
ALSA目前最新版本是0.5.9b,文件全名是alsa-driver-0.5.9b.tar.bz2。采用的新的bz2压缩格式,占用空间更小。除了它之外,正常操作还需要下面的软件包:
alsa-utils-0.5.9a.tar.bz2----------实用程序包
alsa-lib-0.5.9.tar.bz2-------------编译实用程序需要的库文件
如果你是使用Windows操作系统下载的软件,那么需要把它拷贝到Linux系统里面。
首先请使用root用户登录并开始安装过程。
1:在Linux里面装载含有此文件的Windows分区,
输入命令:
“mount -t vfat /dev/hadx /win98 ”其中hdax中的“x”是Win98硬盘分区号码。如果对此有任何疑问,请请教其他熟悉的朋友。
2:进入下载的目录,把alsa-driver-0.5.9b.tar.bz2和其它两个文件拷贝到一子目录中,
输入命令:
“cp alsa-driver-0.5.9* /root”
3:解压缩文件。
输入命令:
“bzip2 -dv alsa-driver-0.5.9b.tar.bz2”
此时用“ls”命令查看,当前目录里面只有alsa-driver-0.5.9b.tar,说明bzip压缩已经解除。
输入命令:
“tar vfx alsa-driver-0.5.9b.tar”
程序自动生成一个名为---alsa-driver-0.5.9b的子目录。
对其它两个软件包重复此步骤,解开压缩。使用“ls”命令查看,就会发现相应的目录了。
如果你对命令行不够熟悉,可以查看帮助信息和书籍。也可以启动X-Window窗口环境,在文件管理程序里面选择相应压缩文件,然后在文件菜单里面选择解压缩命令就可以了。
三:安装驱动文件。
1:打开内核中的声卡支持。
绝大多数情况下,此步骤可以忽略,因为基本所有Linux发行版本内核默认状态都是支持声卡设备的。
2:运行脚本。
输入命令:
“./configure”
如果你的声卡属于ISA即插即用类型,请输入下面的命令:
“./configure --with-isapnp=yes”
输入命令:
“make install”
注意此步骤操作时间较长,请耐心等候。如果一切正常,程序最后会提示模块编译成功!并且警告声卡默认的状态是静音,需要使用“amixer”等实用程序调节音量。
“amixer”等命令正是alsa-utils-0.5.9a.tar.bz2附带的,需要编译才能使用。
如果make命令不能执行,那么你需要找出Linux安装盘,把有关开发编译的文件包安装进系统。具体操作请参考软件手册。
输入命令:
“./snddevices”
脚本程序会在"/dev"目录自动创建有关声卡设备。
四:安装库文件和实用程序。
由于“amixer”等程序需要找到对应的库文件才能编译,所以需要首先安装alsa-lib-0.5.9.tar.bz2。
进入相应的子目录alsa-lib-0.5.9,
输入命令:
“./configure”
输入命令:
“make install”
这两步做好后,回到上层目录,进入alsa-utils-0.5.9a子目录,
输入命令:
“./configure”
输入命令:
“make install”
注意,如果上面步骤中“./configure”出错,恐怕你需要使用“-prefix”参数来指定路径。
如:在安装库文件时尝试使用“./configure -prefix=/usr/include/linux”
在安装实用程序时尝试“./configure -prefix=/usr/include/sys”
五:编辑/etc/modules.conf文件。
这一步恐怕是最困难的一步了。不过下面给出范例,一般只要按照各自系统情况改动就可以了。
1:建立modules.conf文件。
因为系统里面有一个演示文件,所以只要复制一份,重新修改即可
输入命令:
“cp modules.conf.sample modules.conf”
2:修改modules.conf。
使用任何一种文本编辑器,如VI,打开此文件,在最下面加入下列内容:
“
#ALSA portion
alias char-major-116 snd
#注释:ALSA使用的主设备号码
alias snd-card-0 snd-card-ymfpci
#snd-card-0是系统里面第一个声卡设备,如果系统有两个以上声卡,
#可以使用snd-card-1 snd-card-2等方法映射
# snd-card-ymfpci是声卡设备名称.
#OSS /free portion----因为ALSA需要内核中OSS SoundCore和其它设备的支持
alias char-major-14 soundcore
#系统中soundcore的主设备号码
alias sound-slot-0 snd-card-0
#第一个声卡对应的插槽
#下面是声卡驱动模块,sound-service-0指第一块声卡,如果系统里面只有一块,原封不动#拷贝即可.否则按照此格式加入其它声卡驱动模块
#card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
#ISA声卡还需要指定IRQ/IO地址,因为市场上已经很少,在此不再探讨。有需要可以查
#看此软件的相关说明。
”
六:系统测试和声卡设备调整。
1:编辑好/etc/modules.conf文件后,需要使用系统程序测试模块是否可以正常加载。
输入命令:
“modprobe snd-card-ymfpci”
系统直接进入提示符状态,表明加载正常。不过,如果你搞不清到底加载什么模块,可以去/lib/modules/2.2.13/misc下面去查看,可加载声卡模块都在里面。凭借模块名字就可以知道自己需要什么文件了。
2:调节音量。
输入命令:
“amixer”
命令提示如下:
“
Capabilities: volume
Channels: Front-Left Front-Right
Limits: min = 0, max = 16383
Front-Left: 0 [0%] [on] [---]
Front-Right: 0 [0%] [on] [---]
Group ADC Record,0
Capabilities: volume
Channels: Front-Left Front-Right
Limits: min = 0, max = 16383
Front-Left: 0 [0%] [on] [---]
Front-Right: 0 [0%] [on] [---]
Group Capture Volume,0
Capabilities: volume
Channels: Front-Left Front-Right
Limits: min = 0, max = 16383
Front-Left: 0 [0%] [on] [---]
Front-Right: 0 [0%] [on] [---]
Group Input Gain,0
Capabilities: volume mute jointly-mute
Channels: Front-Left Front-Right
Limits: min = 0, max = 15
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group Master Mono,0
Capabilities: volume mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group Master,0
Capabilities: volume mute jointly-mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group Aux,0
Capabilities: volume mute jointly-mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group Video,0
Capabilities: volume mute jointly-mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group CD,0
Capabilities: volume mute jointly-mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group Line,0
Capabilities: volume mute jointly-mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group MIC,0
Capabilities: volume mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [capture]
Front-Right: 0 [0%] [mute] [capture]
Group Phone,0
Capabilities: volume mute capture exclusive-capture
Capture exclusive group: 1
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group PC Speaker,0
Capabilities: volume mute
Channels: Front-Left Front-Right
Limits: min = 0, max = 15
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
Group PCM,0
Capabilities: volume mute jointly-mute
Channels: Front-Left Front-Right
Limits: min = 0, max = 31
Front-Left: 0 [0%] [mute] [---]
Front-Right: 0 [0%] [mute] [---]
”
来源:Linux中文资源第一站