Chinaunix首页 | 论坛 | 博客
  • 博客访问: 195906
  • 博文数量: 42
  • 博客积分: 1455
  • 博客等级: 上尉
  • 技术积分: 365
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-19 10:20
文章分类

全部博文(42)

文章存档

2016年(1)

2013年(8)

2012年(7)

2011年(2)

2010年(1)

2008年(4)

2007年(13)

2006年(6)

我的朋友

分类: LINUX

2006-12-13 22:20:20

声卡驱动ALSA安装指南(第三版)

版本更新:对安装细节再次进行增强,添加双声卡安装。以0.9.4为例(解决了rh9的安装使用问题)



ALSA最新版本下载


ALSA,即Advanced Linux Sound Architecture。它是一款优秀的声卡驱动,能驱动大部分的声卡,而且支持多音频流,支持多声卡等等。使我们能在linux下享受到美妙的音乐。

当前ALSA最新版本为0.9.4。可于ALSA的官方网站下载。本文以alsa-0.9.4为例。

安装前准备。如果你曾安装oss商业驱动,需要在安装alsa前先停止oss服务。
执行:ntsysv 在出现的终端图形配置界面中查询oss服务并取消它。
之后对/etc/modules.conf进行编辑,将有关oss的部分删除。(可将/etc/modules.conf改名,做为备份。另将/etc/modules.conf.pre-oss改名为modules.conf。
改名后如有其它设备不能加载,请参考原modules.conf对新的modules.conf进行修改)
保存重启即可。

ALSA安装步骤:

一 ALSA的安装需要linux内核支持及有一个linux内核源码包。
其实alsa的安装很容易,但关键在于对linux源码包的配置。有些朋友安装alsa不成功,大多问题出在linux源码包设置上。建议各位朋友认真对待这一步的操作。

1.确认有无内核源码包
到 /usr/src目录下看看是否有一个名字类似linux-2.x.x-x的目录,100多MB。如果没有就得自己装一个。发行版光盘中带有。

2. 做一个源码包的链接。
ln -s linux-2.x.x-x linux (其中linux-2.x.x-x为源码包的目录名称)
注意:升级过内核的朋友请注意,做链接时应指向当前使用的内核的源码包。

3.确认内核配置。alsa需要内核支持声卡。一般现在的发行版大多已做了相应配置,自己毋须再做。
确认方法:执行:modinfo soundcore
如果返回信息表明有soundcore这个文件,那么表明当前内核已经做了相应配置。可进行alsa的安装。
另外,少数linux发行版本在安装alsa时可能需要.configure文件,请作以下确认
执行:cd /usr/src/linux
ls -a 看是否有.config这个文件。(当前流行的rh8、rh9等版本linux均不需要它。)

而以下操作仅供内核没有打开相应设置的朋友操作。
进入内核源码包目录,执行:make xconfig
在Sound项下的Sound card support需要以模块选中。(sound以外的选项请自己决定)
保存退出后,执行:make dep
一般做完这一步就可以了。但之后编译alsa不成功的话,也许需要正式编译一个linux的新内核,以支持alsa的安装。

注意:关于redhat发行版2.4.20-xx系列内核的问题。
rehat发行版中,如果是使用最新的2.4.20-xx内核及其源码包,例如redhat9,应该安装alsa-0.9.4版本,而之前的0.9.x是不能安装使用的。虽然alsa能成功编译,但在alsa模块加载时会出错而不能使用。


二 去下载alsa-0.9.4的源码包







把包放进一个目录,以后所有操作均在该目录下执行。
解压,执行:

tar jxvf alsa-driver-0.9.4.tar.bz2
tar jxvf alsa-lib-0.9.4.tar.bz2
tar jxvf alsa-utils-0.9.4.tar.bz2

另外两个我用得不多,有需要的可以自己试用。

三 编译alsa 执行:

cd alsa-driver-0.9.4
./configure

注意:如果你知道自己声卡的模块名称,则可以用: ./configure --with-cards=模块名称 如我的是8235芯片的软声卡,则为:./configure --with-cards=via82xx 但如果不清楚的话,还是请用./congfigure 以编译alsa所支持的所有声卡的驱动。
如果声卡是ISA的pnp声卡,请用./configure --with-isapnp=yes
./configure 的详细参数可通过执行:./configure –help进行查询。

之后:
make
make install
./snddevices
cd utils
./alsaconf 之后出现一个终端图形配置界面,一路回车便可以配置好声卡了。
如果alsaconf没能自动配置你的声卡,那么你可能需要手动配置/etc/modules.conf文件。
请参考以下字段:

