alsa的动态库安装在哪里_从51单片机到Linux 音乐播放之ALSA及播放工具(教程16)

本文介绍了Linux开发板上ALSA的安装过程,包括从下载最新ALSA库到编译安装,以及如何在开发板上部署和测试。详细讲解了编译配置、动态库安装和测试验证的步骤。
摘要由CSDN通过智能技术生成

c5e2d982f20c0fdb24dffb5689ec1000.png

大家好,我是兔子。

是一个嵌入式软硬件工程师。

正在从单片机开发转岗Linux开发。

兔子这次试用ALSA功能,并使用编译出来的播放工具来播放.wav格式的音乐。

PS:实际上,绝大多数开发板已经有ALSA及相关音频播放工具的功能了。固件不带ALSA功能的开发板少之又少。只是兔子我手上的周立功i.MX287开发板,新版本的固件没有这个功能。

正好,我就单独来编译一次ALSA功能,并将其集成到周立功i.MX287的开发板中。

(如果各位是使用其他的开发板,可以输入aplay –l命令。能看到终端打印开发板声卡的信息,则表明已经自带了ALSA功能。可以往开发板里传入一个.wav格式的音频歌曲。

使用aplay xxx.wav来播放歌曲,xxx.wav表示歌曲的文件名)

e78ff245c7fe71cb335bf52a8ab136a8.png

1.什么是ALSA

ALSA是Advanced Linux Sound Architecture高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA已经成为默认的声音子系统,用来替换2.4系列内核中的OSS(Open Sound System,开放声音系统)。

2. ALSA及播放工具编译

和兔子一起,去ALSA的官网上下载最新的ALSA库。

https://www.alsa-project.org/wiki/Main_Page

71c3cc8a7e6ee0ccf9a1c89f2d608da0.png

可以看到,目前ALSA最新的版本是1.1.9.

对于我们开发板,只需要下载alsa-lib-1.1.9alsa-utils-1.1.9即可。

两个文件下载好后,上传到虚拟机的/opt目录下。并解压。

7667b1c42b36cd955066efef09405eae.png

解压,输入命令

tar -jxvf alsa-lib-1.1.9.tar.bz2

tar -jxvf alsa-utils-1.1.9.tar.bz2

可以看到,两个文件以及解压好了。

80b83e7cc72d970e02d2799ccde4dc06.png

1)编译alsa-lib

先输入指令

cd alsa-lib-1.1.9

进入alsa-lib-1.1.9文件夹里。

输入alsa库的编译配置

CC=arm-fsl-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/alsa

<1> CC=arm-fsl-linux-gnueabi-gcc表示指定的编译工具为arm-fsl-linux-gnueabi-gcc

<2> prefix=/opt/alsa 表示最终编译生成及库调用的路径为/opt/alsa

d879c36cbf26ac5a7cc2c9a79bb6e76d.png

等待一会,可以看到无错误。表示配置通过。

d8f9508c4c238d415b9b2d6bc174232e.png

输入make指令,等待编译通过后。

如果无错误,

再输入sudo make install 安装最终生成的文件。

这时,可以在/opt目录下,看到新生成的文件夹alsa

表示alsa-lib安装成功。

fb02e38e850cd878dafe41557d2abba8.png

2)编译alsa-utils

cd alsa-utils-1.1.9

进入alsa- utils -1.1.9文件夹里。

输入alsa-utils的编译配置

CC=arm-fsl-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/alsa CFLAGS="-I/opt/alsa/include" LDFLAGS="-L/opt/alsa/lib -lasound" --disable-alsamixer --disable-xmlto --disable-nls

说明

<1> --prefix指定了alsa-utils最终编译生成的目录

<2> CFLAGS=及LDFLAGS=.

由于编译需要alsa-lib的支持,所以需要指明alsa-lib的库及头文件的目录。

<3> alsamixer是图形化的amixer工具,需要ncurses的支持,在secure CRT中乱码,怕麻烦用--disable-alsamixer禁用了它.

等待一会,看到无错误,表示配置通过。

4bb2f7eb1904d425b6a9fdc889217c3e.png

输入make指令,等待编译通过后。

如果无错误,

再输入make install 安装最终生成的文件。

make install 时遇到错误。

d3fa97ac621e629f313b8e7934862092.png

可以看到,提示是权限不够。

是因为/opt目录下是只有root用户才能读写操作。

输入指令make clean,清除make install生产的临时文件。

重新make一下。

再输入指令 sudo make install

就可以了。

至此,ALSA所有文件以及全部编译通过。都生成在/opt的alsa目录里。

3)打包,带走

在虚拟机的/opt目录下。

输入指令

sudo tar –cvf alsa.tar alsa/

则在/opt目录下生成了alsa.tar压缩包。

ee1d092e4c0476bf3ebb5e175576f404.png

Ps:主要是文件夹里有链接文件,直接整个目录复制,会导致链接文件失效。打包成压缩包,是可以避免链接文件失效。

317db3053f0046091211147f68cf3417.png

3.开发板安装ALSA

将生成的alsa.tar拷贝到开发板的/opt目录下。

并解压

tar –xvf alsa.tar

8fb92306dd477c66d7f77281d8bd0a70.png

可以看到,在开发板的/opt目录下,生成了alsa文件夹。

6a00ebcd871099c8bd5198b0a2afc7e0.png

(如果不清楚如何拷贝,可以移步教程3)

兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)​zhuanlan.zhihu.com
e3046d3f36f3dcf4e52cea0bd8df7cd9.png

进入alsa/lib目录下,将所有文件一起打包。

tar –cvf libalsa.tar *

这里都是alsa功能的动态库文件。

9b21eb8a656579e61b1cc8e59d7ff5ee.png

然后将生成的压缩包libalsa.tar复制到/usr/lib下解压。

<1>需要先重新挂载一下目录

mount –o remount rw / (由于开发板根文件系统做了写保护处理,需要重新挂载一下,在可以往/usr/lib目录下存文件)

<2>cp libalsa.tar /usr/lib

<3>进入/usr/lib目录下,将压缩包解压。

cd /usr/lib

tar –xvf libalsa.tar

<4> 进入/opt/alsa/bin目录下

cp aplay amixer /usr/sbin

将测试工具

aplay,amixer两个测试工具拷贝到开发板/usr/sbin目录下。

(aplay是播放及录制.wav音频的测试工具,amixer是调节音量大小的工具,由于开发板上无麦克风,所以只能播放.wav来测试)

至此,ALSA及测试工具都已经在开发板上安装完毕。

4.测试验证

<1> 插上耳机。

<2> 给开发板上传一个.wav格式的音乐。

<3> 输入命令amixer set Master 252 将音量调节到最大

6af5141808e5056318098bd204742d7e.png

<4>输入aplay xx.wav命令,开始欣赏音乐

d69724675a5e230a4cfb110aa7418e07.png

PS:测试工具只能播放.wav格式的音乐播放。

5.音乐欣赏

f010bf87fa7c1bd829e87d4bb64eccc3.png
https://www.zhihu.com/video/1141295993361457152

如果想播放跟多格式的音乐,或者播放视频。可以使用MPlayer来播放。

下一个教程,MPlayer播放器的移植。播放跟多格式的音乐和视频。

e0958e2f07916b9c90f2b2ba2af88151.png

f922c41f6b96b28ec54b6f3582636bfb.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值