1. 编译PC上的Qt。这里的configure参数不是很重要,用默认的参数即可。这里为了调试方便加入-qvfb参数。
gunzip qt-x11-opensource-src-4.3.2.tar.gz
tar xvf qt-x11-opensource-src-4.3.2.tar
./configure -qvfb
make
make install
2. 交叉编译嵌入式Qtopia-core。这里的configure参数对于最终库文件的大小和支持的功能至关重要,一定要确保加入了足够的功能,同时不需要的功能一个也不要!
gunzip qtopia-core-opensource-src-4.3.2.tar.gz
tar xvf qtopia-core-opensource-src-4.3.2.tar
cd /tmp/qtopia-core-opensource-src-4.3.2
在qtopia-core-opensource-src-4.2.2/src/gui/embedded/qmouselinuxtp_qws.h加入
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
以上两个定义是为了支持触摸屏
在下面的configure参数中,-prefix指定了最后install的目录,
./configure -prefix /home/ace/Qtopiacore-4.3.2 -no-largefile -xplatform qws/linux-arm-g++ -no-libtiff -no-gif -no-libmng -no-openssl -no-cups -no-qdbus -embedded arm -little-endian -no-freetype -qt-gfx-linuxfb -no-qt3support -depths 8,16
make
make install
将编译好Qtopiacore-4.3.2下lib库放到根文件系统的Qtopiacore下 (注意根文件系统中的目录要和-prefix /home/ace/Qtopiacore-4.3.2一样否则下到arm板上运行程序的时候会报错说找不到字体)。
如果报错说找不到libstc++.so.6文件,可以将usr/local/arm/3.4.1/arm-linux/lib/libstc++.so.6复制到/home/ace/Qtopiacore-4.3.2/lib下(或者软链接)。
为了实现触摸屏的校准将/home/ace/Qtopiacore-4.3.2/examples/qtopiacore/mousecalibration/mousecalibration拷贝到根文件系统中,在文件系统的.bashrc文件中加入环境变量,并且export QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"。
3. 制作根文件系统及进行触摸屏校准。
将根文件系统下到arm板子上去,启动板子运行./mousecalibration -qws 进行触摸屏的校准。
校准完后 cat /etc/pointercal,将显示的数据记录下来, 然后新建一个空白文档将其命名为pointercal ,然后将记录的数据放到pointercal文档中。
rm -f /etc/pointercal
sudo cp -f 新建的pointercal /etc
sudo chown 500:244 /etc/pointercal
制作根文件系统,烧到arm板子。
4. Done!
没有评论:
发表评论