LinuxSir.cn,穿越时空的Linuxsir!

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

LINUX 2.6.4 声卡驱动ALSA安装指南

[复制链接]
发表于 2004-3-28 15:37:12 | 显示全部楼层 |阅读模式
LINUX 2.6.4 声卡驱动ALSA安装指南  
    本人音乐爱好者,固然对声音的要求很高了.本人玩linux也有2年时间了.但也使个小鸟而已.
当我第一次在linux播放mp3的时候,就觉得linux声音处理比windows XP优越,(本人的音感,不是指技术性的)
本人硬盘的系统是windows XP + RH9 2.6.4内核 (保留了2.4内核,所以勉强说是3个系统了,grub的
启动菜单可是3个系统喔 多一个总会好点啦).
     ALSA,即Advanced Linux Sound Architecture。它是一款优秀的声卡驱动,能驱动大部分的声卡,而且支持多音频流,支持多声卡等等。使我们能在linux下享受到美妙的音乐。也是2.6内核支持的,并且 "After 2 complete code overhauls they were integrated into kernel 2.6.0 at the start of 2003 replacing the now deprecated(非难,反对) OSS drivers." --引自ALSA的官方网站。
     这对我更有吸引力了,到了“非君不嫁”的地步了。但…………命运总是坎坷的,我在官方
网站downlown了安装指南按照这说去做,但 …………埃…………可能是我的英文太差了吧,
(我是下载最新的官方ALSA-1.03稳定版的),我又按照install文件的说了,但也不行。只知道
是modprobe文件的问题每次reboot后,kmix总是probe不到声卡。于是我又参考了《声卡驱动ALSA安装指南(第三版)》,可能我太菜了 fail…………
    但我老是不甘心,但在网上的写的modprobe配置对我这样的菜鸟来说总是一头雾水。
    参考了各种资料后,我总结了 LINUX2.6声卡驱动ALSA安装指南(菜鸟版) :)。
   
    网上的都是写的是旧版的驱动,我这里主要是面对新版的(after0.9.0beta11),
本文以ALSA1.03+RH9+2.6.4内核为例。我的声卡是内置的cmi8738 在Iwill KT133A
  
  ALSA安装步骤:
一  1.  到 http://www.alsa-project.org下载最新的ALSA驱动,库文件,和工具
         http://www.alsa-project.org/alsa ... river-1.0.3.tar.bz2
          http://www.alsa-project.org/alsa/ftp/lib/alsa-lib-1.0.3b.tar.bz2
          http://www.alsa-project.org/alsa ... utils-1.0.3.tar.bz2  
          

   2.内核的sound设置要打开,我是把他放在内核里面的,我在用linux-2.6.0-testX版内核时,
要把sound加入到内核里面才能有声音支持的,新的2.6.4或其他的2.6正式版应该就可把他编译成
module,所以我在 #modinfo soundcore 的时候没有soundcore这个module。一般情况下内核的sound设置
这步可以省去的,现在的linux版本都默认设置好了。

   3. 原来装了OSS驱动的可以把OSS的声音驱动的module删了,或在modprobe文件把它注掉
我的是  #alias sound-slot-0 cmpci
install sound-slot-0 /sbin/modprobe --first-time --ignore-install sound-slot-0 && { /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :; }
remove sound-slot-0 { /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :; } ; /sbin/modprobe -r --first-time --ignore-r
        在alias sound-slot-0 cmpci前加#注掉就行。

4.确认有无内核源码包/usr/src目录下看看是否有一个名字类似linux-2.4.x-x的目录。如果没有就得自己装一个。发行版光盘中带有.我是下载kernel2.6.4的,当然没问题了。
                                                 注意:关于redhat发行版2.4.20-xx系列内核的问题。
rehat发行版中,如果是使用最新的2.4.20-xx内核及其源码包,例如redhat9,应该安装alsa-0.9.4版本,而之前的0.9.x是不能安装使用的。虽然alsa能成功编译,但在alsa模块加载时会出错而不能使用。(我没有试过,---引自声卡驱动ALSA安装指南(第三版)  ).

5.做一个源码包的链接.ln -s linux-2.x.x-x linux (其中linux-2.x.x-x为源码包的目录名称)
在kernel-2.6.4可以省去这步的,做了这一步也没用的,在configure时,总是会到
/usr/src/linux-2.6.4的,我试过了。

二 开始安装  把包放进一个目录,以后所有操作均在该目录下执行。
1 .解压,执行:

tar jxvf alsa-driver-1.0.3.tar.bz2
tar jxvf alsa-lib-1.0.3b.tar.bz2
tar jxvf alsa-utils-1.0.3.tar.bz2



  2.编译alsa 执行:

cd alsa-driver-1.0.3
./configure --with-cards=模块名称 --with-sequencer=yes

注意:如果你知道自己声卡的模块名称,则可以用: ./configure --with-cards=模块名称 --with-sequencer=yes 如我的是cmi8738片的软声卡,则为:  ./configure --with-cards=cmipci --with-sequencer=yes  但如果不清楚的话, 用lspci命令查询,再到alsa-driver-1.0.3解压出的目录下的CARDS-STATUS文件找出你的声卡的模块名.如果还不行的请用./congfigure以编译alsa所支持的所有声卡的驱动
如果声卡是ISA的pnp声卡,请用./configure --with-isapnp=yes
./configure 的详细参数可通过执行:./configure --help 进行查询。

之后:
make
make install
./snddevices   『注:Skip this step, if you have a kernel with the DEVFS support.不清楚的,就做了这步也没问题的。
                  这个script是用来生成ALSA设备文件的。』

cd alsa-lib-1.0.3b
/configure;
make;
make install
                  
