本帖最后由 ぉ沙皮狗的忧伤 于 2020-3-18 16:03 编辑
参考网址
https://blog.csdn.net/dylll321/article/details/86703537
https://blog.csdn.net/u012849539/article/details/104616566/
下载安装包
ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.2.tar.bz2
ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.2.2.tar.bz2
**********************************************************************************************
方法一
在开发板编译alsa音频工具
优点:简单,方便
缺点:编译时间长一点,alsamixer图形工具无法使用
1、将alsa工具的alsa-lib-1.2.2.tar.bz2和alsa-utils-1.2.2.tar.bz2包拷贝开发板的文件系统家目录下,
2、解压文件
#tar -xvf alsa-lib-1.2.2.tar.bz2
#tar -xvf alsa-utils-1.2.2.tar.bz2
3、编译文件
#cd alsa-lib-1.2.2
#CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux --prefix=/
#make
#make install
#cd alsa-utils-1.2.2
#CC=arm-linux-gnueabihf-gcc ./configure --prefix=/ --host=arm-linux --with-alsa-inc-prefix=/include --with-alsa-prefix=/lib --disable-alsamixer --disable-xmlto --disable-nls
#make
#make install
4、配置环境
(1)先查找alsa.conf的位置
#cd /
#find ./ -name alsa.conf
./share/alsa/alsa.conf
(2)、配置环境变量
#export ALSA_CONFIG_PATH=/share/alsa/alsa.conf
(3)、配置adau1761.state文件
# alsactl restore -c 0 -f asound.state
5、测试播放
#aplay 3758176211.wav
Playing WAVE '3758176211.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
**********************************************************************************************
方法二:
在Ubuntu虚拟机上编译音频alsa工具,在将生成文件拷贝到开发板上
优点:编译速度快
缺点:环境配置复杂,繁琐,alsamixer图形工具无法使用
编译alsa-lib工具
1、CC=/usr/local/arm/gcc-4.4.6/bin/arm-linux-gcc ./configure --host=arm-linux --prefix=/dymind/alsa/install/
--prefix=/dymind/alsa/install/这里生成工具的最终存放位置
2、make
编译的过程中可能会出现下面的问题
**************************************************
timer_hw.c: In function 'snd_timer_hw_open':
timer_hw.c:249: error: '__kernel_long_t' undeclared (first use in this function)
timer_hw.c:249: error: (Each undeclared identifier is reported only once
timer_hw.c:249: error: for each function it appears in.)
***************************************************
将/usr/include/asm-generic--->>
#ifndef __kernel_long_t
typedef long __kernel_long_t;
typedef unsigned long __kernel_ulong_t;
#endif
拷贝到alsa-lib-1.2.2/src/timer/timer_local.h文件中
3、make install
编译alsa-utils工具
1、CC=/usr/local/arm/gcc-4.4.6/bin/arm-linux-gcc ./configure --prefix=/dymind/alsa/install/ --host=arm-linux --with-alsa-inc-prefix=/dymind/alsa/install/include --with-alsa-prefix=/dymind/alsa/install/lib --disable-alsamixer --disable-xmlto --disable-nls
CC=arm-linux-gnueabihf-gcc ./configure --prefix=/ --host=arm-linux --with-alsa-inc-prefix=/include --with-alsa-prefix=/lib --disable-alsamixer --disable-xmlto --disable-nls
--with-alsa-inc-prefix=/dymind/alsa/install/include这里表示生成工具的最终存放位置
vim configure +7593 修改udevrulesdir="/lib/udev/rules.d" 为 udevrulesdir="/dymind/alsa/install/lib/udev/rules.d"
vim config.log +719 修改 udevrulesdir='/lib/udev/rules.d' 为 udevrulesdir='/dymind/alsa/install/lib/udev'
vim config.status+675 修改 S["udevrulesdir"]="/lib/udev/rules.d" 为S["udevrulesdir"]="/dymind/alsa/install/lib/udev"
vim config.log +671 修改 systemdsystemunitdir='/lib/systemd/system' 为 systemdsystemunitdir='/dymind/alsa/install/lib/systemd'
vim config.status +658 修改 S["systemdsystemunitdir"]="/lib/systemd/system" 为 S["systemdsystemunitdir"]="/dymind/alsa/install/lib/systemd"
2、make
**********************************************************
将/usr/include/linux/sched.h中的
/*
* Scheduling policies
*/
#define SCHED_NORMAL 0
#define SCHED_FIFO 1
#define SCHED_RR 2
#define SCHED_BATCH 3
/* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE 5
#define SCHED_DEADLINE 6
/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */
#define SCHED_RESET_ON_FORK 0x40000000
**********************************************************
添加到 alsactl/alsactl.h中
3、make install
将生成的文件拷贝到开发板上
1、在Linux操作系统上的路径得和板子上的路径一样
2、将编译的alsa压缩包复制到板子上/dymind目录下并解压,将sbin、bin以及lib下面的所有文件拷贝到/目录下去
配置环境
(1)先查找alsa.conf的位置
#cd /
#find ./ -name alsa.conf
./share/alsa/alsa.conf
(2)、配置环境变量
#export ALSA_CONFIG_PATH=/share/alsa/alsa.conf
(3)、配置adau1761.state文件
# alsactl restore -c 0 -f asound.state
5、测试播放
#aplay 3758176211.wav
Playing WAVE '3758176211.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
**********************************************************************************************
方法三
在buildroot构建文件系统时在make menuconfig中添加alsa工具
优点:简洁,简单,alsamixer图形工具
**********************************************************************************************
需文件的下载链接
链接:https://pan.baidu.com/s/15IYUlyA00A7cmoj-DaGUGQ
提取码:mn7e
|