LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3753|回复: 12

linux系统声卡驱动完美解决方案Alsa driver+esd server+alsa server

[复制链接]
发表于 2004-10-18 23:45:02 | 显示全部楼层 |阅读模式
首先声明一点其实esd并不比alsa(这里指alsaserver)差,这个比较当然只能在服务器层来比较,
不过可怜的是esd使用的是oss驱动程序,下面还有说明。(下面凡未做特殊说明alsa指alsa server,而非asla driver不要混淆driver和server的概念)

记得几年前在linux下能听到声音都是件令人兴奋不已的事情,现在却基本近乎完美,既然是这样了我们应该追求她,实现她。

首先列举一下待解决的问题:
1.多程序运行:多多媒体程序同时运行发声,这个我们知道,alsa,esd,arts server可以做到(论坛中相关帖子太多不再介绍);
2.音质问题:音质大部分的应该都是alsa drivers比oss要好,故选择alsa driver 为基础;
3.使用相关性:大家不知是否发现alsa中多多媒体程序运行时音量调节会影响到所有程序音量,不具不相关性;相信这个大家都不喜欢吧,而esd却没有这个问题,恰恰很好;
4.软件兼容性:像类似stardict,recitword等一些软件只能使用esd;
5.esd的延时:其实这只是驱动的问题,使用asla driver就不会有这个问题了,这里单独列出一条是因为将采用esd为主,alsa为辅。

这个帖子源于我的在debian中两个小贴的总结,因为我同时也是gentoo用户,同时为了让linux下的更多用户知道,在此再做介绍:

1.alsa系统已经配置完成,这个比较简单,论坛中相关帖子很多,不再介绍;
2.安装esd系统,这个emerge相关软件就行了;
3.让esd使用alsa driver,安装libesd-alsa库取代libesd库,这样从原来默认使用oss驱动改成alsa driver;
4.运行esd,当然这个时候alsa应该也是在运行的。
5.应用程序配置使用esd就行了。当然不行的还可以采用alsa,或者不用配置,默认也可以工作得很好,不过esd的调音互不干扰的特色没了。

注3:
让esd支持alsa并不要安装别的什么文件,只是在编译esd库的时候安装配置选项设置--enable-alsa而得到支持alsa的库而已。
编译esound让他支持alsa即可,在编译之前(务必)先安装好alsa环境,然后编译esound
/configure --enable-alsa
这参数不加也行,这个参数默认是打开的,但之前的准备工作,alsa环境是必须的,因为他会自动检测是否要支持alsa。


参看我的:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=147618
贴和第
由于我电脑现只有debian系统没有在gentoo下进行测试,只提供一种思路,以及在debian下的实现实例(如上),希望大家测试跟贴。
发表于 2004-10-19 10:05:25 | 显示全部楼层
关于alsa,我编进内核,或者编成模块都搞不定
bash-2.05b# alsaconf
modinfo: could not find module snd
modinfo: could not find module snd
modinfo: could not find module snd

bash-2.05b#

虽然可以进去alsaconf设置,但是由于modinfo: could not find module snd。所以设置里头找不到声卡:(

现在用oss但是听歌时候,qq的提示都没有了。歌一结束,就老响刚才的qq声音,也就是不能同时进行两个声音文件的运行:(
发表于 2004-10-19 10:15:30 | 显示全部楼层
是qq和oss用的是同一个通道,所以qq的都压到最后了。:)。
发表于 2004-10-19 10:22:36 | 显示全部楼层
1.多程序运行:多多媒体程序同时运行发声,这个我们知道,alsa,esd,arts server可以做到

alsa可以做到这个,oss做不到吧:(
发表于 2004-10-19 11:07:16 | 显示全部楼层
单独使用alsa的多音频流,目前realplay10不行,其它的,包括stardict,都可以的。

至于提到的音量调一个,会影响到全部的问题。目前我这里的情况是,单独调节软件内部的音量,bmp(beep)会影响到全部,totem只影响自己。我同时开了bmp和totem两个。

因此,esound,已经好久没有打开过了。

因为,新的gnome-2.8可以调节是用alsa还是esd还是oss作为声音的服务了。

 楼主| 发表于 2004-10-19 19:44:26 | 显示全部楼层

对于alsa驱动安装简单说明

这是思路:
1.安装驱动模块2.4及以下的kernel要下载软件包编译,对于2.6的内核编译内核相关模块就行了
2.生成设备文件,这个在alsa套件中有个snddevices的程序运行即可
3.然后编写相应的模块配置文件。
4.加载驱动用modprobe

官方的文档我觉得相当好,可以到官方网站找来看看。

第二步必须,第二步不做也能工作,但他只安装了alsa驱动,没有提供alsa server接口,如mixer等,像alsamixer调音器用不了alsactl用不了,当然调用alsa server的esd也会用不了。
发表于 2004-10-19 20:04:58 | 显示全部楼层
关于这一步
2.生成设备文件,这个在alsa套件中有个snddevices的程序运行即可

如果是2.6的内核。那在哪里运行snddevices?

有的时候加载为模块了,但modprobe snd-via82xx,会提示not found
 楼主| 发表于 2004-10-19 20:18:50 | 显示全部楼层

在debian中的alsa-base中有

我家的电脑没有gentoo,而公司那台电脑又没有声卡也没去配他,还是请其他兄弟帮帮忙吧。
emerge alsa-tools alsa-utils
我猜这两个里面也许有吧。
还有我觉得你的内核编译有些问题。
发表于 2004-10-20 08:49:24 | 显示全部楼层
关于esd延时的问题,能不能解释地详细一点,那里可以找到
libesd-alsa?
如何安装?
 楼主| 发表于 2004-10-20 09:45:51 | 显示全部楼层

我今天下载了下esound代码看看

原来esound中就有这个,在编译之前(务必)先安装好alsa环境,安后编译esound
/configure --enable-alsa
这参数不加也行,这个参数默认是打开的,但之前的准备工作,alsa环境是必须的,因为他会自动检测是否要支持alsa。

我看了我系统中的libesd-alsa其实就是把/usr/lib/下的库文件
/usr/lib/libesd.so.0.2.29
/usr/lib/libesddsp.so.0.2.29
换成了支持alsa的库文件而已,所以不要特别下载别的东西。可能我前面的说法有些误导现在也已经修改了下。

在gentoo下最简单了,装好alsa环境后,卸载esound,再重新安装就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表