<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } H3 { margin-bottom: 0.08in } H3.western { font-family: "Liberation Serif", "Times New Roman", serif } H3.cjk { font-family: "DejaVu LGC Sans" } H3.ctl { font-family: "DejaVu LGC Sans" } -->
1.安装arm-linux-gcc-3.4.1.tar.bz2
在根目录下解压,解压后的默认目录在/usr/local/arm/3.4.1
设置环境变量,运行命令:
vi /etc/profile
加入 export PATH=/usr/local/arm/3.4.1/bin:$PATH
2.编译tslib-1.4
解压到/home下
#./autogen.sh
#./configure --prefix=/home/linux/mytslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
#make
#make install-strip //生成瘦身应用程序和库
3.编译qt-x11-opensource-src-4.4.2.tar.gz(用以生成qvfb)
tar zxf qt-x11-opensource-src-4.4.2.tar.gz
cd /home/linux/qt/qt-x11-opensource-src-4.4.2
./configure
make
make install
cd tools/qvfb
make 生成qvfb
4.编译qt-embedded-linux-opensource-src-4.4.2.tar.gz(arm)
tar zxf qt-embedded-linux-opensource-src-4.4.2.tar.gz
cd qt-embedded-linux-opensource-src-4.4.2
(我的QT的安装目录设置为根目录下的/usr/src/qt442arm)
./configure -prefix /usr/src/qt442arm -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I /home/linux/mytslib/include -L /home/linux/mytslib/lib
上面的红色部分必须让找前面的tslib的目录设置,否则会出现“The tslib functionality test failed!”错误
make
make install
qt-embedded-arm 被安装在/usr/src/qt442arm下.
建立arm环境变量文件
vi setarmrc
添加如下内容:
QTEDIR=/usr/src/qt442arm/
PATH=/usr/src/qt442arm/bin/:$PATH
LD_LIBRARY_PATH=/usr/src/qt442arm/lib/:$LD_LIBRARY_PATH
保存退出.移到/usr/src/qt442arm 中。
编译ARM版QT应用程序前,先执行此脚本文件,如source serarmrc
cd example/qws/mousecalibtration
qmake &&make (生成mousecalibtration可执行文件,后面需要将其拷贝到根文件中)
//qmake in /usr/src/qt442arm/bin
3.编译qt-embedded-linux-opensource-src-4.4.2.tar.gz(x86)
tar qt-embedded-linux-opensource-src-4.4.2.tar.gz
重命名为qt-embedded-linux-opensource-src-4.4.2x86
./configure -prefix /usr/src/qt442x86 -embedded x86 -qvfb -DQT_QLOCALE_USES_FCVT
说明:configure 时候加-DQT_QLOCALE_USES_FCVT就可以了,我也是碰到这个问题,搞了很久,追踪进去发现的浮点数运算问题导致的
make
make install
qt-embedded-x86被安装在/usr/src/qt442x86下
建立x86环境变量文件
vi setx86rc
添加如下内容:
QTEDIR=/usr/src/qt442x86/
PATH=/usr/src/qt442x86/bin/:$PATH
LD_LIBRARY_PATH=/usr/src/qt442x86/lib/:$LD_LIBRARY_PATH
保存退出.移到/usr/src/qt442x86中(mv setx86rc /usr/src/qt442x86)
编译embedded x86 版QT应用程序前,先执行此脚本文件
5.制作根文件
我的工作目录是在根文件下,首先将root_default.tgz拷贝到根目录下,加压,生成root_default
cd /root/root_default(目录设为nfs_root,即为mini2440的根节点,下面会用到)
复制字库文件
把PC 机上/usr/src/qt442arm/lib/fonts 目录上所有字库文件CP 到mini
2440上/usr/src/qt442arm/lib/fonts下,实际为/root/root_default/usr/src/qt442arm/lib/fonts
复制运行库
在PC 机上复制下列文件到mini 2440的usr/src/qt442arm/lib/目录下,文件为:i.so.4 libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4
一般在PC 机上/usr/src/qt442arm/lib/和/tslib/上可以找到上述文件。复制
时注意如果需要复制的文件是链接文件,则把被链接文件都要复制上。
复制触摸屏软件
复制PC 机上/tslib/目录上全部文件(含子目录)到mini 2440上/tslib 目录
在开发板上建立环境变量
修改开发板上/etc/profile 文件,增加以下内容:
export QTDIR=/usr/src/qt442arm
export TSLIB_ROOT=/tslib
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib
修改mini 2440上/tslib/etc/ts.conf 文件:把第二行# module_raw input 前面的#和空格去除,保存退出。
校准触摸屏
从新启动开发板,执行:
cd /
cd tslib/bin
./ts_calibrate 校准触摸屏
./ts_test 测试触摸屏
如果正常,QT4 Embedded 移植成功!
注1:4.4.2的lib文件夹全部拷贝过来,但是要删除fonts内除了wenquanyi_120_50.qpf 之外的其他文件,否则太大
注2:用下面方法生成yaffs2文件
解压mkyaffsimage.tgz,得到mkyaffsimage可执行文件
./mkyaffsimage root_default root.yaff2
得到根文件root.yaff2,如果要看一下大小,可以执行
这样可以将root.yaff2烧到板子上去了。
注3:要是在板子上运行的时候提示缺少某些文件的时候,就去在PC机上的linux下寻找,需要主要的是看若是提示缺少的文件是以个链接文件时,需要把链接对象也拷入。
在板子上运行mousecalibtration的时候没有出现什么错误,可以正确的显示输入的汉字
目前在板子上运行的时候存在一定的问题:进入tslib运行ts_calibrate,总是提示ts_open: No such file or directory,这个问题一直没有解决,留在后面解决。
如果需要在PC机上使用qvfb来模拟,并且程序中需要显示中文的话,在执行程序的时候可以这样写:./程序名 -qws -font wenquanyi,这样在qvfb中可以正常的显示中文