# ISA PnP support (don't use IRQs 9,10,11,12,13)
options isapnp isapnp_reserve_irq=9,10,11,12,13

# ALSA native device support
alias char-major-116 snd
options snd major=116 cards_limit=1
alias snd-card-0 snd-声卡模块名称
options snd-声卡模块名称 index=0

# 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

将以上几段加入/etc/modules.conf。
之后执行:modprobe snd-声卡模块名称。

注意:有时第一次执行alsa模块加载操作后,会出现一些出错信息,此时可重启一次系统,再加载一次模块看是否能解决问题。

如果是双声卡,请手动编辑/etc/modules.conf文件。参考以下字段:
# ISA PnP support (don't use IRQs 9,10,11,12,13)
# it's only an example to reserve some IRQs for another hardware
options isapnp isapnp_reserve_irq=9,10,11,12,13

# ALSA native device support
alias char-major-116 snd
options snd major=116 cards_limit=2
alias snd-card-0 snd-第一块声卡模块名称
alias snd-card-1 snd-第二块声卡模块名称
options snd-第一块声卡模块名称 index=0
options snd-第二块声卡模块名称 index=1

# 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
alias sound-slot-1 snd-card-1
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss

将以上字段加入/etc/modules.conf
之后分别执行:modprobe snd-第一块声卡模块名称
modprobe snd-第二块声卡模块名称
(8. Configure alsa

sudo alsaconf

Select your soundcard (in my case it was the first one) and hit the default option on everything else.

9. Load the new alsa module into the kernel.

sudo /etc/init.d/alsasound reload)

四 配置
因为linux默认静音,所以需要配置音量、保存设置并每次启动后加载。

1.配置音量
推荐使用alsactl+alsamixer或alsactl+gamix 调整选项很丰富。方法如下:
a. 进入alsa-lib-0.9.4目录,执行:
./configure
make
make install
以上安装alsalib。

b.进入alsa-utils-0.9.4目录,执行:
./configure
make
make install
以上安装alsactl、alsamixer、amixer、aplay工具。

c.下载gamix

解压:tar zxvf gamix-1.99.p14.tar.gz
cd gamix-1.99.p14
./configure
make
make install
以上安装gamix

d.以alsactl+gamix为例:
执行:gamix
调整合适音量,之后退出。
注意:在调节音量时,如果播放CD无声,应先检查CD音频线是否正确连接到声卡或主板上。
至于无法播放mp3或无声,而系统为rh8、rh9的话,应到下载一个mp3播放插件来支持mp3的播放。推荐使用播放wav文件来调节音量以避免以上情况。
另外,还需要正确选择声音开/关选项。

2.保存当前音量配置
执行:alsactl store

3.每次启动加载
提供三种方法。
第一种方法:(最简单,往系统加入alsasound服务,使用alsa本身的脚本进行控制,第一推荐)
执行:chkconfig --add alsasound
之后重启即可。

第二种方法:(也很简单)
编辑/etc/rc.d/rc.local
加上这一行:alsactl restore
保存重启即可。

第三种方法:(最早想到,所以也放上来了)
GNOME桌面
从这里开始-首选项-更多首选项-会话
在会话面板中选启动程序,点增加,在启动命令框中输入:alsactl restore ,然后确定,关闭。
KDE桌面
运行混音器(kmix),文件-将当前音量保存为默认值-退出。
之后重启即可。

4.注意:用KDE的朋友,可能需要关闭aRTs服务。
运行控制中心,声音和多媒体-声音系统-aRTs ,取消在KDE启动时启动aRTs声音服务器即可。

其他几点补充说明
1.ALSA的安装一般没有什么困难,但如果出现错误,请多执行lsmod,因为alsa是以模块形式加载的,可通过lsmod的输出信息得知alsa的加载情况,从而判断出错原因。
其中:
snd为alsa的核心模块,为声卡驱动模块及其它alsa的模块所调用,首先载入。如果没有它,alsa将不能工作。
soundcore为linux内核声音支持模块。snd需要它。
2.如果alsa成功编译,模块成功加载,音量调节也没错的话,所以步骤都正确执行却依然无声的话,请参考alsa的文档,看看是否该声卡需要附加特定参数。例如es1988芯片的声卡便可能需要加特定的参数才能发声。笔记本的用户特别需要注意这一点。
3.至于alsa的相关应用,如多音频流支持、多声卡同时工作、音质增强等,将另文介绍。


上一个版本见如下的帖子

阅读(1285) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~