LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-06-08, 14:40 第 1 帖
rr19xx
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 341
  精华: 2
 

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



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

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



ALSA最新版本下载
http://download.linuxsir.org/alsa/

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

当前ALSA最新版本为0.9.4。可于ALSA的官方网站www.alsa-project.org下载。本文以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模块加载时会出错而不能使用。


二 去www.alsa-project.org下载alsa-0.9.4的源码包

ftp://ftp.alsa-project.org/pub/drive...-0.9.4.tar.bz2
ftp://ftp.alsa-project.org/pub/lib/a...-0.9.4.tar.bz2
ftp://ftp.alsa-project.org/pub/utils...-0.9.4.tar.bz2
ftp://ftp.alsa-project.org/pub/tools...-0.9.4.tar.bz2
ftp://ftp.alsa-project.org/pub/oss-l...-0.9.4.tar.bz2

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

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-第二块声卡模块名称

四 配置
因为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
http://www1.tcnet.ne.jp/fmurata/linu....99.p14.tar.gz
解压: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的话,应到www.xmms.org下载一个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的相关应用,如多音频流支持、多声卡同时工作、音质增强等,将另文介绍。


上一个版本见如下的帖子
http://www.linuxsir.org/bbs/showthre...threadid=35097
  rr19xx 当前离线   回复时引用此帖
旧 03-06-08, 15:02 第 2 帖
北南南北
 
北南南北 的头像
 
 
管理员  
  注册日期: Apr 2002
  帖子: 24,300
  精华: 483
 

台兄辛苦了。。。


rr19xx兄,这把帖子更新了,为了让大家不至于参考乱了,我就把这个帖子单列出来。如果有参考以前的那个版本的,我也把链接挂上。这样更便于讨论。另外台兄写的第二版,跟帖数太多了,不便于讨论,所以我把那个帖子关了,并重新链接了这个新的更新。为了不把第二版的帖子弄丢,也是为了数据安全,所以就没有把第二版删除。

不知这样更新是否可以,请台兄指教,多谢。

北南 呈上







__________________
请弟兄们发帖时要写个好标题,多谢!
签名不支持html和bbcode,请弟兄为了版面的整洁,请更改签名档,谢谢!
请各版版主及初学Linux的弟兄,请在您的签名写上机器的配置,以及您所用的系统(包装版本号,内核),谢谢。

Slackware64 13.x kernel 2.6.29.6
****************************************
因为太笨,所以努力;
****************************************
  北南南北 当前离线   回复时引用此帖
旧 03-06-08, 15:12 第 3 帖
rr19xx
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 341
  精华: 2
 

我没有意见,谢谢北南兄更新。
  rr19xx 当前离线   回复时引用此帖
旧 03-06-08, 15:23 第 4 帖
eqiuzhang
 
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 5
  精华: 0
 

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


你好,我在安装这步的时候不能成功

原因如下:
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for mawk... no
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix...
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for ALSA CFLAGS...
checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread
checking for libasound headers version >= 0.9.0... not present.
configure: error: Sufficiently new version of libasound not found.

请教这是为什么?
我用的系统是rh9. kernel 是2.4.20-8
我的声卡是creative PCI 128.

谢谢!!
  eqiuzhang 当前离线   回复时引用此帖
旧 03-06-08, 15:33 第 5 帖
eqiuzhang
 
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 5
  精华: 0
 

楼主兄不在么?
  eqiuzhang 当前离线   回复时引用此帖
旧 03-06-08, 15:39 第 6 帖
北南南北
 
北南南北 的头像
 
 
管理员  
  注册日期: Apr 2002
  帖子: 24,300
  精华: 483
 

引用:
我的声卡是creative PCI 128.
这个声卡本来就已经支持了。不用再另装驱动了。

#sndconfig

如果xmms没有声音,要打个xmms的补丁。
  北南南北 当前离线   回复时引用此帖
旧 03-06-08, 15:52 第 7 帖
eqiuzhang
 
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 5
  精华: 0
 

