• 基于tiny6410的madplay播放器的移植


    在移植madplay之前需要先将所需要的库移植到开发板的文件系统中。

    现在每个解压后的文件夹中创建一个文件夹

    zlib-1.1.4.tar.gz

    解压:tar xvzf  zlib-1.1.4.tar.gz

       cd zlib-1.1.4

       mkdir __install

    配置:./configure --shared --prefix=$(PWD)/__install

    修改Makefile文件  将编译器更换为交叉工具

    make

    make install

    拷贝 __install/lib/* 到开发板的/lib/下

    libid3tag-0.15.1b.tar.gz

    解压:tar xvzf  libid3tag-0.15.1b.tar.gz

    cd libid3tag-0.15.1b

    mkdir __install

    配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

    make

    make install

    拷贝 __install/lib/* 到开发板的/lib/下

    libmad-0.15.1b.tar.gz

    tar xvzf  libmad-0.15.1b.tar.gz

    mkdir __install

    配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

    make

    make install

    如果出现编译选项--fforce-mem 则打开Makefile  删除--fforce-mem即可

    拷贝 __install/lib/* 到开发板的/lib/下

    madplay-0.15.2b.tar.gz

    tar xvzf  madplay-0.15.2b.tar.gz

    mkdir __install

    配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

    make

    make install

    拷贝./_install/bin/madplay 到开发板的/sbin/目录下

    然后安装alsa库

    一、移植alsa的接口库和工具包

    1、移植alsa-lib

    a.可以到http://www.alsa-project.org/main/index.php/Download下载最新版本的alsa库(alsa-lib-1.0.29.tar.bz2)和工具包(alsa-utils-1.0.29.tar.bz2)。

    b.解压alsa-lib-1.0.29.tar.bz2

    c.配置alsa-lib

    ./configure --host=arm-linux  --prefix=/usr/local/share/arm-alsa  --enable-shared --disable-python --with-configdir=/usr/local/share/alsa  --with-plugindir=/usr/local/lib/alsa_lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld

          --host :为使用的交叉编译工具名,直接使用 arm-linux 也可以,根据 PC上安装的交叉编译工具来决定;

      --prefix:即 make install 时程序安装的目录,可以根据自己的情况进行修改,不用拘泥

          --enable:开启功能  --disable :关闭功能,使用动态库不需要Python。

        --with-configdir: alsa 配置文件所在目录,本目录要定好位置,交叉编译过后,移植到板子上时要和 PC 上路径一致。也即是说如果配置的时候指定的是/usr/local/share/alsa目录,那么你的配置文件在开发板上的绝对路径也要是/usr/local/share/alsa。默认 alsa配置文件会在安装目录里。这个很重要,不能PC和开发板两边不匹配。

        --with-plugindir: alsa_lib 所在目录,目前意义不明,可以自由定位,也可以默认安装,先不用管。但是这里指定的目录会产生必要的库文件,放到开发板的时候也要路径和PC一样。

    d.编译安装

    make

    make  install

    2、移植alsa-utils

    a.解压以后进入解压得到的目录

    b.配置

    ./configure --host=arm-linux --prefix=/usr/local/share/arm-alsa CFLAGS="-I/usr/local/share/arm-alsa/include" LDFLAGS="-L/usr/local/share/arm-alsa/lib -lasound" --disable-alsamixer --disable-xmlto --with-alsa-inc-prefix=/usr/local/share/arm-alsa/include --with-alsa-prefix=/usr/local/share/arm-alsa/lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld

    CFLAGS:编译工具需要要的头文件目录,也就是前面编译库文件得到的头文件

        LDFLAGS:编译工具需要要的库文件目录,也就是前面编译库文件得到的库文件

        --with-alsa-inc-prefix:和CFLAGS一样  --with-alsa-prefix:和LDFLAGS一样。

    c.编译和配置

    make

    make install

    3、部署文件到开发板

    进入到PC的/usr/local/share目录(之前配置时候指定的,根据你的配置选项决定),因为我们所有的安装目录都在这个目录下。

    a.将/usr/local/share目录下的alsa,arm-alsa拷贝到开发板的/usr/local/share目录下

    cp ./alsa  /home/OK6410/rootfs/usr/local/share  -rfa

    cp ./arm-alsa  /home/OK6410/rootfs/usr/local/share -rfa

    b.将/usr/local/lib目录下的alsa_lib拷贝到开发板上/usr/local/lib(自己先创建)目录下

        cp ./alsa_lib  /home/OK6410/rootfs/usr/local/lib/ -rfa

    c.将arm-alsa/lib目录下的文件拷贝到开发板根文件系统的/lib目录下

    cp ./arm-alsa/lib/*  /home/OK6410/rootfs/lib –rfa

    d.将arm-alsa/bin目录下的文件拷贝到/sbin目录下

    cp ./arm-alsa/bin/*  /home/OK6410/rootfs/bin -rfa

    e.将arm-alsa/sbin目录下的文件拷贝到/sbin目录下(如没有则不拷贝)

        cp ./arm-alsa/sbin/*  /home/OK6410/rootfs/bin -rfa

    f.添加环境变量,编辑开发板的文件系统里的/etc/profile,切记是开发板的文件系统不是PC的文件系统啊!!!在结尾添加

    export ALSA_CONFIG_PATH=/usr/local/share/alsa/alsa.conf

    安装alsa后

    拷贝标准函数库

    打开友善之臂给的文件系统  把其中的/lib/* -rf 拷贝到自己开发板的/lib/下

                 把其中的/etc/rc.d -rf 拷贝到自己开发板的/etc/下

                 把其中的/etc/mdev.conf 拷贝到自己开发板的/etc/下

    修改系统初始化脚本 把下面的添加到最后面

    MODULE_PATH=/lib/modules/`uname -r`
    if [ ! -f ${MODULE_PATH}/modules.dep.bb ]; then
            depmod
    fi

    /etc/rc.d/init.d/asocd start

    然后用madplay即可播放音乐

  • 相关阅读:
    jQuery
    基于Js实现的UrlEncode和UrlDecode函数代码
    利用缓存、Timer间隔时间发送微信的实例,很有用的例子
    VisualStudio 自动排版等 快捷键
    正则表达式判断手机号码属于哪个运营商
    .Net常用方法汇总
    .NET中的三种Timer的区别和用法
    C# List和String互相转换
    Tempdb--TempDB Basic
    Tempdb--查看tempdb使用的脚本
  • 原文地址:https://www.cnblogs.com/ynxf/p/5325924.html
Copyright © 2020-2023  润新知