[X]关闭

linux ADAU1761音频驱动之alsa工具安装(三)

文档创建者:ぉ沙皮狗的忧伤
浏览次数:9184
最后更新:2020-03-18
本帖最后由 ぉ沙皮狗的忧伤 于 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



发表评论已发布 1

ぉ沙皮狗的忧伤

发表于 2020-3-18 16:04:18 | 显示全部楼层

文件的下载链接
链接:https://pan.baidu.com/s/15IYUlyA00A7cmoj-DaGUGQ
提取码:mn7e
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则