• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 有成功移植tslib到mini6410的吗,进来参谋参谋 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
楼主  发表于: 2011-06-30 09:50

 有成功移植tslib到mini6410的吗,进来参谋参谋

下载tslib1.4

解压
修改tslib/plugins/input-raw.c

把其中的ts_input_read 函数改成如下:

static int ts_input_read(struct tslib_module_info *inf,
    struct ts_sample *samp, int nr)
{
    // printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");
struct tslib_input *i = (struct tslib_input *)inf;
struct tsdev *ts = inf->dev;
struct input_event ev;
int ret = nr;
int total = 0;
unsigned long jjts;
     while(total<nr)
      {
         ret = read(ts->fd, &jjts, sizeof(jjts));

        if (ret==-1) continue;

     samp->pressure=(jjts>>31) & 0x01;
     samp->x=(jjts>>16) & 0xffff;
     samp->y=jjts & 0xffff;
        
     samp++;
     total++;
      }

ret=total;
return ret;

}



然后编译 tslib

./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/usr/local/tslib
make
make install
vi /usr/local/tslib/etc/ts.conf
修改ts.conf为
module_raw  input
module pthres pmin=1
module variance delta=30
module dejitter delta=10000
module linear

复制tslib到开发板对应的目录,我这里用的nfs挂载
cp /usr/local/tslib/ /opt/my/rootfs_nfs/usr/local/ -r

修改qt4脚本为:

#!/bin/sh

if [ -e /etc/friendlyarm-ts-input.conf ] ; then
    . /etc/friendlyarm-ts-input.conf
fi
true    ${TSLIB_TSDEVICE:=/dev/touchscreen}

export TSLIB_ROOT=/usr/local/tslib

TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_TSDEVICE
export TSLIB_CONFFILE

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal

export QWS_DISPLAY=:1
#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

if [ -c /dev/touchscreen ]; then
    export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
    if [ ! -s /etc/pointercal ] ; then
        rm /etc/pointercal
        $TSLIB_ROOT/bin/ts_calibrate
    fi
else
    export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi

export QWS_KEYBOARD=TTY:/dev/tty1

export HOME=/root

echo "Starting qt4 app.." > /dev/tty1

cd /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/embedded/fluidlauncher
./fluidlauncher -qws
hotplug

重启开发析板,进不了qt4,屏上能显示"Starting qt4 app.." ,然后光标一直在那里闪

把 TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 注释掉就可以进qt4界面了,不知是哪里的原因

我运行/usr/local/tslib/bin下的 ts_calibrate和ts_test都是正常了,应该说tslib是没问题了,但为什么qt会启动不起来

友善的工程师,能不能指导一下

级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
1楼  发表于: 2011-06-30 20:57
ts_lib应该是移植成功了,可能是qt/e找不到它

qt/e在config的时候,是不是还要指定ts_lib的路径啊,但在友善的一键编译脚本中并没有看到路径的设置

友善的售后工程师,能不能出来说一下。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2011-07-01 08:05
要在环境变量中设置吧,看看/bin/qtopia,它是个脚本
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
3楼  发表于: 2011-07-01 09:04
/bin/qtopia脚本肯定是不行的,

我用的是qt4,用是的/bin/qt4的脚本,也只是修改了tslib的环境变量

export TSLIB_ROOT=/usr/local/tslib
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_TSDEVICE=/dev/touchscreen
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal

就发现不能用了,是不是qt4.7的源码里友善做了什么修改?
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
4楼  发表于: 2011-07-01 09:58
Qte4.7没有做过修改,你可以自己对比源代码看看
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
5楼  发表于: 2011-07-01 12:51
那tslib安装的路径是什么样的啊,

我认为,应该是qt4.7里tslib的路径和tslib安装的路径不一致,导致qt运行的时候找不到tslib的动态库文件

qt4.7没有指明tslib路径,应该是默认的。默认的路径是不是就是/usr/lib

可以tslib安装出来后有四个文件夹 bin etc include lib

那是不是tslib安装目录就是在usr下啊,

如果是这样,但为什么在开发板里usr下却没有etc目录呢
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
6楼  发表于: 2011-07-04 15:26
我重新编译了qt,并指明了tslib的路径

-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
编译脚本如下:

#/bin/bash

rm -fr qt-everywhere-opensource-src-4.7.0
rm -fr /usr/local/Trolltech/QtEmbedded-4.7.0-arm

tar xfvz qt-everywhere-opensource-src-4.7.0.tar.gz
cd qt-everywhere-opensource-src-4.7.0
echo yes | ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit -qt-libtiff -qt-libmng  -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -qt-mouse-pc -no-mouse-linuxtp -no-neon

make && make install

cd /usr/local/Trolltech/QtEmbedded-4.7.0-arm

报错:
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libts-0.0.so.0, needed by /opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so, not found (try using -rpath or -rpath-link)
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_read_raw'
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_open'
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_fd'
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_config'
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_close'
/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/lib/libQtGui.so: undefined reference to `ts_read'
collect2: ld returned 1 exit status
make[3]: *** [blockingfortuneclient] 错误 1
make[3]:正在离开目录 `/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/examples/network/blockingfortuneclient'
make[2]: *** [sub-blockingfortuneclient-make_default] 错误 2
make[2]:正在离开目录 `/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/examples/network'
make[1]: *** [sub-network-make_default] 错误 2
make[1]:正在离开目录 `/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0/examples'
make: *** [sub-examples-make_default-ordered] 错误 2
root@lxf-virtual-machine:/opt/qt4.7_yz/qt-everywhere-opensource-src-4.7.0#

后来,在configure的 -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib后面加上-lts,编译通过了

放到板上,QT运行了,触摸也有反应了,能点到正确的位置,但CPU占用率非常的高,有百分之9十几,如果不用触摸屏,只用鼠标还是很好

不知道是何故。。
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
7楼  发表于: 2011-07-04 15:28
有点想不明白的是,友善的一键编译脚本中并没有指定tslib的路径,它是如何与tslib通信的。


编译的时候为什么不会报上面的错误?
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
8楼  发表于: 2011-07-04 15:30
我也尝试过,tslib也不指定  -prefix,编译安装后,默认路径为usr/local

然后,我将tslib的一些库文件拷到根文件系统中替换友善的同名文件,重启开发板,还是不行,进不了qt界面

校准和test还是可以运行。

这是为什么呢
级别: 侠客
UID: 10328
精华: 0
发帖: 79
金钱: 400 两
威望: 80 点
综合积分: 158 分
注册时间: 2009-10-31
最后登录: 2012-03-02
9楼  发表于: 2011-07-04 15:42
在编译器的路径里发现

/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib

下有ts的一些库文件,这个是不是就是tslib的库文件

莫非 友善的一键编译脚本中并没有指定tslib的路径,而不会报错的原因在这里????
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go