在运行 modprobe 程序时出现了下列错误: │
│ │
│ /lib/modules/2.4.20-8/kernel/drivers/sound/es1371.o: │
│ init_module: No such device │
│ /lib/modules/2.4.20-8/kernel/drivers/sound/es1371.o: insmod │
│ /lib/modules/2.4.20-8/kernel/drivers/sound/es1371.o failed │
│ /lib/modules/2.4.20-8/kernel/drivers/sound/es1371.o: insmod │
│ sound-slot-0 failed │


你好,我的声卡驱动出现了以上错误, 是在运行sndconfig时出现的,请问该如何解决?
  eqiuzhang 当前离线   回复时引用此帖
旧 03-06-08, 15:57 第 8 帖
eqiuzhang
 
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 5
  精华: 0
 

需不需要重新装一个驱动讷?

要装的话是装oss好还是alsa的好?

谢谢!!
  eqiuzhang 当前离线   回复时引用此帖
旧 03-06-08, 18:27 第 9 帖
rr19xx
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 341
  精华: 2
 

标题: 给eqiuzhang


回答你第一个问题。
你安装utils出错,从提示看,应该是alsa-lib没有安装。安装utils需要有alsa-lib。
不行再发帖。请把信息写详细一些。
  rr19xx 当前离线   回复时引用此帖
旧 03-06-08, 18:37 第 10 帖
eqiuzhang
 
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 5
  精华: 0
 

谢谢楼主:
我装alsa-lib时花了将近30min,最后按提示应该是安装成功了.

我现在装了一个oss的驱动,但是听歌的时候,声音忽大忽小的,而且有些声音根本,感觉很杂乱,不知是何原因?

要是不能搞定,是否应该将oss卸掉?

用alsa会不会出现类似的问题?

谢谢!!
  eqiuzhang 当前离线   回复时引用此帖
旧 03-06-08, 18:44 第 11 帖
rr19xx
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 341
  精华: 2
 

标题: 给eqiuzhang


alsa-lib的安装用不了30min,最多2~3min(xp1700+),请把信息发详细一点,这样才能尽快解决问题。
  rr19xx 当前离线   回复时引用此帖
旧 03-06-13, 07:40 第 12 帖
tower
 
tower 的头像
 
 
注册会员  
  注册日期: May 2003
  帖子: 234
  精华: 2
 

标题: 编译alsa时奇怪的问题?


我装的是RH8,kernel source从 kernel.org下了2.4.20 ,重新编译过。
放在 /usr/src/linux-2.4.20下, 有/usr/src/linux这个符号连接

我声卡是via8233的,下了alsa 0.94的driver后,编译时报错:
checking for kernel version... The file
/lib/modules/2.4.20_030604/build/include/linux/version.h
does not exist

检查发现 /lib/modules/2.4.20_030604/build 是 /usr/src/linux的符号连接,就是我的kernel source中缺 /usr/src/linux/include/linux/version.h这个文件

后来看了一下 2.4.18的是有这个文件???

另外,kernel.org上
The latest stable version of the Linux kernel is: 2.4.20 2002-11-28 23:54 UTC F V VI C Changelog
我下的是 F ,那么V VI 是还要另加的patch?:o
  tower 当前离线   回复时引用此帖
旧 03-06-13, 08:58 第 13 帖
tower
 
tower 的头像
 
 
注册会员  
  注册日期: May 2003
  帖子: 234
  精华: 2
 

各位用2.4.20的有这个version.h文件吗?
  tower 当前离线   回复时引用此帖
旧 03-06-13, 09:29 第 14 帖
tower
 
tower 的头像
 
 
注册会员  
  注册日期: May 2003
  帖子: 234
  精华: 2
 

自己搞定了,再来一次 make dep就有这个文件了。
有另一个问题
直到下次重编制前,才能用make mrproper?
我原来每次编好,都再 make mrproper,怕下次忘了

原来编好了还在用!
  tower 当前离线   回复时引用此帖
旧 03-06-13, 09:44 第 15 帖
rr19xx
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 341
  精华: 2
 

是的.直到下次重编制前,才需要用make mrproper.
你之前没有version.h文件就是因为执行了make mrproper
它会把你对linux的配置都去除.
  rr19xx 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 16:52


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org