这两周工作不是太忙,移植了QT到hi3520(arm1176)上,同样步骤也可以移植到hi3511(arm926ej),已测试。
PC主机做如下操作:
1.下载qt-embedded-linux-opensource-src-4.5.3.tar.gz,网上很多文章都还有下载qt-x11-opensource-src-4.5.3.tar.gz和tslib-1.4.tar.gz,如果你有自己的arm板的话,qt-x11完全可以不用,因为我的硬件上没有触摸屏,所以tslib也没有用;
2.把qt-embedded-linux-opensource-src-4.5.3.tar.gz拷贝到/home/chl/temp/qt/(工作目录,视自己情况而定,但交叉编译后arm的文件系统下最好也在同样名称的目录下,否则可能会运行出错,原因未仔细分析);
tar xvzf qt-embedded-linux-opensource-src-4.5.3.tar.gz
cd qt-embedded-linux-opensource-src-4.5.3
vim mkspecs/qws/linux-arm-g++/qmake.conf,把所有的arm-linux-**改为arm-hismall-linux-**
./configure --prefix=/home/chl/temp/qt/Trolltech/qtHisi -no-pch -xplatform qws/linux-arm-g++ -arch arm -embedded arm -no-freetype -qt-mouse-pc
vim examples/examples.pro,删除行
contains(QT_CONFIG, webkit): SUBDIRS += webkit
否则编译example webkit时会报错
vim demos/demos.pro,删除两行
contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser
demos_browser.subdir = browser
否则编译demo browser会出错
gmake
gmake install,则会在/home/chl/temp/qt/Trolltech/qtHisi下安装交叉编译好的arm上的程序;
cp -rfa /home/chl/temp/qt/Trolltech/qtHisi/* /home/chl/hisi/rootfs3520/QtEmbedded-4.5.3-arm
其中home/chl/hisi/rootfs3520为export出来的nfs文件夹,供调试用;
ARM启动后做如下操作:
从海思发布的SDK包里面rootfs-FULL_REL下搜索libstdc++.so.6 libstdc++.so.6.0.3并复制到/lib下;
交叉工具链的安装目录搜索libgcc_s.so libgcc_s.so.1并复制到/lib下;
mount -t nfs -o nolock HOSTIP:/home/chl/hisi/rootfs3520 /mnt
mkdir -p /home/chl/temp/qt/Trolltech
ln -s /mnt/QtEmbedded-4.5.3-arm /home/chl/temp/qt/Trolltech/qtHisi
export QTDIR=/home/chl/temp/qt/Trolltech/qtHisi
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
以上四句为环境变量声明,网上很多文章中都还有声明QWS_MOUSE_PROTO、TSLIB_FBDEVICE等,建议不要声明这些变量,因为qt会自动匹配相关的鼠标设备和framebuffer设备,有时候声明了反而会影响鼠标的正常工作,我的framebuffer和鼠标设备符分别为/dev/fb0和/dev/mice,QT可以自动识别,确保起见,不是这两个名称的宁可用ln -s做一下软链接,也不要随便去设置环境变量;
此时,就可以测试运行一下了,首先运行一下海思SDK中mpp/sample下的hifb测试程序,把framebuffer 0打开,再运行qt的各个example和demo,如:
cd /mnt
./api_sample_hifb &
保证此时可以在显示器上看到测试画面,保证VGA芯片驱动及framebuffer驱动加载运行正确,然后,
cd /home/chl/temp/qt/Trolltech/qtHisi/demos/chip/
./chip -qws
即可在显示器上看到QT的测试画面效果;
如果运行过程中提示“QFontEngineQPF failed”字样,把src/gui/text/qfontdatabase_qws.cpp打开做一下空写操作,然后重新上面所有步骤再编译一遍即可,原因未明。
GOOD LUCK!!
阅读(5299) | 评论(0) | 转发(0) |