扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
飞利浦968的Qnes模拟器,不能在夏新E600上运行,这是众所周知的。自
从有了Shell这个入口,自然也清楚不能运行的具体原因!经过一段时间,的
确可以完美运行!
二、重要提示
为了方便更好的理解本文,提供下面链结。
全系列的文章地址,手机应用开发专栏:http://blog.csdn.net/liwei_cmg
相关的重要成果的下载地址:http://play.younet.com/view.php?tid=24045
三、方法
飞利浦968和夏新E600的系统是十分接近的,连可执行程序,库文件的版本
都是一致,全部是ARM 1.0指令集而且是基于Linux 2.0.0内核。移植软件无非是
处理可执行程序和相关库文件。好了我们实际操作下!
按http://play.younet.com/view.php?tid=24045里说明,安装_setup.prg
和E600.rar。
研究里面的内容就可以知道,是如何进行移植的。
A.E600/tmp下的一些install脚本,是用“软件安装”调用执行。所做的操作
仅仅是复制文件。
B.E600/exe下的qnes.txt文件,直接被“模拟器”调用运行,十分关键,内容
如下:
#!/bin/sh
export CECHOME=/mnt/cellon
export QTDIR=$CECHOME/qt
#export QWS_KEYBOARD=TTY
export CECDIR=$CECHOME/cec
export LD_LIBRARY_PATH=/mnt/sd/e600/lib:$CECHOME/lib:$CECDIR/lib:$QTDIR/lib:/mnt/doc/ibm/jvm/bin:$LD_LIBRARY_PATH
#export QWS_DISPLAY=:1:/dev/fb0
/mnt/doc/cec_local/bin/qnes 2>/mnt/sd/e600/log/qnesrunerror.txt
可见LD_LIBRARY_PATH加入了/mnt/sd/e600/lib的搜索路径,这里的lib内容
就是从夏新968里复制出来的libipm.so文件。另外在install脚本中也把qnes相关
文件qnes.png,qm文件复制到指定目录,缺少这些文件也能运行,不过显示会有些
异常。
在刚开始移植中,使用了下面的运行脚本:
export CECHOME=/mnt/cellon
export QTDIR=$CECHOME/qt
export QWS_KEYBOARD=TTY
export CECDIR=$CECHOME/cec
export LD_LIBRARY_PATH=/mnt/sd/e600/lib:$CECHOME/lib:$CECDIR/lib:$QTDIR/lib:/mnt/doc/ibm/jvm/bin:$LD_LIBRARY_PATH
export QWS_DISPLAY=:1:/dev/fb1
/mnt/doc/cec_local/bin/qnes -qws 2>/mnt/sd/e600/log/qnesrunerror.txt
没有 -qws 运行参数时,会提示错误,加上 -qws ,运行倒是可以,不过画面
按键皆与系统冲突。后来我考虑/dev/fb1并非直接的显示设备,换成/dev/fb0,略
有好转。其间也尝试使用968的QT库,不过反而按键会更乱。TTY也试过不少次,不
过皆不奏效,甚至想到kill winmgr的方法,不过很糟糕,造成手机会不断重启,这
点让我十分遗憾,在E680如此平常的操作,在E600居然会频繁重启!
/dev/fb0,也能正常进行游戏,不过偶然间经过搞搞震测试,发现将qws的环境
变量全部去掉,正常运行qnes,发现模拟器居然十分完美,什么冲突也不见了,原
因我没有工夫去细细查看,有兴趣的话可以google搜索研究下。
另外在移植过程中,出现一次Segmentaion Fault,原因不详,我考虑可能是
fontdir的问题。
四.总结
想不到,本来认为十分简单的模拟器移植,居然也耗了这么多的工夫,可谓:
纸上得来终觉浅,绝知此事要躬行!
少说话,多做事,如此而已。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者