首页 / 操作系统 / Linux / mini2440 成功移植 qt embedded linux 4.5.3 至开发板并使用 tslib 支持触摸
操作系统 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/tslibexport TSLIB_TSDEVICE=/dev/event0 #(某些好像是 /dev/input/event0) 看实际情况来确定export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport 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
" /* %0 |= %2 << 16 */
+ "orr %0, %0, %2, lsl #16
" /* %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 触摸屏正常使用.