mini2440 成功移植 qt embedded linux 4.5.3 至开发板并使用

操作系统 debian5.0.1

编译器 arm-linux-gcc-4.3.2

先移植 tslib

安装三个工具

    apt-get install autoconf automake libtool

运行脚本

    ./autogen.sh         注(不知道为什么,这行脚本中有 echo 但是 终端不显示)

3帧缓冲文件以及配置

    echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH_tslib.cache  

避免检查ac_cv_func_malloc_0_nonnull,如果不写这句,在Make时候会出现undefined reference to `rpl_malloc' 的错误。

./configure --prefix=/home/tslib --host=arm-linux --cache-file=$ARCH_tslib.cache --enable-inputapi=no

注:如果你的触摸屏驱动支持ioctl操作,在./configure时不用“--enable-inputapi=no”,不支持就要添上,如果不添加无法运行程序,会有“ts_open:Inappropriate ioctol for device“、“ts_open: No such file or directory”这样的错误。

    make

    make install

此时会在/home/tslib 目录中有东西出来,把 tslib 目录 拷贝到开发板目录下的/home 目录中

在开发板中配置环境变量(在共享文件夹(vi ./etc/profile))

export TSLIB_ROOT=/home/tslib

export TSLIB_TSDEVICE=/dev/event0           #(某些好像是 /dev/input/event0) 看实际情况来确定

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0             #(某些好像是 /dev/fb/0) 看实际情况来确定

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

可以在终端使用env来查看tslib的环境变量的配置情况。

下面是Tslib 1.4中的ts.conf的参考配置:

# Uncomment if you wish to use the linux input layer event interface

# module_raw input

把#去掉

在开发板中进入 /home/tslib/bin 运行

./ts_calibrate

如果没问题,此时屏幕能正确校准,如果有问题不能运行或者其它,请赶紧删掉重做吧.

再移植 qt embedded

我的配置参数如下:

./configure -prefix /mini2440 -opensource -release -shared -fast -xplatform qws/linux-arm-g++ -embedded arm -no-javascript-jit -no-script -depths 16 -no-webkit -fast -no-qt3support -no-sql-sqlite -no-openssl -qt-mouse-tslib -I/home/tslib/include -L/home/tslib/lib

   有一些我很疑惑,我明明 '-qt-mouse-tslib' 参数,但我却不向别人那样 使用-I -L 指定头与库,配置也不报错...很郁闷...不过,不出问题,我不管它,继续.


   make -C src/(make之后会报错我们只需要修改/src/3rdparty/freetype/include/freetype/config/ftconfig.h Line 330.

    * "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */
      + "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ )

   make install

此时会在 /mini2440 目录中生成头文件与库,在开发板的 / 目录下也建立相同的mini2440目录,把lib文件夹 考过去.

   编译测试程序,在 examples/qws/mousecalibration 目录下 运行make

我修改了Makefile 文件,修改了如下一行 -L/home/tslib/lib -lts ,在原有的 -lts 之前加上了使用此库的路径,表示使用我刚刚编译过的libts库来连接.

   之后把程序考入开发板的目录

为开发板增加环境变量


export QTDIR=/mini2440
export LD_LIBRARY_PATH=$QTDIR/lib:/home/tslib/lib:$LD_LIBRARY_PATH
export QWS_KEYBOARD='LIRC:/dev/lircd'
export QWS_MOUSE_PROTO=tslib:/dev/event0   #(某些好像是 /dev/input/event0) 看实际情况来确定

   在开发板中运行 mousecalibration 进行QT的效准,OK 触摸屏正常使用.

相关推荐