zoukankan      html  css  js  c++  java
  • 基于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即可播放音乐

  • 相关阅读:
    Django对静态文件的处理——部署阶段
    使用Django来处理对于静态文件的请求
    Django1.7如何配置静态资源访问
    Spring WebSocket中403错误解决
    FastJSON JSONObject 字段排序 Feature.OrderedField
    国际化(i18n) 各国语言缩写
    【转】java.io.Closeable接口
    【转】spring bean 卸载
    This content should also be served over HTTPS
    Failed to close the ServletOutputStream connection cleanly, Broken pipe
  • 原文地址:https://www.cnblogs.com/ynxf/p/5325924.html
Copyright © 2011-2022 走看看