LinuxSir.cn,穿越时空的Linuxsir!

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

Fedora下声卡驱动全功略(入门篇)

[复制链接]
发表于 2004-1-2 04:32:20 | 显示全部楼层 |阅读模式
绪言

本文针对Fedora core 1系统环境下声卡驱动的问题进行探讨,可随意转载和修补,但出处和原作者必须说明为linuxsir
本文为什么一定要讨论在fedora环境下呢?
1、Fedora是Redhat的个人版产品,用户基础广泛
2、目前主流Linux发行版中,只有Redhat系列没有内置ALSA驱动,在声卡驱动问题上表现突出

目录:
1、了解你的声卡
2、通过简单设置在fedora下让你的声卡发声
3、一些小技巧


1。了解你的声卡
声卡如同计算机的喉舌和耳朵,负责计算机音频的输入、信号转换、输出的工作,有了声卡,我们才能通过电脑欣赏美妙的音乐,才能对着话筒怒吼。99年后,随着计算机的进一步发展,声卡已经由独立的板卡变为PC主板上的一部分,而且声卡已经由独立的DSP芯片模块组变为了一颗小小的dsp信号I/O codec,而原来DSP的处理工作就移交给CPU完成,所以一般我们集成主板的dsp就称为“软声卡”,这类声卡工作时的系统开销比较大,甚至会严重影响系统速度。

关于AC97

AC'97是Audio Codec'97的缩写,它所定义的是一种在主流PC中实现音频特性的方法,后来又扩展了实现Modem的功能。AC'97利用核心芯片组的功能和外围的模拟设备共同实现音频卡/Modem的功能。目前主要有三种AC'97设备:
    Audio Codec,通常缩写为AC'97或AC;
    Modem Codec,通常缩写为MC'97或MC;
    Audio/Modem合成Codec,通常缩写为AMC'97或AM
AC97只是一种规范,不是声卡的名称,并不是说不符合AC97规范的就不是好声卡,比如SoundBlaster AWE这样的古董级ISA声卡,其性能指标在现在也是非常了得;而像MAYA等专业级声卡也不符合AC97的规范。
AC97也不是软声卡的代名词,YAMAHA的YMF724、744、创新的CT5880(PCI128)、SB live系列、FortMedia FM801等性能极佳的“硬”声卡,也符合AC97规范

你的声卡是什么?

我们要如何知道我们主板上的声卡是什么呢?方法很简单,在linux的终端下,运行lspci | grep audio,比如我的机器运行命令后得出结果:
00:0b.0 Multimedia audio controller: Yamaha Corporation YMF-724F [DS-1 Audio Controller] (rev 03)
很明显,这是一块YAMAHA的YMF724声卡
如果是一块AC97的“软声卡”呢?
比如我在一块KT333主板上测试:
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235 AC97 Audio Controller (rev 50)
主板上的AC97 codec为瑞昱的ALC650,而系统直接给出了南桥芯片的型号,这样更验证了AC97 codec并不是一块独立运行的DSP芯片模块,此时我们选择声卡驱动,应以主板南桥为基准:http://www.linuxsir.cn/forum.php?mod=viewthread&tid=76509

2、通过简单设置在fedora下让你的声卡发声
想检测并启动声卡,安装后就会有一个向导做指示,多数朋友就可以使自己的声卡工作了,这个图形界面的配置程序在系统设置-声卡检测中
如果你需要一个文本界面的声卡检测软件,可以下载:
http://mirrors.kernel.org/fedora ... fig-0.70-2.i386.rpm
并安装上,这样在终端下输入sndconfig就可以检测声卡了。如果你的声卡是ISA的,还需要手动分配IRQ等主板资源。

如果这样还不行?
如果声卡检测程序不能正常检测你的声卡或不能使用,此时应该了解一下你的声卡是否已经接好,音频线联接是否正确。如果确认以上的情况都正常,那你需要上Redhat官方网站了解一下你的声卡是否被支持:http://hardware.redhat.com/hcl/


另一方案:官方驱动 (未测试)
首先你必须确认你已经装了内核源码(即内核开发软件包集合)
如果你的主板AC97 codec为CMI9738/9739,且内核内建驱动不能运行 的朋友,可以下载驱动:
http://www.cmedia.com.tw/driver/Linux/Ac97/cmaudio-041.tar.gz
解压,命令终端中进入驱动目录,里面有Readme.txt说明,先运行modprobe soundcore
然后
make
make install
如果成功,安装就完成了,此时还要修改/etc/modules.conf
        alias sound-slot-0 cmaudio
        post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
        pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :
重启计算机后就可使用。

VIA AC97combo for Linux驱动
如果你的主板是VIA的主板,
http://downloads.viaarena.com/dr ... ocombo-2.3-1.tar.gz
下载后解压,进入驱动目录里会有一个viaudiocombo-2.3-1.src.rpm
运行rpmbuild --rebuild viaudiocombo-2.3-1.src.rpm
成功的话二进制rpm文件会在/usr/src/redhat/RPMS/i386里,安装后便可直接使用。

Aureal AU8820(帝盟S90)驱动
看看这里的方法:http://www.linuxfans.org/nuke/mo ... eninfo&did=1611
注意!:如果内核声卡驱动已经加载并已经可以正常使用,官方驱动很可能根本无须安装,也无法安装。

以上方法如果都无法驱动你的声卡,您还有两种选择:一是花几十元买一块像YMF724、744、FM801、CM8738那样的声卡,Linux环境下支持绝对没问题,而且占用主板资源远小于AC97 codec,二就是花4元钱买一张D版的windows安装盘(我推荐您花1XXX元买正版,利国利民),不再指望用Linux听音乐。
3、一些小技巧
1,不支持多分频流怎么办?
答:内核驱动不能很好的支持多分频流,但是只要我们用esound等声音进程,也可以使用多分频。
XMMS下菜单-选项-首选项-音频输入输出插件中,输出插件选esound输出插件就可以了。
Gaim下,首选项-声音-声音方式改为ESD。
注意:MPlayer不能很好支持esound,还是使用OSS的模块好些
2,如果KDE下没有声音,可能是KDE的arts占用了声卡资源。可以先在控制中心-声音系统中关闭arts声音系统,并运行如下命令:
killall artsd
esd &
这样在KDE环境下也能用esound了。
3、XMMS不能播放音乐(MP3)
这是个头疼的问题,如果你声卡检测正常通过,却不能播放MP3。不过这并不是声卡或系统的问题,你可以下载一个新版本的xmms:http://www.xmms.org/files/1.2.x/rpm/rh9.x/xmms-1.2.8-1.i386.rpm
先把旧版的卸载了,rpm -e --nodeps xmms
再安装新的。

如果你有一块ALS4000这样的声卡呢?恐怕我们要出动ALSA了。
欢迎大家补充,困了,睡觉去
发表于 2004-1-3 07:02:21 | 显示全部楼层
楼主在fedora下能够成功编译alsa吗?
我的不行。
 楼主| 发表于 2004-1-3 13:06:33 | 显示全部楼层
最初由 emylekao 发表
楼主在fedora下能够成功编译alsa吗?
我的不行。


我是用2.6内核的,无需编译ALSA,编译内核就直接用了。
发表于 2004-1-4 13:22:01 | 显示全部楼层
最初由 nbxmedia 发表
我是用2.6内核的,无需编译ALSA,编译内核就直接用了。

好像任何版本的linux都无法解决Diamond MX300,只有用OSS
发表于 2004-1-4 19:37:07 | 显示全部楼层
nbxmedia兄写的极为系统,对新手弟兄来说,上手更为容易。

多谢nbxmedia兄,辛苦了。一会我整理一下放入postnuke
发表于 2004-2-13 15:53:19 | 显示全部楼层
支持 aureal/vortex 的 patch 进入ALSA 已经有些日子了。
现在的问题是如何用上A3D。
发表于 2004-2-14 22:25:14 | 显示全部楼层
还有一些问题,
fedora core 2已经使用2.6的内核,但是其中的alsa无法使via82xx的ac97出声,必须要另外安装alsa驱动,在内核中要把alsa驱动关掉。
发表于 2004-2-22 20:22:12 | 显示全部楼层
RE:
------------------------------------------------------------------
另一方案:官方驱动 (未测试)
首先你必须确认你已经装了内核源码(即内核开发软件包集合)
如果你的主板AC97 codec为CMI9738/9739,且内核内建驱动不能运行 的朋友,可以下载驱动:
http://www.cmedia.com.tw/driver/Lin...udio-041.tar.gz
解压,命令终端中进入驱动目录,里面有Readme.txt说明,先运行modprobe soundcore
然后
make
make install
如果成功,安装就完成了,此时还要修改/etc/modules.conf
alias sound-slot-0 cmaudio
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :
重启计算机后就可使用。

VIA AC97combo for Linux驱动
如果你的主板是VIA的主板,
http://downloads.viaarena.com/drive...bo-2.3-1.tar.gz
下载后解压,进入驱动目录里会有一个viaudiocombo-2.3-1.src.rpm
运行rpmbuild --rebuild viaudiocombo-2.3-1.src.rpm
成功的话二进制rpm文件会在/usr/src/redhat/RPMS/i386里,安装后便可直接使用。

Aureal AU8820(帝盟S90)驱动
看看这里的方法:http://www.linuxfans.org/nuke/modul...fo&did=1611
注意!:如果内核声卡驱动已经加载并已经可以正常使用,官方驱动很可能根本无须安装,也无法安装。
-----------------------------------------------------------------
我的就是cmi9739a 声卡,下载的官方的驱动安装后不能用(按说明安装的),系统还是认成i810_audio,本来原来有声音。现在声音都没了。是不是得卸了原来的声音模块再安装?帮帮我
谢谢!
 楼主| 发表于 2004-2-22 21:08:46 | 显示全部楼层
原来有声音就不要用那个驱动!
发表于 2004-2-22 21:23:19 | 显示全部楼层
Re:nbxmedia
谢谢!我还以为是我安装的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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