移植qt与tslib到x210开发板的体会

author author     2022-08-06     592

关键词:




1、将QT移植到X210上,让X210开发板可以运行QT东西,需要几个东西。tslib QT源码编译后的lib库等


(1)tslib移植:


@1:下载tslib,官方上下就可以。


@2:解压。比如解压到了/root/xin_210/下



@3:选择固定的交叉编译工具连,内核,tslib,QT源码都要用这一个编译,我用的是arm-2009q3.这个工具链中的arm-none-linux-gnueabi/libc/usr/include/linux/input.h中的EV_VERSION宏的的值要和内核

中的include/linux/input.h中的EV_VERSION宏的值一样,同时,这个宏的值也要和tslib中的/plugins/input-raw.c中的

if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&

                 (version == EV_VERSION) &&

                 (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&

                 (bit & (1 << EV_ABS)) &&

                 (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&

                 (absbit & (1 << ABS_X)) &&

                 (absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {

                 //debug

 

                 printf("EV_VERSION=%p ", EV_VERSION);//0x10000

                 printf("version=%p ", version);        //0x10001

                 printf("bit & (1 << EV_ABS)=%d ", (bit & (1 << EV_ABS))); //0

                 printf("absbit & (1 << ABS_X)=%d ", (absbit & (1 << ABS_X))); //82344

                 printf("absbit & (1 << ABS_Y)=%d ", (absbit & (1 << ABS_Y))); //82344

                 printf("absbit & (1 << ABS_PRESSURE)=%d ",(absbit & (1 << ABS_PRESSURE))); //-33272

                 fprintf(stderr, "selected device is not a touchscreen I understand ");

                return -1;

         }

version值一样。就是说,内核中的版本宏和所使用的交叉编译工具链的版本宏要和tslib中的版本宏一样,否则tslib会说找不到触摸屏


@4:  在解压的tslib中,执行./autogen.sh


@5:  之后在执行

./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi --prefix=/root/rootfs/rootfs/opt/jiuding_tslib ac_cv_func_malloc_0_nonnull=yes


prefix指定的是你的tslib:在make后,make install时的安装目录


@6:执行 make install,之后tslib就会安装在你的指定目录下。里面有bin lib include etc四个文件夹


@7:进行到安装后的tslib的etc目录下,打开ts.conf文件。修改内容如下

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear


保存退出


@8:将bin lib include etc 四个文件全部弄到你的开发板要用的文件系统中。哪个目录下都行,我的是在文件系统的/opt/jiuding_tslib/目录下


@9:nfs启动根文件系统,运行./ts_calxxx什么的那个,点击十字架后就会得到你要的pionterxx什么的触摸屏检验的信息文件,会在tslib的etc目录中出现。


@10:如果是一路下来的,就不会有错误。至此tslib移植成功






 

(2)QT源码移植


@1:下载 qt-everywhere-opensource-src-4.7.4.tar.gz, 这个QT源码压缩包,

@2:这里我当你的 qt creator已经安装在了你的Linux环境下,我的是Ubuntu。


@3:将下载下来的QT源码进行解压。我解压在了 /QT/QT_ARM/目录下。并确保你的交叉编译工具链已经导入到了环境变量中。


@4:解压后,进入qt-everywhere-opensource-src-4.7.4/mkspecs/qws/linux-arm-g++/目录下,打开qmake.conf文件。修改内容如下

#

# qmake configuration for building with arm-linux-g++

#


include(../../common/g++.conf)

include(../../common/linux.conf)

include(../../common/qws.conf)


# modifications to g++.conf

QMAKE_CC                = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -lts

QMAKE_CXX               = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-g++ -lts

QMAKE_LINK              = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-g++ -lts

QMAKE_LINK_SHLIB        = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-g++ -lts


# modifications to linux.conf

QMAKE_AR                = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-ar cqs 

QMAKE_OBJCOPY           = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-objcopy

QMAKE_STRIP             = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-strip<font face="黑体"></font>


load(qt_config)


修改后保存退出。


@5:进行配置,执行如下


sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demos -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/root/rootfs/rootfs/opt/jiuding_tslib/include -L/root/rootfs/rootfs/opt/jiuding_tslib/lib -confirm-license


prefix=是将来编译QT源码后,安装QT时所在的目录。-I后面的是你的tslib所在的头文件路径。-L后面是tslib所在的lib路径。


@6:make 编译。如果缺少什么东西,需要自己去网上搜,全部安装下。不然编译会有很大的问题。前面的tslib也是。


@7:我在make 时,最后出现了libhelpso unreference什么的问题,最后并不是完全的编译通过 ,但是我实在找不到原因了,就直接make install了,居然成功了


@8:make install 后,QT就安装在了你的指定目录下了。


@8:开发板上需要的是你QT安装目录下的lib中的库文件。为了防止将这个lib文件夹直接复制到文件系统中后会有符号链接等不正常的问题,我们可以将这个

lib文件夹进行打包,然后复制到文件系统中合适的路径下,进行解压,最后是在和你的QT安装路径一样的对应到文件系统中。避免后面有可能的错误。


@9:进入到文件系统中,将这个lib进行解压。然后创建一个sh脚本,或者是在/etc/profile中进行环境变量的设置,内容如下


export TSLIB_TSEVENTTYPE=INPUT

export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH

export QTDIR=/usr/local/qt4.8.5-arm

export T_ROOT=/opt/jiuding_tslib

export PATH=$T_ROOT/bin:$PATH

export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event2

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_CALIBFILE=/opt/jiuding_tslib/etc/pointercal

#export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=Tslib:/dev/input/event2

export QT_QWS_FONTDIR=$QTDIR/lib/fonts

export QWS_SIZE=1024x600


我的触摸屏是event2,你的如果你不知道,你可以cat去看event,并触摸触摸屏,看哪个是你的触摸屏设备文件


运行这个脚本,或者设置在文件系统的profile中后关机机重启


@10: 在Linux下的 qt creator中写QT程序,选定好你用的交叉编译工具链,选定好的QT版本(就是你安装的QT目录下的bin文件中的qmake文件)


@11:编写好QT程序,可以先stat 这个可执行程序,看下是不是arm架构的,是就可以复制到文件系统中了,运行这个程序了,但是要注意


运行这个程序时,后面要加上 -qws


@12:结束,其他错误的地方,可以去网上进行一步看


然后启动开发板,nfs挂载根文件系统。




本文出自 “whylinux” 博客,谢绝转载!

移植tslib和qt5.6到三星s5pv210开发板

tslib1.4移植下载tslib1.4后1.cptslib-1.4.tar.bz2/home/gec2.tarjxvftslib-1.4.tar.bz23.sudo-s4.cdtslib-1.4/5../configure--host=arm-linux--prefix=/usr/local/armac_cv_func_malloc_0_nonnull=yes6.make7.makeinstal 查看详情

x210官方uboot配置编译时实践

2.3.1、X210官方uboot配置编译实践2.3.1.1、找到官方移植好的uboot(BSP概念)(1)源头的源代码是uboot官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用SoC对应的移植版本。(2)SoC厂商在... 查看详情

移植qt5.3.1到arm

...也有好长的时间了。当中提供了非常多的特性,所以这次移植的是qt5的最新版本号5.3.1。第一步准备好源代码包,这里须要qt的源代码包。和tslib包。tslib我使用的是开发板提供的包。设置交叉编 查看详情

i.mx6ull应用移植|移植tslib到linux开发板(1.22)(代码片段)

一、tslib二、移植到imx6ull开发板1.下载源码tslib的github仓库为:https://github.com/libts/tslib。下载最新发布的tag,为1.22版本:2.移植(1)解压源码:xz-dtslib-1.22.tar.xztar-xftslib-1.22.tar解压后的文件如图&#x 查看详情

全志a64qt移植(代码片段)

1.把编译工具 gcc-linaro-aarch64.tar.xz添加到环境.bashrc中2.下载tslib-1.4.tar.gz,libiconv-1.15.tar.gz,qt-everywhere-opensource-src-5.6.1.tar.gz3.由于tslib与libiconv无法识别arch64所以需要解压编译工具并创建软链接。#!/bin/shln-saarch64- 查看详情

i.mx6ull应用移植|移植tslib到linux开发板(1.22)(代码片段)

一、tslib二、移植到imx6ull开发板1.下载源码tslib的github仓库为:https://github.com/libts/tslib。下载最新发布的tag,为1.22版本:2.移植(1)解压源码:xz-dtslib-1.22.tar.xztar-xftslib-1.22.tar解压后的文件如图:(2... 查看详情

转载tslib移植_freescaleimx6

本文来自网络:http://blog.csdn.net/xishuang_gongzi/article/details/49422879环境:host:Ubuntu12.04target:freescaleimx6交叉编译链:4.6.2tslib源代码:在https://github.com/kergoth/tslib下载到较新版本tslib安装目标路径:/imx_disk/xx/qt/tslib 查看详情

qt开发之移植qt5.6.2到s5pv210(代码片段)

1、移植前的准备工作 (1)确认已经烧录uboot,并设置环境变量bootcmd和bootargs从tftp、nfs启动; (2)zImage事先编译好的,文件夹形式的rootfs准备好,成功启动内核进入命令行; (3)ts驱动源码确认添加、设备文件确认OK(dev/input/event2... 查看详情

tslib1.4qt4.8.6移植过程记录(代码片段)

工作原因需要把原JAVA界面移植成QT界面,触摸驱动这个坑填了好久,今天终于搞定了,也怪自己经验不足吧。记录一下忘了以后还可以看看,设置的环境变量都是机器上的,如果需要使用得改改下载tslib1.4,安装相应要用到的工... 查看详情

移植qt至tiny210详细过程(代码片段)

实验所需资源:tiny210(cortex-a8)QT版本:5.6.2PC环境:UBUNTUtslib:tslib-1.4交叉工具链:4.5.1开发板已装载好Linux编译tslib可能需要安装的库:sudoapt-getinstallautoconfsudoapt-getinstallautomakesudoapt-getinstalllibtool编译安装步骤如下:tarxzftslib-1. 查看详情

最新qt4.8+kernel_3.2.5+uboot_2010.06+tslib移植成功-问题小结

2012-02-1921:34:13都是从源码下载然后自己修改,使用与TQ2440,之前uboot其实已经完成了。但是yaffs2没带起来。现在回头看来是很简单的了。bootargs参数中我设置成了ramdisk但是无法挂载yaffs2啦。修改了下就可以了。安装配置QT4.8到是... 查看详情

x210串口配置与stdio移植

串口控制器初始化关键步骤  (1)初始化串口的Tx和Rx引脚所对应的GPIO(查原理图可知Rx和Rx分别对应GPA0_1和GPA0_0)  (2)GPA0CON(0xE0200000),bit[3:0]=0b0010 bit[7:4]=0b0010   (3)初始化这几个关键寄存器UCON0ULCON0UMCON0UFCON0UBRDIV0UDIVSLOT0... 查看详情

tslib移植中环境变量编辑

(1)将/usr/local/tslib下的所有文件复制到移植系统文件中/usr/local(2)编辑移植系统中/etc/profile添加触摸屏支持内容:在/etc/profile文件中设置tslib环境变量:#指定tslib主目录位置exportTSLIB_ROOT=/home/system/tslib#指定触摸屏设备exportTSLIB_... 查看详情

uboot配置编译源码分析

一、X210官方uboot配置编译实践1、找到官方移植好的uboot(BSP概念)(1)源头的源代码是uboot官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的SoC对应的移植版本。(2)SoC厂商在推出一... 查看详情

搭建qt环境(代码片段)

一.什么是QT 二. tslib移植和测试  2.1.什么是tslib  2.2.部署tslib    2.2.1.获取tslib-1.4源文件      a.下载地址:https://github.com/kergoth/tslib#setup-and-configure-tslib      b.tar-xvftslib-1.4.tar.gz  [email protecte... 查看详情

移植qt5.6到嵌入式开发板(史上最详细的qt移植教程)

目前网上的大多数QT移植教程还都停留在qt4.8版本,或者还有更老的Qtopia,但是目前Qt已经发展到最新的5.7版本了,我个人也已经使用了很长一段时间的qt5.6forwindows,本文就来介绍一下QT在嵌入式环境的搭建。 移植以到JZ2440为例... 查看详情

3内核的启动过程(代码片段)

...该删掉这些家伙。我们现在分析的是开发板厂商九鼎科技移植好的针对X210开发板的kernel,因此其中一些无用文件已经被删掉了。 建立SI工程并解析建立方法和uboot中当时讲的是一样的。 Makefile分析kerne 查看详情

请教qt5的移植问题

参考技术A一、准备busybox1.14.1qt-embedded-linux-opensource-src-4.5.1tslib1.4gccversion4.3.2(SourceryG++Lite2008q3-72)构建一个新的根文件系统目录,路径为/root/rootfs二、具体步骤:1、编译安装busybox在最新版。可以参考如下几处要修改的地方:BusyboxS... 查看详情