logo资料库

Mplayer移植详细过程.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
教学目的及要求: 1.掌握交叉编译环境的搭建; 2.了解软件移植的基本原理;; 3.掌握嵌入式软件移植的一般过程 实验内容于分析设计: 1、掌握 C 语言基础知识; 2、掌握 Linux 环境下 vi 编辑器的使用方法; 3、掌握 Makefile 的编写和使用方法; 4、掌握 Linux 下的程序编译与交叉编译过程; 5、掌握软件移植的一般方法。 所需硬件环境: 1、博创 UP-CPU6410 教学及科研平台; 2、PC 机 pentium500 以上,硬盘 40G 以上,内存 512MB 以上; 所需软件环境: 1、libmad-0.15.1b.tar.gz 2、MPlayer-1.0rc2.tar.bz2 3、4.3.1-eabi-armv6-up-cup6410.tar.gz 交叉编译器 设计过程: 1、解压 4.3.1-eabi-armv6-up-cup6410.tar.gz 软件包,搭建编译环境; 2、解压 libmad-0.15.1b.tar.gz,并编译; 3、解压 MPlayer-1.0rc2.tar.bz2,并使用.configure 编译,最后 make 生成可执行程序。 4、连接开发板,在开发板上执行、测试。 具体操作: 1、 准备源码安装包及测试文件 2、搭建交叉编译环境搭建: (1) 环境搭建 1、连接串口线、网线和电源线 线路连接:连接电源线,网线和 TTL 串口调试线,串口连接方式如下: 2、使用超级终端连接开发板 (1)配置好串口调试环境 安装 USB 转接串口工具:PL2303_Prolific_DriverInstaller_v1210.exe
查看 com 端口号:右键电脑->属性->硬件->设备管理器。如果驱动安装会成果, 会有如下图显示: 双击该端口,将配置改成如下图,还可以在高级当中更改端口配置:
更改后点击确定,然后右键端口,选择如下,即可看到更新后的端口号。 (2)安装 SecureCRT,建立超级终端,连接开发板 1.打开端口访问工具 securecrt,对光盘中的 securecrt.zip 解压即是该工具。 双击 SecureCRT.exe 2.配置如下:其中端口号是和刚设置的端口号保持一致。
3.如果连接成功,会出现如下标记: 重新插入开发板电源,会出现相应的启动信息。 3、设置好 nfs 网络,使开发板和宿主机可以联通 1.查看宿主机网络配置:ifconfig 2.在超级终端查看开发板网络配置:ifconfig,若不在同一网段,配置为跟宿主机同一个 网段。 ifconfig eth0 …… netmask …… 3.看看开发板和宿主机是否能 ping 通。若不通,关闭宿主机防火墙: service iptables stop chkifconfig iptables off reboot 4.配置 nfs 也可以通过命令配置 nfs (1)进入/etc/init.d 中启动 nfs ./nfs stop ./nfs start (2)建立主机连接开发板的文件夹 mkdir /home/nyqiuya/arm-jcby (3)修改/etc/exports 文件 gedit /etc/exports 再该文件中添加:/home/nyqiuya/arm-jcby 92.168.1.*(rw,sync)
(4)挂载 在开发板端: mount –t nfs –o nolock 宿主机 IP:/挂在目录 /mnt 或者 mountnfs 宿主机 IP:/挂在目录 /mnt 其中/mnt 是开发板端的目录 (2)安装交叉编译工具链 1、 解压工具链到某一目录上 tar -xzvf arm-linux-gcc-4.3.2.tar.gz -C /usr/local/arm 2、 修改/etc/profile,添加 pathmunge /usr/local/arm/4.3.2/bin 3、 执行 source 4、 检测是否安装成功 /etc/profile,使生效 which arm-linux-gcc 或者 arm-linux-gcc -v 3、配置生成可执行程序 1、移植准备: 软件准备:MPlayer-1.0rc4.tar ① 在 虚 拟 机 下 创 建 一 个 文 件 夹 用 于 Mplayer 移 植 并 把 libmad-0.15.1b.tar 和 MPlayer-1.0rc4.tar 复制到所创建的文件夹中 所用命令:mkdir libmad-0.15.1b.tar /share cp MPlayer-1.0rc4.tar /share cp libmad-0.15.1b.tar /share ②进入/share 并在/share 下创建两个分别命名为 MPlayer 和 libmad 的文件夹用于存放 lib 库和 Mplayer 应用文件 /share 所用命令:cd mkdir mkdir MPlayer libmad 2、编译 libmad 配置环境 ①在/share 解压 libmad-0.15.1b.tar 所用命令:tar zxvf libmad-0.15.1b.tar ②进入解压得到的源码目录中,运行 configure,生成 Makefile 所用命令:cd libmad-0.15.1b ./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --disable-debugging --prefix=/share/libmad ③修改 Makefile,找到 Makefile 中的“--fforce-men”,删除后保存 所用命令:gedit (用 vi Makefile 时,搜索命令:g/fforce-men) Makefile ④make 和 make install 所用命令:make make install
3.检查 进入/share/libmad 中输入 ls,查看是否成功生成 include 和 lib 两个文件夹,include 中 为 mad.h,lib 中为 libmad.a 和 libmad.la 4.交叉编译 Mplayer ①在/share 下解压 MPlayer-1.0rc4.tar 所用命令:tar zxvf MPlayer-1.0rc4.tar ②进入解压得到的源码目录中,运行 configure,生成 Makefile 所用命令:cd /MPlayer-1.0rc4 ./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-fbdev --enable-static --disable-dvdread --disable-live --disable-mp3lib --enable-mad --disable-ivtv --disable-dvdnav --disable-libdvdcss-internal --enable-libavcodec_a --prefix=/share/MPlayer 2>&1 | tee logfile --disable-dvdread-internal --disable-win32dll --disable-mencoder ③手动添加 libmad 库的支持 –with-extralibdir 提示没 由于下载的 Mplayer 源代码在配置时--with-extraincdir 有 此 配 置 选 项 , 因 此 需 手 动 添 加 libmad 库 的 支 持 , 我 的 解 决 方 法 是 将 /share /libmab/include 下文件直接拷贝到 mplayer 源代码中,同时也把/share /libmab/include 下的 mad.h 拷贝到 Mplayer 源代码中,而对于其下面的库 libmad.a,则先执行上面的“运 行 configure”一步,会生成 config.mak 文件,然后修改 config.mak 即可。 所用命令:cp -r /share/libmad/include /share/ MPlayer-1.0rc4 cp /share/libmad/include/mad.h /share/ MPlayer-1.0rc4 ④修改 MPlayer-1.0rc4 中 config.mak 修改 config.mak 中在-lmad 后加上-L/share/libmab/lib,然后执行下一步 所用命令:gedit /config.mak ⑤修改 Makefile 修改 MPlayer-1.0rc4 下 libmpeg2 下 motion_comp_arm_s.S 文件 在最前加入: #ifndef HAVE_PLD .macro pld reg .endm #endif 所用命令:gedit /libmpeg2/motion_comp_arm_s.S ⑥运行 make 编译源代码 所用命令:make ⑦install 修改 查资料看 install 带-s 参数时会自动调用 strip 来 strip 应用程序。但是 arm 编译时要调 用 arm-linux-strip 才有正确处理。解决办法是取消-s 参数,查看 Makefile 可以发现-s 是如下 $(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF) $(BINDIR)
的 INSTALLSTRIP 设置的,它默认是-s,因此只要简单在 Makefile 的 install 部分前面加 入: INSTALLSTRIP := ⑧执行 make install #将其置为空即可 5、检查 进入/share/MPlayer 中输入 ls,查看是否成功生成 bin、etc、share 和 lib 四个 文件夹 6、连接开发板 ping 通,配置 nfs,关闭防火墙,挂载/share 文件夹到开发板 7、将自己准备的音乐文件拷贝到所挂载的文件夹中,在开发板上利用 Mplayer 运 行音乐和视频文件。 8、其他 ①制作一个播放列表:ls ②随机播放:mplayer -playerlist tom.lst -shuffle /mnt/*.avi > tom.lst -playerlist 指定播放列表 -shuffle 指定随机播放 9、结果 在开发版上运行,将耳机插入相应位置,所播放的音乐即通过耳机传入耳中 Mplayer 移植总结 Mplayer 是自带的 mp3lib 库来进行 mp3 解码的,但是 arm 系列的 cpu,一般 都没浮点运算单元,而 mplayer 的 mp3 解码默认使用 mp3lib,这个是浮点运算库, arm 上肯定跑不了。需要使用 libmad 库,所以需要提前移植 libmad 库。另外,准 备开始前请先确定已安装交叉编译器 arm-linux-gcc(4.3.2),并已经在终端设置 好环境变量,做好这些就可以开始移植工作了。 一般软件的移植主要分五大步骤: ①、解压所需的库文件等软件压缩包 ②、配置环境 ③、运行 configure 生成 Makefile ④、修改 Makefile ⑤、make 和 make install 在开发板上输入 ./mplayer *.avi -framedrop -quiet -vf rotate=1,scale=240:320 测试时,发 现没有声音。这时,我们需要输入一下命令: mkdir -p /dev/sound ln -s /dev/dsp /dev/sound 原因是:目标系统上有/dev/dsp 音频设备文件,只是 OSS 音频驱动需要的是 /dev/sound/dsp 设备文件,这个问题的简单解决方法是建一个符号链接,当然这 两条命令可以写在系统的启动文件的适当位置,即修改系统的/etc/init.d/rcS 文 件。
分享到:
收藏