我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

最近接手了一个音频方面的事情,做过的人都知道,在裸机环境下做这件事情难度极大,毕竟有写有读,如果不用操作系统的话,用中断估计会累死你。于是就开始接触一些Alsa的东西,包括基础知识和Linux内核的Alsa子系统。最终我们的目标当然是搭建开发环境,使用Alsa,我们开始吧。

1. 基础知识

基础知识可以在另一篇很棒的博客里学习,写的很透彻。虽然是基于2.6.x版本,但是看了一下发现跟现在的4.x内核相比改动不是很大,基本都能找到影子。地址贴在下面:

专栏 - Linux 音频子系统

2.Alsa下载

了解了Alsa的基础知识之后,我们知道alsa主要分为两个部分,一部分是Alsa-,也就是Linux系统的驱动,我觉得这一部分是最大的部分,需要从源头去解决;另一部分是Alsa-lib,也就是用户使用Alsa时需要调用的API,都是基于这个lib的,其实还有一些音频设备控制工具比如Alsa-utils,下载地址如下:

需要注意的是最好不要选择ftp://xxxx这个链接下载,反正我下载了好久都没成功,可能需要用FTP工具,不过我懒得去弄,往下拉有一个FTP via HTTP(web),就可以看到。如果要下载alsa-lib,就到lib目录下,如果要下载alsa-utils,就到utils目录下。

3.交叉编译alsa-lib

因为我们的lib和utils是要在arm-linux环境下使用的,所以需要进行交叉编译。由于alsa-lib是alsa-utils所依赖的库,所以要先对alsa-lib进行交叉编译。现在主流的arm交叉编译工具链应该是下面这个:

在这里插入图片描述

这个要根据你的交叉编译工具链的实际情况来定,由于我用的是-linux-gnu,所以交叉编译是按照下面的步骤进行的:

进入 alsa-lib 目录

./ --host=-linux-gnu --- --=/usr/share/arm-alsa/

制作

制作

制作

sudo 制作

make完成后,可以在上面指定的目录中看到生成的文件夹。

然后直接扔到板子上的文件系统里,配置好环境变量,就可以调用了。

4. 交叉编译 alsa-utils

不多说了,都是常规操作

./configure --host=aarch64-linux-gnu --prefix=/usr/share/arm-alsa --with-alsa-inc-prefix=/usr/share/arm-alsa/include --with-alsa-prefix=/usr/share/arm-alsa/lib --disable-alsamixer --disable-xmlto --disable-nls

–with-alsa-inc-和–with-alsa-分别指定交叉编译实用程序所需的alsa-lib的头文件和库文件;

--- 表示不编译生成这个应用程序,因为程序依赖这个图形界面库,很神奇。18.04 lts 表示已经被废弃

make
sudo make install

我们可以将此目录压缩一下,然后在开发板上解压并将文件放到适当的位置。

至此,我们已经完成了alsa库文件基础知识准备和开发环境的搭建。

成为 …

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4736.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线