利用星期6跑了下Qotpia4,对我打击太大了,速度太慢,点一下屏幕5、6秒才有反应,哭阿。
触摸屏移植这里也加上去吧,不罗说,码字!!
把文档写好点,不然大家看起来不方便:)
模仿游哥吧,我的偶像阿,哈哈!!
系统环境:Ubuntu8.10 gcc-4.1.3 arm-linux-gcc-3.4.1
目标系统:s3c2410(优龙FS2410)
(1)tslib的移植
做tslib的移植工作前,首先保证你的LCD正常工作,启动时有小企鹅在左上角,具体设置可以参考游哥另外一篇文章: http://embstudy.org/home/space.php?uid=2&do=blog&id=44
小企鹅在左上角的参数:.left_margin = 13,
.right_margin = 65,
.hsync_len = 4,
.upper_margin =15,
.lower_margin =7
tslib移植主要参考游哥的文章:http://embstudy.org/ home/space.php?uid=2&do=blog&id=45
源码包:tslib-1.4
这里加一个小小的修改,触摸屏移植后只会产生一个mouse0节点,不会产生event0节点,在开发板跑起来后cat /proc/bus/input/devices 可以看到只有handlers=mouse0,这导致在tslib测试的时候不能正常使用,解决方法是在内核中选中
Device Drivers->Input device support-><*>Event interface
再跑开发版,查看下 Handlers=mouse0 event0 OK了 后面tslib的环境变量TSLIB_TSDEVICE=/dev/event0才正常了!!
1) 解压,进入解压目录,设定一些环境变量和修改文件
>export PREFIX=/root_nfs/tslib
>export CC=arm-linux-gcc
>./autogen.sh
>echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
>./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache --enable-inputai=no
>make
>make install
说明:比游哥的多加了个--enable-inputai=no,如果你是tslib1.3.错误就会出现,1.4我也加上了,是为了防止后面测试程序时ts_open错误
2)在/root_nfs/tslib文件夹下有4个文件夹,这些就是我们需要的东西了。
测试tslib:
修改/root_nfs/tslibtslib/etc/ts.conf
在前面添加 module_raw input,注意不要多空格
保存
设置环境变量
export TSLIB_ROOT=/tslib
export TSLIB_TSDEVICE=/dev/event0
export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH
export QWS_SIZE=320x240
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
export TSLIB_TSEVENTTYYPE=H3600
说明:最后一行好像可以不要
3)这样就可以测试触摸屏了
>cd /tslib/bin
>./ts_calibrate
这个测试程序功能是生成触摸屏校验文件,后面QT要用到,运行后依次点5个点就OK,保存在/etc/pointercal。
(2)Qtopia-opensource-4.3.3的移植
1)先建立工作目录,我建立的是./work/qtopia,注意!qotpia不能在源码包解压的目录生成Makefile
在该目录下解压qtopia,配置configure
在该目录下输入,注意不是qtopia解压的目录:
./qtopia-opensource-4.3.3/configure -debug -shared -edition phone -xplatform linux-arm-g++ -arch arm -prefix /opt/Qtopia4 -no-qvfb -displaysize 320x240 -no-ssl -no-bluetooth -no-dbus -no-drm -no-v4l2 -no-modem -no-libamr -extra-qt-config "-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg" -extra-qtopiacore-config "-xplatform qws/linux-arm-g++ -embedded arm -qt-mouse-linuxtp -qt-mouse-tslib -I/root_nfs/tslib/include -L/root_nfs/tslib/lib"
-I/root_nfs/tslib1/include -L/root_nfs/tslib/lib 这2个是tslib的目录。
说明:这里用了debug,用release运行qpe的时候会出现segmentation 错误,不知问什么,
2)
>make
>make install
这里列出可能出现的错误:
++出现 cc1: error: unrecognized command line option "-fvisibility=hidden"错误
--解决 http://blog.chinaunix.net/u2/86537/showart_1716377.html
--这个是gcc版本太低的原因 换成比3.4.1更高的版本
++出现一个错误 是qvfb的 /usr/bin/ld: cannot find -lXtst
--解决http://ubuntuforums.org/showthread.php?t=161330
--sudo apt-get install libxtst-dev
--还可以在Makefile 中加入 LDFLAGS = -L/usr/X11R6/lib 不过我没有试过 0 0
++出现inlined from ‘QMemoryFileData* QMemoryFile::openData(const QString&, int, uint)’ at /work/qtopia/qtopia- opensource-4.3.3/src/libraries/qtopiabase/qmemoryfile_unix.cpp:130:
++/usr/include/bits/fcntl2.h:51: 错误: 调用‘__open_missing_mode’,声明有错误属性:open with O_CREAT in second argument needs 3 arguments
--解决:http://qtextended.org/modules/newbb_plus/viewtopic.php?topic_id=984&forum=16
--这个是由于GCC语法要求严格照成的,修改qmemoryfile_unix.cpp:130, f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY, (S_IRUSR|S_IWUSR));
3)make install
这边不会有什么错误!!
4)
设置环境变量
export QTDIR=/opt/Qtopia4
export TSLIB_ROOT=/tslib
export TSLIB_TSDEVICE=/dev/event0
export LD_LIBRARY_PATH=/tslib/lib:/opt/Qtopia4/lib:$LD_LIBRARY_PATH
export QWS_SIZE=320x240
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_TSEVENTTYYPE=H3600
export PATH=$QTDIR/bin:$PATH
export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
5)
进入根文件系统的opt/Qtopia4/bin
>./qpe -qws 等吧,我等了2分钟,唉,界面是出来了,但是颜色不太对,灰灰的,可能是我configure中没有加depths这项,Qtopia4就是一个字,慢!!!!
过几天在搞吧,直接上qt-embedded-吧,界面先不用了。