ALSA的配置文件

来源:互联网 发布:references 数据库 编辑:程序博客网 时间:2024/06/11 06:00

ALSA的配置文件对于ALSA非常重要。常见的有三个:alsa.conf, asoundrc, asound.conf。


1. 核心配置文件ALSA核心配置文件位于/usr/share/alsa/目录下,主要配置文件为/usr/share/alsa/alsa.conf 。其它文件是否需要,位置在哪,都是由alsa.conf来决定的。通常会有/usr/share/alsa/card 和/usr/share/alsa/pcm两个子目录,用于设置Card相关的参数,别名以及一些PCM默认设置。此外,在alsa.conf中,通常还会引用 /etc/asound.conf 和 ~/.asoundrc这两个配置文件,这两个文件通常是放置个人需要特殊设置的相关参数。按照Alsa官方文档的说法,1.0.9版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用。不过,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件。


2. alsa.confalsa.conf中主要的一些内容包括:1) 用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:@hooks [{ func load files [ "/etc/asound.conf" "~/.asoundrc" ] errors false } ]2)设置了default pcm的一些默认参数,如,默认使用Card 0 ,Device 0作为音频设备等等defaults.ctl.card 0defaults.pcm.card 0defaults.pcm.device 0 defaults.pcm.subdevice -1defaults.pcm.nonblock 1defaults.pcm.ipc_key 5678293。。。3)设置了Alsa 内置的一些plugin的接口参数,例如file:pcm.file {@args [ FILE FORMAT ]@args.FILE {type string}@args.FORMAT {type stringdefault raw}type fileslave.pcm nullfile $FILEformat $FORMAT}File plugin的作用是将PCM数据流存储到文件中。


3. asoundrc和asound.conf按照ALSA官方说法,asoundrc是针对个人用户的配置文件,asound.conf是全局的配置文件。其中,asoundrc位于主目录下,是个隐藏文件:“.asoundrc”。asound.conf位于/etc目录下。对于最新版本的ALSA库来说,这两个文件已不再需要。但是对于一些特定应用来说,他们的使用恰到好处。典型的asoundrc文件如下:  # Overwrite existing devicespcm.!default{type plugslave.pcm "softvol"channels 2}

# Add new sofvol PCM devicepcm.softvol{type softvolslave{pcm "hw:0,0"}
control{name "Softmaster"card 0}}


4. ALSA配置状态保存,恢复和自动加载实际使用过程中,常常需要动态修改声卡的配置信息,如更新asoundrc中的Mixer信息。如果不对当前声卡的配置状态进行保存,下次启动系统时,将还原到原始状态。为此,我们有必要对声卡的配置状态进行保存。声卡配置状态保存工具为:alsactl,具体保存命令为: alsactl store -f /var/lib/alsa/asound.state 这样就在/var/lib/alsa/目录下生成了asound.state文件,该文件保存了声卡的状态配置信息,包括常用的mixer配置信息。相应的声卡状态恢复命令为:alsactl restore -f /var/lib/alsa/asound.state注:在每次修改完声卡配置文件之后,必须要保证配置文件被系统加载,否则在保存声卡配置状态信息时,alsactl读取的是上次声卡的状态。常用的加载配置文件的方法是播放一个音频文件,例如:speaker-test -twav这样就可以将刚刚修改的配置文件加载到系统中,然后执行相应的保存命令,即可将相应的声卡状态信息保存到文件中。

得到了声卡的配置状态信息仍不能保证系统启动时自动加载并应用状态信息。需要修改启动配置文件,加入ALSA Daemon。启动配置文件为:/etc/rc.conf,在包含DAEMONS的一行内加入alsa项目。这样,系统启动时会自动执行/etc/rc.d/alsa脚本,该脚本会自动执行前面所说的声卡状态恢复命令,恢复Mixer配置信息。


查看原文:http://hi.baidu.com/liuhelishuang/item/9938f13b3daea34a033edcbb