Linux的声卡驱动安装方法

来源:岁月联盟 编辑:exp 时间:2012-03-14

假如你的声卡被当前的Linux所支持,那么恭喜你买到了一块Designed for Linux的声卡。在安装Linux的过程中,系统会提示你选择声卡的类型,从声卡的列表中选择你的声卡类型即可。经过测试如果听到Linux的创始人Linus的声音,则表示声卡已正确配置,启动Linux后即可发声。

ISA 声卡如果并没列在声卡列表中,不妨选择Sound Blaster Compatible,再选择IRQ、DMA和IO等值即可。要查看当前Linux所支持的声卡,可查看/usr/src/linux/sound的文档。

如果在安装过程中声卡不能正确配置,说明你的声卡尚未被支持,这时可采取两种方法:一是重新安装新的内核,一般新的内核支持的声卡比较多,例如2.3.34版本支持的声卡的种类已比较多,如Creative 公司的系列声卡、Ciruss Logical Semiconductor 423x/

461x等。二是安装新的驱动程序,这里有两个选择:安装4Front Technology 公司的OpenSound 驱动程序;另外是ALSA开发的alsaDriver,下面分别进行讲解。

安装之前,要求有modules工具及核心支持modules。


一、OpenSound介绍


1.发展历程

OpenSound由Hannu Savolainen开发,他也是最早开发Linux核心音效卡驱动程序的程序员之一,Hannu后来继续开发 OpenSound System,一个由4Front Technologies 出售、支持多种 Unix 系统的商业版音效驱动程序。RedHat公司后来资助 Alan Cox(内核开发上的第二号人物)来增强核心音效驱动程序,使它们完全模块化。这些修改过的驱动程序由 RedHat 在他们的5.0到5.2版发行套件中使用。目前这些改变已经从 2.0版整合进标准核心中。

Alan Cox是现在标准核心音效驱动程序的维护人,现在Hannu每隔一段时间仍会加进一些由商业版分割出来的程序代码,你在编译你的新内核时,在Sound选项里面所看到的oss/free驱动就是。

2.优点

商业版本的 OpenSound System 驱动程序(由4Front Technologies 发展)比较起来容易设定,也支持较多的声卡,特别是新的音效卡。它对标准核心驱动程序写的应用程序兼容。

3.缺点

用户需要花20美元购买,但不会得到源代码,可在决定要不要买以前先下载试用版。

4.安装方法

(1)取得与你内核相适应的驱动程序(在《中国计算机报》光盘InfoCD第四期光盘中有其2.2.14版),用tar -zxvf 文件名 将其解压至任意目录。

(2)执行该目录下的./oss-install,首先出现版权对话框,选择“accept”,接着会出现“release notes”对话框,选择“accept”。回车后自动进行新内核测试及声卡配置,解压文件如果没有检测出你的声卡或结果不正确,可手动从声卡列表中选择你的声卡。

(3)每次加载声卡驱动需要执行安装oss目录下的soundon,退出时执行soundoff即可。


二、ALSA介绍


1.发展历程

Jaroslav Kysela及其它人为Gravis UltraSound声卡写了可选的驱动程序。这个计划后来改名为Advanced Linux Sound Architecture(先进 Linux 音效架构,简称ALSA),产生了一个他们认为更加通用, 且可用来取代核心中的音效驱动程序。

ALSA 驱动程序支持许多常见的声卡,而且是全双工、全模块化,与现存核心中的音效架构兼容。你可以在http://www.alsa-project.org  网站了解更多ALSA的信息。

2.安装方法

(1)从上述网站取得最新的驱动程序,目前最新的版本为0.5.7,文件名为alsa-drive-0.5.7.tar.bz2,大小为725kB,将此文件放在根目录下。注意它不是用gzip压缩的,而是用bzip2压缩的(最新的内核也是用它压缩的),因此其解压方法是:

bzip2 -d alsa-drive-0.5.7.tar.bz2

tar -xvf alsa-drive-0.5.7.tar

这样会在根目录下建立一个alsa-drive-0.5.7的目录。

(2)进入alsa-drive-0.5.7目录,执行./configure进行配置。

(3)执行make install 进行编译及安装,会将各种声卡的驱动编译成模块,并将其复制到/lib/modules下,故在安装好声卡驱动之后可将此目录删除。

(4)执行./snddevices,建立新的声音设备文件。

(5)为保证和oss/free驱动的兼容性,我们还必须修改/etc/modules.conf(老版本为/etc/conf.modules),代码如下(以Intel810为例):

# ALSA native device support

alias char-major-116 snd

注释:声卡作为字符设备标志为116

options snd snd_major=116 snd_cards_limit=1

alias snd-card-0 snd-card-intel8x0

注释:设定是哪个声卡,可参考 /modules目录下的声卡设备名

options snd-card-intel8x0 snd_index=0 snd_id="intel810"

注释:只有一个声卡故snd_index=0,snd_id内容自设,不超过15个字符

# OSS/Free setup

alias char-major-14 soundcore

alias sound-slot-0 snd-card-0

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

看起来很复杂,其实以上程序只需要将第四、五行的snd-card-intel8x0换成你的声卡设备名即可,一般是snd-card-产品名。或者从该目录下install文档中粘贴一部分后再修改。

(6)执行modprobe snd-intel8x0 加载声卡驱动程序,将snd-intel8x0换成snd-你的产品名,可参考/modules目录下的声卡设备名。

 

(7)在X窗口下打开混音器,调节音量用x11amp播放一首MP3,如果一切正常,则可听到动听的音乐了。

(8)可在/etc/rc.d/rc.locale中加上“modprobe snd-intel8x0”,这样每次启动自动加载。

另外,目前的ALSA 驱动程序支持的声卡还不算多,主要有ESS 1978/1938系列、Creative SoundBlaster live!系列、CMI 8330/8338/8738系列等,具体支持的声卡列表参考解压后的doc/soundcar文件。

比较有名的声卡厂商,一般在自己的主页上列出了基于Linux的声卡驱动程序,如Creative 公司在主页列出了它的声卡驱动(可在InfoCD第四期光盘上找到),而Aureal 系列的8810/8820/8830也可从厂家的主页找到。如果上述方法仍未解决你的问题,不妨到你的声卡芯片制造厂家的主页上找一找。

在安装的过程中最好先看说明文件,看清楚后再来安装,这样可省掉很多的冤枉路,出现故障多看说明。另外要熟悉modprobe、lsmod和insmod等一系列命令,用以上的方法已经在RedHat 6.1和TurboLinux 6.0上对Aureal 8820、CMI 8830、Intel 810、VIA 686A和Crystal semiconductor cs 4236 安装声卡驱动成功。


作者 piaoliuxiong