一、简述
本文档记录自己在移植应用alsa库的大致流程,方便自己以后阅读回忆,同时给需要做相同开发的后来者提供一点经验;
开发前需要确认自己的开发版是否支持音频模块,确认方法自行百度;
二、所需站点
1. alsa官网:AlsaProjecthttps://www.alsa-project.org/
2. alsa库下载页面:Index of /files/pub/lib/https://www.alsa-project.org/files/pub/lib/ 正常音频开发我们只要lib库就好了,这里附一份目前(截止2021-11-18)最新的1.2.5.1版本供访问不了外网的同学下载:
三、alsa库编译
将lib文件放到使用的编译环境,博主用的是Linux下的arm-gcc-4.9.4版本编译器,各位根据需要移植的开发版所需的编译环境使用相应的编译器进行编译即可;
1. 文件解压
tar jxvf alsa-lib-1.2.5.1.tar.bz2
2. 配置编译环境
export CROSS_COMPILER="arm-linux-gnueabi-"
./configure --prefix=/usr/audio/ --host=arm-linux-gnueabi --build=arm
正 常编译完最后会提示生成asoundlib.h及文件 :
然后再执行:
make
sudo make install
编译完正常是生成inclue、lib、share、bin文件,bin文件博主目前用不到;
到这里alsa编译基本完成,接下来就是使用alsa库了。
四、库文件使用
1. alsa配置文件
在需要移植的开发板上创建与之前编译环境配置相同的路径:
/usr/audio/share/
将编译生成的share文件夹下的alsa文件夹完整上传到当前创建的路径下。
2. 将lib目录下的库文件上传到开发版的固件库目录
将标红框的文件上传到固件路径即可,现在我们的开发板alsa环境就已经准备就绪了;
3. 代码开发
将编译生成的include路径下的alsa文件夹加入到代码仓库中,并在工程里里设置好头文件索引,博主这里使用的是CmakeLists;
set(INC_LLAPIDIR ../../include/${GCC_VER} ../../include/${GCC_VER}/alsa)
之后只要在头文件中包含文件(asoundlib.h),即可开心使用alsa函数库啦。
五、附录
这边是开发过程博主参考的一些博客资料;
1. 嵌入式 ALSA库的编译、使用、移植_Genven_Liang的博客-CSDN博客