alsa_lib移植到IMX6ULL

简介

ALSA是Advanced Linux Sound Architecture的缩写,目前已经成为了linux下的主流音频体系架构,提供了音频和MIDI的支持。
alsa_lib移植到IMX6ULL_第1张图片

交叉编译alsa_lib和alsa_utils

下载alsa_lib

在官网中下载AlsaProject

编译

先将文件解压,然后进入alsa_lib文件夹中
首先需要执行configure应用程序,用来对编译项目进行配置。

 ./configure --host=arm-linux-gnueabihf --prefix=/home/heihei/Qt_lib/alsa-lib-1.2.2/temp --enable-shared=yes --enable-static=no --disable-python CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
//选项讲解
-prefix:后面是下载(install)的绝对路劲,也就是编译出来后的文件所存放的目录
-host:具体使用交叉编译器的名称(需要填写全名)
CC:交叉编译工具的绝对路径
-enable-shared=yes --enable-static=no:动态编译还是静态编译,只能选择一个

测试应用程序

alsa-lib是ALSA提供的一套Linux下的C语言库函数,需要将alsa-lib移植到开发板上,这样基于alsa-lib编写的应用程序才能运行。
alsa_lib移植到IMX6ULL_第2张图片
使用make 编译工程,然后再使用make install下载编译后的文件到指定目录即可
alsa_lib移植到IMX6ULL_第3张图片
进入temp文件夹中可以查看到编译后的所有内容,将temp文件夹中的内容移植移植到开发板上,然后添加PATH环境变量即可。
在这里插入图片描述
编译alsa-utils和编译alsa-lib是一样的这里就不详细介绍了,可以百度。

aplay

aplay是一个用于测试音频播放功能程序,可以使用aplay播放wav格式的音频文件。

alsamixer

用于配置声卡的混音器,它是一个字符图形的配置工具。

alsactl

配置完成后,下次启动配置不会保存则可以直接使用如下命令,将配置项保存到指定文件夹下。

alsactl -f /var/lib/alsa/asound.state store

使用如下命令可以将配置信息加载

alsactl -f /var/lib/alsa/asound.state restore

amixer

使用该应用程序直接配置声卡,例如:

# 打开耳机播放 ZC
amixer sset 'Headphone Playback ZC' on
# 打开喇叭播放 ZC
amixer sset 'Speaker Playback ZC' on
amixer sset 'Speaker AC' 3
amixer sset 'Speaker DC' 3

# 音量设置
amixer sset Playback 230,230 //播放音量设置
amixer sset Speaker 118,118 //喇叭音量设置

# 打开左右声道
amixer sset 'Right Output Mixer PCM' on //打开右声道
amixer sset 'Left Output Mixer PCM' on //打开左声道
# 注释:打开声道很重要,如果移植alsa的库之后使用alsamixer可以找到声卡,音量也配置了。
#但是调用aplay没有声音那就是由于没有打开声道导致的。

参考

《【正点原子】I.MX6U嵌入式Linux C应用编程指南V1.4》

你可能感兴趣的:(linux,linux)