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.**内核为例。我的声卡是内置的cmi8738 在Iwill KT133A
ALSA安装步骤:
一 1. 到
http://www.alsa-project.org下载最新的ALSA驱动,库文件,和工具
http://www.alsa-project.org/alsa/ft...r-1.0.3.tar.bz2
http://www.alsa-project.org/alsa/ft...-1.0.3b.tar.bz2
http://www.alsa-project.org/alsa/ft...s-1.0.3.tar.bz2
http://ftp.freshrpms.net/pub/freshr...2-1.fr.i386.rpm
再下载alsaconf 这是modprobe配置工具,最好下载rpm包(方便),源代码
也可以的,我下载的是alsaconf-0.9.0-1.noarch.rpm,有更新的版本的,我下不了。不用这工具
我对modprobe文件配置了,但还不行,lsmod没有看到。
2.内核的sound设置要打开,我是把他放在内核里面的,我在用linux-2.6.0-testX版内核时,
要把souod加入到内核里面才能有声音支持的,新的2.**或其他的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.**的,当然没问题了。
注意:关于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.**可以省去这步的,做了这一步也没用的,在configure时,总是会到
/usr/src/linux-2.**的,我试过了。
二 开始安装 把包放进一个目录,以后所有操作均在该目录下执行。
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.安装alsaconfig ,#rpm -ivh alsaconf-0.9.0-1.noarch.rpm
3.编译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
4.运行alsaconf, #alsaconf,会出现了配置界面,如果以前安装了OSS声卡驱动的会出现2个或更多的设备的。
选择第一个就是了,没错了。第一个才是ALSA 的device. 我就显视2个名字完全一样的device了。因为我以前
安装过OSS的驱动。
5。reboot, 这样ALSA驱动就安装完了。可以music!music! enjoy!enjoy!
不过因为linux默认静音,所以需要配置音量 我是用kmix的,在面板加如小程序kmix
调好音量,就-->控制中心-->声音和多媒体-->声音系统-->混音器 载入音量,保存。OK!
这是最菜鸟的方法,其他的方法就不这这里多说了。
如果想功能更强大的可以用gamix
下载gamix
http://www1.tcnet.ne.jp/fmurata/lin...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).或到[url]
http://www.alsa-project.org/alsa-doc [url] 看看里面有不同的声卡的具体的安装方法的。)