LinuxSir.cn,穿越时空的Linuxsir!

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

在Gentoo Linux下轻松安装ALSA

[复制链接]
发表于 2003-1-27 15:17:03 | 显示全部楼层 |阅读模式
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='cs46xx' 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 ;)
发表于 2003-1-27 16:51:00 | 显示全部楼层
唉,可惜我的声卡在LFS下就是装不成alsa驱动。
发表于 2003-1-27 17:49:52 | 显示全部楼层
不错!辛苦了
应该能解决很多人声音问题。

alsamixer是一个图形的调音器
发表于 2003-2-20 12:48:09 | 显示全部楼层

我的alsa安装过程.....

我的声卡是opti931

./configure --with-cards=opti93x --with-seqencer=yes ;

make ; make install

我用devfs所用不用./snddevice

安装alsa-libs 跟alsa-utils

modprobe snd-opti9x3

modprobe snd-pcm-oss

modprobe snd-mixer-oss

modprobe snd-seq-oss

用amixer来开音量

amixer set Master 100 unmute

amixer set PCM 100 unmute

用aplay 来播放wav文件试一试.....

在x-windows下的设置

我用reciteword
它用esd,所以需要

先在console下aplay一个wav文件

才不会出现

esd initalization failed,no sound will be paly!

即不能播放声音。。。。(怪了去了)
....

待续.....
发表于 2003-5-13 20:35:49 | 显示全部楼层
发表于 2003-5-22 23:12:56 | 显示全部楼层
success! my soundcard is sis 7012
so I use snd-intel8x0

now i can play mp3 in xmms .

thank you! Debentoo Gao

The module options for snd-intel8x0

# description: "Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455"
# author: "Jaroslav Kysela "
# license: "GPL"
# parm: index int array (min = 1, max = 8), description "Index value for Intel i8x0 soundcard."
# parm: id string array (min = 1, max = 8), description "ID string for Intel i8x0 soundcard."
# parm: enable int array (min = 1, max = 8), description "Enable Intel i8x0 soundcard."
# parm: ac97_clock int array (min = 1, max = 8), description "AC'97 codec clock (0 = auto-detect)."
# parm: joystick_port int array (min = 1, max = 8), description "Joystick port address for Intel i8x0 soundcard. (0 = disabled)"
# parm: mpu_port int array (min = 1, max = 8), description "MPU401 port # for Intel i8x0 driver."
发表于 2003-7-17 07:28:08 | 显示全部楼层

Thanks !

he he ,  use it my alsa begin work !  

发表于 2003-7-17 08:48:17 | 显示全部楼层
to kj501
版主:
  
          我得声卡以前也装不上alsa驱动,后来才搞明白,编译alsa的gcc
要与编译内核用的gcc版本一样比如,LFS0603 主编译器是gcc-3.2.3
编译内核用gcc-2.95.3
所以编译alsa-driver alsa-lib .....时要
CC=/opt/gcc-2.95.3/bin/gcc ./configure .......
CC=/opt/gcc-2.95.3/bin/gcc  make
CC=/opt/gcc-2.95.3/bin/gcc  make install
不知你试没试
发表于 2003-7-20 00:21:24 | 显示全部楼层
强呀,请版主把这个贴子置顶,肯定要救好多的兄弟的是说!
发表于 2003-7-23 16:24:19 | 显示全部楼层
请问是不是一定要把声卡驱动编译为模块加入内核,如果直接编译进内核行吗,

我安装时,出现这样的错误,请帮我看看

checking for which soundcards to compile driver for... Unknown soundcard SiS7012, exiting!

!!! ERROR: media-sound/alsa-driver-0.9.2 failed.
!!! Function src_compile, Line 57, Exitcode 1
!!! ./configure failed

localhost root # grep audio /proc/pci
    Multimedia audio controller: Silicon Integrated Systems [SiS] SiS7012 PCI Audio Accelerator (rev 160).
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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