Ubuntu8.10 tslib1.4 触摸屏校准 及 Qotpia4的移植(YL2410)

Ubuntu8.10 tslib1.4 触摸屏校准 及 Qotpia4的移植

标签 :  移植   qtopia4   2009-04-10 10:34

    利用星期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-吧,界面先不用了。

你可能感兴趣的:(工作,ubuntu,测试,Path,library,makefile)