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 触摸屏正常使用.