详细参考有道云笔记,文档:2.移植QT5.6.2到X210(详解).note
链接:http://note.youdao.com/noteshare?id=1fd61c2d7d1db6f1ddd79e83adf73701&sub=121A68D4B8B4443AB5E3B0EE15C04AF4
CSDN识别md文件有问题,不吐槽了......就不排版了。
所需资源:
- x210(cortex-a8)
- 内核: 2.6.35.7 + android2.3/QT4.8.3
- PC 环境:ubuntu14.04 32位
- 交叉编译工具链:arm-none-linux-gnueabi-gcc-4.4.1(来自三星的arm-2009q3)
- 开发板已装载好 Linux
- 挂载x210开发板根文件系统方式:NFS(自行制作开发板根文件系统)
- 移植mplayer:MPlayer-1.0rc2(一款开源多媒体播放器,移植后我们需要的是mplayer这个可执行文件,用于放在开发板根文件系统中)
- 移植libmad-0.15.1b(一个开源的高精度MPEG音频解码库)
涉及技术:
- (1)libmad移植:(QT依赖的触摸屏库)
- (2)libmad-0.15.1b源码移植及交叉编译
- (3)nfs挂载根文件系统
- images 目录: mplayer 可执行文件
- libs 目录:移植需要的库压缩包和 mplayer 的压缩包。
- video 目录: mplayer 播放需要的 mp4 格式的视频文件(1024*600帧宽高度)
(ps:需要其他适合自身开发板屏幕分辨率的帧宽高,可以使用魔音工厂生成)
编译源代码:
1.配置、 编译、安装 libmad 库
1.1. 解压缩 libmad-0.15.1b.tar.gz,并进入目录下:
tar zxf libmad-0.15.1b.tar.gz cd libmad-0.15.1b |
1.2. 配置 libmad-0.15
./configure --enable-fpm=arm --host=arm-none-linux-gnueabi --disable-shared --disable-debugging --prefix=/usr/local/arm/arm-2009q3/lib CC=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc |
注意/usr/local/arm/arm-2009q3是我的交叉编译工具链的路径
make,报错如下:
cc1: error: unrecognized command line option "-fforce-mem"
1.3.解决方法: 在Makefile中找到包含"fforce-mem"字符串,将其删除即可;
原因:gcc3.4或更高版本中,已将将该选项去除了。
1.4.安装
make && make install 至此, libmad 库就安装好了。
2. 配置、编译、安装 MPlayer-1.0rc2
2.1. 解压缩 MPlayer-1.0rc2.tar.bz2,并进入 MPlayer-1.0rc2 目录
tar xjf MPlayer-1.0rc2.tar.bz2
cd MPlayer-1.0rc2
2.2. 配置 MPlayer-1.0rc2
./configure --cc=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc --target=arm-none-linux-gnueabi --enable-static --prefix=/opt/MPlayer/MPlayer-1.0rc2 --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/usr/local/arm/arm-2009q3/lib/include --with-extralibdir=/usr/local/arm/arm-2009q3/lib/lib --host-cc=gcc --enable-ossaudio |
然后make:提示如下错误:
解决方法,在 安装 MPlayer时: ./configure --disable-ivtv
./configure --cc=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc --target=arm-none-linux-gnueabi --enable-static --prefix=/opt/MPlayer/MPlayer-1.0rc2 --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN --disable-armv5te --disable-armv6 --with-extraincdir=/usr/local/arm/arm-2009q3/lib/include --with-extralibdir=/usr/local/arm/arm-2009q3/lib/lib --host-cc=gcc --enable-ossaudio --disable-ivtv --disable-tv |
注意配置之前先make clean一下。
再make,提示如下错误:
解决方法:找到ioctl.c的相应行,全部屏掉(Pvim跳转到指定行:首先按esc进入命令行模式 :n (跳转到文件第n行,需要回车))
再编译,编译成功
2.3. 编译
make 至此,就编译出了 mplayer 可执行文件。
3.测试
3.1将 mplayer 拷贝到开发板根文件系统的/bin 目录下
我的开发板根文件系统路径(/root/porting_x210/rootfs/rootfs/)
3.2 将 video 目录里的测试视频文件 Transformers2.mp4 也拷贝到开发板根文件系统下。
3.3 在终端中进入跟文件系统中执行mplayer程序来播放
mplayer Transformers2.mp4
当然 也可以播放mp3文件,拷贝 daoxiang.mp3文件到我们的跟文件系统
mplayer daoxiang.mp3
所用源码: