基于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即可播放音乐
基于tiny6410的madplay播放器的移植的更多相关文章
- OK6410移植madplay播放器,王明学learn
对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...
- 1-1. OSS/ALSA 声卡的驱动与配置和 Madplay 嵌入式播放器的移植
报警子系统 一. OSS/ALSA 声卡的驱动与配置 声卡驱动中传统的OSS构架在02年被收购后即不开源,并且OSS的混音效果不好->因此ALSA构架孕育而生. ALSA(高级音频构架,目前应用 ...
- 基于FFMPEG的跨平台播放器实现
基于FFMPEG的跨平台播放器实现 一.背景介绍 FFmpeg是一款超级强大的开源多媒体编解码框架,提供了录制.转换以及流化音视频的完整解决方案,包含了libavcodec.libavformat等多 ...
- 基于ffmpeg的C++播放器1
基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...
- 基于FFMPEG的跨平台播放器实现(二)
基于FFMPEG的跨平台播放器实现(二) 上一节讲到了在Android平台下采用FFmpeg+surface组合打造播放器的方法,这一节讲一下Windows平台FFmpeg + D3D.Linux平台 ...
- 基于jQuery虾米音乐播放器样式代码
分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div c ...
- 仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)
代码下载:http://download.csdn.net/detail/qq316293804/6409417 昨天的教程里写着预计MFC播放器会隔得久一点,但是今晚仔细看了下VLC的常 ...
- [Linux][Madplay播放器移植mini2440(ARM9)]
Madplay移植到mini2440全过程详解 madplay交叉编译 交叉编译器:arm-linux-gcc 3.4.1PC环境:RedHat-6 注意:最好在root权限下执行以下移植,否则在ma ...
- 基于Android的在线播放器系统的设计与实现
文章结构: 1 引言 1.1系统的研究背景 现在的时代是互联网的时代,互联网高速发展的同时,无线网络也接入了互联网.社会的各个领域都已经被无线网络渗透.小的比如手机,电脑,电视.大的比如灯光系统,智能 ...
随机推荐
- Java笔试题(一)
一. 选择题(共50题,每题2分,共100分.多选题选不全或选错都不得分.) 7. 以下说法错误的是()/*这个我感觉是全对,谁知道哪个错啦,讲解下,非常感谢*/A) super.方法()可以调用父类 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- iOS中响应者链条-触摸事件
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -& ...
- C#程序猿电脑重装记录
最近比较空了,闲的手痒,将自己的笔记本进行了重装,之前每次重装都没有记录,这次将本次重装过程记录下来,以便下次参考 1 首先不用说了WIN7旗舰版装好,驱动装好 2 开启Administrator用户 ...
- char(10)和VARCHAR(10)主要的区别是什么?
区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 如: 存储字符串“abc", 对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符), 而同样的 ...
- BIEE使用技巧
索引: 1.如何清除缓存 2.通过“编辑 SQL”取得前一天的日期 3.格式化日历框参数 4.根据传入的开始时间和结束时间取得事实表中的指标(用到了3中的技巧) 5.直接调用数据库函数 6.时间格式转 ...
- MVC6的内置ActionResult类型
BadRequestObjectResult,BadRequestResult http 400 bad request ChallengeResult ContentResult Creat ...
- sql server使用中遇到的问题记录
一.sql server 不能连接远程服务器,但可以连接本地的数据库 我目前用的是sql server 2012 sp1,用着用着突然就不能连接远程服务器上的数据库了,崩溃了一天... 修复试了,卸载 ...
- CentOS 下JDK安装
第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...
- sql server 常见错误代码15000 - 15999含义解析
错误 15000 - 15999 SQL Server 2008 R2 其他版本 错误 严重性 是否记录事件 说明(消息正文) 15001 16 否 对象 '%ls' 不存在或不是此操作的有效对象. ...