应用层alsa_lib和alsa_utils工具移植详解

应用层alsa lib和utils工具移植详解

在移植alsa的lib和utils工具包时前需要准备三个包(都可以在china unix上下载到):

1. alsa-lib (应用程序使用的alsa库)

2. alsa-utils (测试音频使用的各种工具)

3. libiconv (用来编码转换的库)

第一步:移植alsa-lib。解压出音频库的源码,如tar xvjf alsa-lib-1.0.22.tar.bz2,再cd alsa-lib-1.0.22,生成Makefile,使用命令如下:


CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared--disable-python --with-configdir=/tmp/local/share--with-plugindir=/tmp/local/lib/alsa_lib


注意:configdir可以任意指定配置文件的路径,但plugindir路径不能更改。成功生成Makefile之后,执行make进行编译,若编译中提示'

atomic_add'之类的重复定义的错误,则将configure和configure.in中

“-D__arm__”

给去掉。编译通过之后,再执行make install进行安装,安装成功后会在$PWD/../install_path下的lib目录看到生成的相关库文件。在开发板上发布alsa库.除了libasound.so相关

库(/lib下的所有库)拷贝到开发板的lib目录外,必须还要把 alsa.conf相关文件(所在路径下的所有文件及文件夹)发布到板上–with-configdir所指向目录下的alsa目录(注意:在所有生成的lib文件的拷贝过程一定要使用cp -P来拷贝,防止拷贝过程中的软连接丢失),否则会报”audio open error: No such file or directory”。该文件可以在make install后

在你安装目录下的share找到alsa目录,把这个目录整个拷贝到开发板的/tmp/local/share目录下(开发板上没有local和share文件夹时手动创建)。

第二步:安装libiconv(libiconv-1.14.tar.gz)。将下载的libiconv进行解压,进入解压后的libiconv目录,执行:

CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared


生成Makefile,再执行make进行编译。若编译过程中提示如下错误:

/******make报错:stdio.h:1010:1:error: 'gets' undeclared here (not in a function)

解决:修改srclib/stdio.in.h 第695行

将:_GL_WARN_ON_USE (gets, "gets is a security hole - use fgetsinstead");

改为如下三行:

#if defined(__GLIBC__) &&!defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

_GL_WARN_ON_USE (gets, "gets is asecurity hole - use fgets instead");

#endif

最后执行make install进行安装。安装完成之后会在$PWD/../install_path下生成相应的库文件。

第三步:移植alsa-utils(alsa-utils-1.0.20)。解压出alsa-utils包,进入解压的目录,执行:

CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared--with-configdir=/tmp/local/share --with-libiconv-prefix=$PWD/../install_pathCFLAGS="-I$PWD/../install_path/include"LDFLAGS="-L$PWD/../install_path/lib -lasound -liconv"--disable-alsamixer --disable-xmlto


来生成Makefile,再执行make进行编译。若编译中提示' atomic_add'之类的重复定义的错误,则将configure和configure.in中

“-D__arm__”

给去掉。编译通过之后,再执行make install。成功之后就会在安装目录的bin目录下看到alsa utils的各个工具,拷贝到开发板的bin目录下就可以测试。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章