ALSA 是The Advanced Linux Sound Architecture的简称,是目前Linux下最棒的声卡驱动之一,虽然和商业的OSS驱动相比还尚有差距,但它完全遵守GPL和LGPL版权,并准备加入Linux的 2.6内核中成为Linux声卡驱动的标准,可谓前途无量,呵呵。
言归正转,利用Gentoo强大的软件包管理系统Portage,让我们开始alsa的安装之旅吧:)
1.首先必需确认,把声卡的支持也就是“Sound Card Support”编译为模块加入内核,仅此而已,其他的声卡驱动一个也不要选。
2.做好了以上步骤,我们开始编译安装alsa-drivers.如果你用的是PCI声卡的话,在这之前可以用以下命令察看一下它的型号:
#grep audio /proc/pci
知道了声卡的型号后(如果还是不清楚的话,可以参考以下连接:
http://www.alsa-project.org/alsa-doc ),可以直接用以下命令只编译你声卡的驱动,以加快编译的速度。
比如我的声卡是CS4620的,ALSA的驱动模块为cs46xx,我就这么做:
#env ALSA_CARDS='cx46xx' emerge alsa-driver
如果你有一块以上的声卡,可以这么:
#env ALSA_CARDS='xxxx xxxx xxxx' emerge alsa-driver
如果你需要OSS兼容性驱动的话,
#emerge alsa-oss
就可以了,不过这不在我们今天的讨论范围内。
3.驱动编译完毕后,我们来配置ALSA,让它为我们“无私”的工作:)
a.用你自己喜欢的编辑器打开/etc/modules.d/alsa文件,以下是我的文件:
# Alsa 0.9.X kernel modules' configuration file.
# $Header: /home/cvsroot/gentoo-x86/media-sound/alsa-driver/files/alsa-modules.conf-rc,v 1.1 2002/12/21 06:31:52 agenkin Exp $
# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore
##
## IMPORTANT:
## You need to customise this section for your specific sound card(s)
## and then run `update-modules' command.
## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
##
## ALSA portion
## alias snd-card-0 snd-cs46xx (去掉前面的两个#号,并把snd-cs46xx改为snd-xxxx你的声卡驱动模块)
## alias snd-card-1 snd-ens1371 (如果你有一块以上声卡的话,修改方法同上)
## OSS/Free portion
## alias sound-slot-0 snd-card-0
## alias sound-slot-1 snd-card-1
##
# OSS/Free portion - card #1
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
## OSS/Free portion - card #2
## alias sound-service-1-0 snd-mixer-oss
## alias sound-service-1-3 snd-pcm-oss
## alias sound-service-1-12 snd-pcm-oss
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
# Set this to the correct number of cards.
options snd cards_limit=1 (这里是设置ALSA驱动声卡的数目,如果你有一块以上的声卡可以在这里做相应修改)
b.确认文件修改无误后,执行以下命令更新系统模块:
# update-modules
c.察看/etc/devfsd.conf,确认alsa设备的权限设置的正确与否。
# ALSA/OSS stuff
# Comment/change these if you want to change the permissions on
# the audio devices
LOOKUP snd MODLOAD ACTION snd
LOOKUP dsp MODLOAD
LOOKUP mixer MODLOAD
LOOKUP midi MODLOAD
REGISTER sound/.* PERMISSIONS root.audio 660
REGISTER snd/.* PERMISSIONS root.audio 660
默认此文件设置 /dev/sound权限为 root和audio,如此一来,普通用户要使用的话,要把他们的帐户加入audio组。
4.开始使用ALSA
a.首先把alsasound加入boot运行级
#rc-update add alsasound boot
b.立即开始启动ALSA,并调整音量
# /etc/init.d/alsasound start
此时ALSA还不能工作,因为alsa默认音量是关闭的。我们需要alsa工具来调整
# emerge alsa-utils
# amixer
# amixer set Master 100 unmute
# amixer set PCM 100 unmute
#aplay xxx.wav (你可以随便找一个wav文件来试验一下)
如果一切顺利的话,现在ALSA已经可以正常工作了:)
对了,如果你使用xmms听歌的话,记得#emerge alsa-xmms来让xmms支持ALSA
最后,要说明一下,如果你重新编译了内核或升级了新的内核的话,你需要重新编译alsa-driver并,仅此而已,其他的诸如alsa-oss alsa-utils都不需要重新编译。Enjoy with Gentoo