Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1265479
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2010-03-28 09:41:16

使用scratchbox交叉编译mplayer
使用scratchbox可以简化交叉编译遇到的各种问题,相当于一个arm或其它体系结构的虚拟机,
交叉编译就像本地编译一样。

建立好了scratchbox的环境后,第一个想要编译的软件是mplayer

下载mplayer源码

apt-get source mplayer

解压,进入目录

./configure --prefix=/usr

怎么出现了
......
Checking for ARMv5TE (Enhanced DSP Extensions) ... yes
Checking for ARMv6 (SIMD instructions) ... yes
Checking for iWMMXt (Intel XScale SIMD instructions) ... no
......
我只想用armv4t指令集编译,怎么认为是ARMv5TE和ARMv6呢
我倒是想有armv6的开发板用

还是make
make install
在板子(2410)上运行,
结果,很多error
有一句是大概是
complied in one machine,run on another machine

指令集不对,应该是qemu模拟器的问题

看configure做了什么事

if arm ; then
echocheck "ARMv5TE (Enhanced DSP Extensions)"
if test $_armv5te = "auto" ; then
    cat > $TMPC << EOF
int main(void) {
    __asm__ __volatile__ ("qadd r0, r0, r0");
}
EOF

用汇编代码测试cpu的指令集,qadd应该是armv5te比armv4t增加的指令

继续搜armv5te
发现
--enable-armv5te) _armv5te=yes ;;
--disable-armv5te) _armv5te=no ;;

这下好了,可以用--disable-armv5te选项

./configure --prefix=/usr --disable-armv5te --disable-armv6

make

make install

直接在scratchbox里运行mplayer,终端输出正常,没有图像,
ubuntu没有开frame buffer的原因?还是只是模拟不支持?

在板子上运行,拿一个普通的视频,很花
一开始还以为是编译不对,颜色什么的没有设置,或是驱动的问题

后来拿一个在手机(moto ezx平台,pxa27x处理器,armv5te指令集)
上可以流畅看的视频,在板子上播放,有点卡,不过颜色是对的,色块比较明显

控制台还有
   *****************************************************
           **** Your system is too SLOW to play this! ****
           *****************************************************
的输出
看来2410还是差多了

我没有编译ligjpeg,libogg之类的库,直接编译了mplayer,
一开始是打算先尝试编译mplayer,看需要什么库再补上,结果不需要其它库,也能编译通过
在编译mplayer之前仅仅编译了libtool和ncurse库
阅读(526) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~