cd alsa-utils-1.0.3
/configure
make
make install
                  

3.运行alsaconf, #alsaconf,会出现了配置界面,如果以前安装了OSS声卡驱动的会出现2个或更多的设备的。
选择第一个就是了,没错了。第一个才是ALSA 的device. 我就显视2个名字完全一样的device了。因为我以前
安装过OSS的驱动。

4。reboot, 这样ALSA驱动就安装完了。可以music!music! enjoy!enjoy!
不过因为linux默认静音,所以需要配置音量  我是用kmix的,在面板加如小程序kmix
调好音量,就-->控制中心-->声音和多媒体-->声音系统-->混音器  载入音量,保存。OK!
这是最菜鸟的方法,其他的方法就不这这里多说了。

如果想功能更强大的可以用gamix
下载gamix
http://www1.tcnet.ne.jp/fmurata/linux/down/gamix-1.99.p14.tar.gz
解压:tar zxvf gamix-1.99.p14.tar.gz
cd gamix-1.99.p14
./configure
make
make install
以上安装gamix
第一次运行gamix时可能会显视找不到 ALSA DEVICE 的。reboot就可以了。
     
想了解更多的ALSA 设置可到 alsa-kernel/Documentation/ALSA-Configuration.txt
(or Documentation/sounds/alsa/ALSA-Configuration.txt in linux-2.6
kernel tree).或到http://www.alsa-project.org/alsa-doc 看看里面有不同的声卡的具体的安装方法的。)
发表于 2004-3-28 16:48:44 | 显示全部楼层
楼主你的cmi8738,能被认出来吗?
我的就是默认成为82XX
能否贴一下你的module.sconf和modprobe.conf文件谢谢
发表于 2004-3-28 18:48:29 | 显示全部楼层
厉害。
发表于 2004-3-28 19:24:59 | 显示全部楼层
我想问,内核里面那些alsa模块和单独下载的有什么区别?
 楼主| 发表于 2004-3-28 19:32:27 | 显示全部楼层
cmi8738声卡可以很好的检测出来,2.4内核和2.6.4的都可以。
modprobe文件很简单,不用象其它的做法,你运行了#alsaconf后会对你的
modprobe文件进行自动配置的,不用手工配置
Note: for use under 2.4, changes must also be made to modules.conf!
#alias sound-slot-0 cmpci
install sound-slot-0 /sbin/modprobe --first-time --ignore-install sound-slot-0 && { /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :; }
remove sound-slot-0 { /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :; } ; /sbin/modprobe -r --first-time --ignore-remove sound-slot-0
alias char-major-195* nvidia


# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 1.0.3 ---
alias snd-card-0 snd-cmipci
alias sound-slot-0 snd-cmipci
# --- END: Generated by ALSACONF, do not edit. ---

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2004-3-28 19:43:19 | 显示全部楼层
最初由 laxi1982 发表
我想问,内核里面那些alsa模块和单独下载的有什么区别?


我不太明白你的意思,你的意思大概是:在kernel-2.6.4源代码里面的
alsa驱动,和到alsa官方网站下载的,有什么不同?
  当然是版本的不同了,还有kernel源代码里应该没有alsa-lib和alsa-utils的。
另外。 如果你把alsa驱动程序在编译kernel时编译在kernel里,而不时编译成模的。
那么你就不可能升级的你alsa驱动了。
发表于 2004-3-28 21:53:14 | 显示全部楼层
zerolin兄讲解明白~谢谢回复!
发表于 2004-3-29 00:05:25 | 显示全部楼层
最初由 zerolin 发表
cmi8738声卡可以很好的检测出来,2.4内核和2.6.4的都可以。
modprobe文件很简单,不用象其它的做法,你运行了#alsaconf后会对你的
modprobe文件进行自动配置的,不用手工配置
Note: for use under 2.4, changes must also be made to modules.conf!
#alias sound-slot-0 cmpci
install sound-slot-0 /sbin/modprobe --first-time --ignore-install sound-slot-0 && { /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :; }
remove sound-slot-0 { /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :; } ; /sbin/modprobe -r --first-time --ignore-remove sound-slot-0
alias char-major-195* nvidia


# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 1.0.3 ---
alias snd-card-0 snd-cmipci
alias sound-slot-0 snd-cmipci
# --- END: Generated by ALSACONF, do not edit. ---


谢谢,收藏了
我的是 cm9738不过在win下用的都是8738的驱动
但是在linux下面自动认为via82XX很郁闷啊,不知道mdk10.0official版会不会改进
发表于 2004-3-29 08:10:55 | 显示全部楼层
谢谢,收藏了
我的是 cm9738不过在win下用的都是8738的驱动
但是在linux下面自动认为via82XX很郁闷啊,不知道mdk10.0official版会不会改进


cm9738的声卡当然是via82xx的,这是根据你的南桥芯片来的,没有什么错误的。
cmi8738是一款硬声卡,本身不过多的依赖于南桥,而cm9739a, cm9739者是依赖于南桥的符合ac 97的软声卡,当然要根据南桥芯片了,
所以不存在改进。

其实,安装的时候,只要将模块写入modprobe.conf(2.6)或者是(modules.conf)里就可以了,至于要写哪些,打开软件包自带的readme文档或者是install文档看看就有了。
发表于 2004-3-29 11:48:09 | 显示全部楼层
受教

版主可知道用alsa驱动creative的声卡(系统侦测为ensoniq      es1371)是否会有杂的背景音?
我的就有,在将音响打到比较大的音量时不放任何音乐,就有比较大(程度为无法忍受)的背景噪音,音箱本身没有问题,.不知道是不是我没有装好驱动?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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