Linux ALSA音频框架分析六:ALSA-lib嵌入式移植

2019-07-12 18:39发布

Linux ALSA音频框架分析六:ALSA-lib移植        虽然linux下alsa框架给用户空间提供了系统调用,但alsa-lib对系统调用进行进一步封装,并实现了很多插件,例如多音频源进行混音播放时,调用的就是 dmix 插件。 一 软件包下载 进入网站http://www.alsa-project.org/选择下载合适版本的软件包。 其中,alsa-lib是ALSA 应用库(必需基础库),alsa-utils包含一些ALSA小的测试工具.如aplay、arecord 、amixer播放、录音和调节音量小程序,对于一些应用开发者只需要以上两个软件包就可以了。 二 配置和编译 2.1 alsa-lib 解压alsa-lib-x.x.x.tar.bz2 进入解压后目录cd alsa-lib-x.x.x 配置 ./configure --host=aarch64-linux-gnu --prefix=/usr/local/share/arm64-alsa --enable-static=yes --enable-shared=no --enable-python=no --with-configdir=/usr/local/share/alsa --with-plugindir=/usr/local/lib/alsa_lib --with-pcm-plugins=hw  编译 make  安装 make install 其中配置参数--prefix=/usr/local/share/arm64-alsa 是编译后结果的输出路径,--with-configdir=/usr/local/share/alsa它将影响 include/config.h中的 ALSA_CONFIG_DIR 目录。 2.2 alsa-utils 解压alsa-utils-x.x.x.tar.bz2 进入解压后目录cd alsa-utils-x.x.x 配置
./configure --host=aarch64-linux-gnu --prefix=/usr/local/share/arm64-alsa CFLAGS="-I/usr/local/share/arm64-alsa/include" LDFLAGS="-L/usr/local/share/arm64-alsa/lib -lasound" --disable-alsamixer --disable-xmlto  编译 make  安装 make install 2.3 移植 复制目标文件夹下的文件到嵌入式系统的根文件系统: cp -rfa /usr/local/share/arm64-alsa/lib/*  /initramfs/lib/
cp -rfa /usr/local/share/arm64-alsa/bin/*  /initramfs/sbin/
cp -rfa /usr/local/share/arm64-alsa/sbin/* /initramfs/sbin/ cp -rfa /usr/local/share/alsa/*  /initramfs/usr/local/share/alsa/ 配置环境变量:
在rootfs/etc/profile,添加如下两行:
#alsa_init  
export ALSA_CONFIG_PATH=/usr/local/share/alsa/alsa.conf 生成跟文件系统: find .|cpio -o -H newc|gzip -9 > $(pwd)/initramfs.img.gz 三 相关软件应用 在alsa-utils包含一些ALSA小的测试工具,这些工具软件都是基于alsa-lib的API实现的,其中amixer可以进行音频通道选通和音量调节,aplay是播放音频软件,arecord是录音软件。