在移植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即可播放音乐

基于tiny6410的madplay播放器的移植的更多相关文章

  1. OK6410移植madplay播放器,王明学learn

    对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...

  2. 1-1. OSS/ALSA 声卡的驱动与配置和 Madplay 嵌入式播放器的移植

    报警子系统 一. OSS/ALSA 声卡的驱动与配置 声卡驱动中传统的OSS构架在02年被收购后即不开源,并且OSS的混音效果不好->因此ALSA构架孕育而生. ALSA(高级音频构架,目前应用 ...

  3. 基于FFMPEG的跨平台播放器实现

    基于FFMPEG的跨平台播放器实现 一.背景介绍 FFmpeg是一款超级强大的开源多媒体编解码框架,提供了录制.转换以及流化音视频的完整解决方案,包含了libavcodec.libavformat等多 ...

  4. 基于ffmpeg的C++播放器1

    基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...

  5. 基于FFMPEG的跨平台播放器实现(二)

    基于FFMPEG的跨平台播放器实现(二) 上一节讲到了在Android平台下采用FFmpeg+surface组合打造播放器的方法,这一节讲一下Windows平台FFmpeg + D3D.Linux平台 ...

  6. 基于jQuery虾米音乐播放器样式代码

    分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div c ...

  7. 仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)

        代码下载:http://download.csdn.net/detail/qq316293804/6409417   昨天的教程里写着预计MFC播放器会隔得久一点,但是今晚仔细看了下VLC的常 ...

  8. [Linux][Madplay播放器移植mini2440(ARM9)]

    Madplay移植到mini2440全过程详解 madplay交叉编译 交叉编译器:arm-linux-gcc 3.4.1PC环境:RedHat-6 注意:最好在root权限下执行以下移植,否则在ma ...

  9. 基于Android的在线播放器系统的设计与实现

    文章结构: 1 引言 1.1系统的研究背景 现在的时代是互联网的时代,互联网高速发展的同时,无线网络也接入了互联网.社会的各个领域都已经被无线网络渗透.小的比如手机,电脑,电视.大的比如灯光系统,智能 ...

随机推荐

  1. [ javascript canvas 插件演示 ] canvas 插件演示

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  2. 转:与Microsoft Visual Studio集成良好的第三方工具

    我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...

  3. JavaScript学习04 对象

    JavaScript学习04 对象 默认对象 日期对象Date, 格式:日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用): 2.英文-数值格式:月 日,公元年 [时:分: ...

  4. 基于SolrCloud的内容搜索和热点推送

    ➠更多技术干货请戳:听云博客 什么是热点 我认为热点有时效性和受众面 用户关注从低到高再到低的内容 .有公共热点和分类热点.例如医辽养老全民关注,科技汽车等只有特定的人群关注. 推送的条件 搜索频次达 ...

  5. 查看特定View的默认属性值

    当我在分析focus.touch事件处理代码时发现,有些属性对代码的逻辑有非常重要的影响,比如clickable.focusable 这些属性.这时我们自然而然的想到,那么这些属性的默认值是什么呢?在 ...

  6. linux 学习随笔-vim

    在自己的home/username目录下 更改vim的配置文件 如果没这个文件 copy其他人的配置文件 然后拖到此目录下 执行mv vimrc ~/.vimrc 更改名字 即可生效 只对当前用户生效 ...

  7. 旧项目如何切换到Entity Framework Code First

    Entity Framework Code First固然是好东西,然而如果是已经存在的旧有项目,如何简单方便的使用切换呢? 这里介绍一个VS的插件Entity Framework Power Too ...

  8. iOS开发进阶

    <iOS开发进阶>基本信息作者: 唐巧 出版社:电子工业出版社ISBN:9787121247453上架时间:2014-12-26出版日期:2015 年1月开本:16开页码:268版次:1- ...

  9. [Linux 存储管理] LVM结构

    linux的LVM灵活且功能强大,当然越强大的就越难理解.lvm和硬盘大致关系应该如下,如果有误请大家左证. lvm中快照功能强大到,很多db的备份都依赖于这个功能,所以不能不理解和熟悉. <鸟 ...

  10. SqlServer服务器和数据库角色

    首先我们来阐述服务器(实例级别)的权限,实例级别和数据库级别权限的最大不同在于:实例级别的权限是直接授权给登录名,而数据库级别的全显示授予数据库用户的,然后数据库用户再与登录名匹配.(再SqlServ ...