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

专注it 专注it     2022-10-01     650

关键词:

tslib1.4移植


下载tslib1.4后
1.cp tslib-1.4.tar.bz2 /home/gec
2.tar jxvf tslib-1.4.tar.bz2
3.sudo -s
4.cd tslib-1.4/
5../configure --host=arm-linux --prefix=/usr/local/arm ac_cv_func_malloc_0_nonnull=yes
6.make
7.make install

修改tslib安装目录下的/etc/ts.conf文件去掉# module_raw input注释。
安装后把整个文件夹下载到开发板
在开发板/etc/profile 里配置环境变量,我的如下,要按你放的位置配置
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0 
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts    
export TSLIB_FBDEVICE=/dev/fb0               
export TSLIB_CONSOLEDEVICE=none              
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:/lib:/usr/lib:$LD_LIBRARY

source /etc/profile 使配置生效或重启开发板
进入/usr/local/tslib/bin 目录执行ts_calibrate校准程序,进行5点触摸校准

生成的校准文件名为pointercal,位于/etc目录下。


 

这些网址都是介绍tslib的移植,可以参考下。

 

http://blog.sina.com.cn/s/blog_406127500101dsmy.html

http://blog.chinaunix.net/uid-12461657-id-2975918.html
http://www.ttfanwen.com/info_12/fw_2537170.html
http://www.embeddedlinux.org.cn/emb-linux/system-development/201603/28-5238.html

http://mojijs.com/2016/07/217478/index.html

可能用到的资料

Linux系统如何查看版本信息
输入"uname -a ",可显示电脑以及操作系统的相关信息。
输入"cat /proc/version",说明正在运行的内核版本。
输入"cat /etc/issue", 显示的是发行版本信息。
lsb_release -a (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)


虚拟机当前内核版本安装位置
/lib/modules/`uname -r`/kernel

移植出现的错误


错误1:< selected device is not a touchscreen I understand >

查看tslib源码可知编译器的EV_VERSION要与内核的EV_VERSION一致。

修改内核include/linux/input.h的EV_VERSION使之与编译器的一致

移植经验表明修改内核的EV_VERSION较好

<1.从工程角度来看,一个项目中为了兼容不同编译特性,可能经常换编译器,而内核却很少重新解压编译
  更换编译器以后,很容易忘记掉修改input.h文件
2.从版本兼容的角度看,0x01001修改为0x01000是可以的,但是从0x01000修改为0x01001不合理
3.从跨平台角度,一个编译器可能有Linux版本和Windows版本,为了做到兼容或者跨平台编译,也不应修改编译器(出自网络某大神)>


tslib的EV_VERSION在linux/input.h里

其中有

 

内核 编译器  结果
EV_VERSION 0x010001 0x010000 ok
EV_VERSION 0x010000 0x010000 ok
EV_VERSION 0x010001 0x010001 no
EV_VERSION 0x010000 0x010001 no

 

不信的话可以自己试试。

参考下这个

http://www.cnblogs.com/lcw/p/3802624.html


错误2:< 出现界面,点十字架没反应 > < selected device is not a touchscreen I understand >触摸屏能显示,但对其操作无反应。


         原因1:网络上一参考博文的环境配置,其中没有export QWS_MOUSE_PROTO=tslib:/dev/input/event1 

         解决:环境变量加上export QWS_MOUSE_PROTO=tslib:/dev/input/event1 ,重启板子即可。

QWS_MOUSE_PROTO该如何写

http://www.cnblogs.com/baizx/archive/2010/04/08/1707790.html


原因2:内核裁剪时没加上触摸设备(更可能的原因)

     查看触摸屏的设备文件
hexdump /dev/event0
点触摸屏,有输出则证明event0是触摸设备

这是我的内核触摸驱动配置

Device Drivers --->
Input device support --->
[*] Touchscreens --->
< > S3C touchscreen driver //去除S3C 触摸屏驱动支持
<*> TSC2007 based touchscreens //添加TSC2007 驱动

具体驱动按自己的开发板lcd型号配置

其他原因参考

http://www.it165.net/embed/html/201409/2656.html

http://blog.chinaunix.net/uid-14782631-id-111870.html


tslib源码分析
http://blog.csdn.net/subfate/article/details/6361062
http://blog.csdn.net/hejinjing_tom_com/article/details/49252333
http://www.latelee.org/embedded-linux/porting-linux-tstest-code.html

http://www.ttfanwen.com/info_12/fw_2537170.html


Qt5.6移植

下载Qt5.6源码:https://download.qt.io/archive/qt/5.6/5.6.0/single/   下载qt-everywhere-opensource-src-5.6.0.tar.gz
1.tar zxvf qt-everywhere-opensource-src-5.6.0.tar.gz
2.cd qt-everywhere-opensource-src-5.6.0
3.指定开发板架构和交叉编译器/---+/ #
# qmake configuration for building with arm-linux-gnueabi-g++
#


MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib


QT_QPA_DEFAULT_PLATFORM =linuxfb                 #指定Qt运行平台 EGLFS, LinuxFB, KMS, DirectFB, Wayland                      
QMAKE_CFLAGS_RELEASE    += -O2 -march=armv7-a #O2为优化选项,march只处理器架构,s5pv210的架构是armv7
QMAKE_CXXFLAGS_RELEASE  += -O2 -march=armv7-a


include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)


QMAKE_INCDIR +=/usr/local/tslib/include #连接的tslib库位置
QMAKE_LIBDIR +=/usr/local/tslib/lib


# modifications to g++.conf
QMAKE_CC                = arm-si-linux-gnueabi-gcc #交叉编译器的名称(以下部分全换成自己的交叉编译器)
QMAKE_CXX               = arm-si-linux-gnueabi-g++
QMAKE_LINK              = arm-si-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-si-linux-gnueabi-g++


# modifications to linux.conf
QMAKE_AR                = arm-si-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-si-linux-gnueabi-objcopy
QMAKE_NM                = arm-si-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-si-linux-gnueabi-strip
load(qt_config)

4.根据需求配置Qt
./mkqt.sh
这是我的配置脚本
  1.     -L /usr/local/tslib/lib  

 Qt配置选项解释
  Qt4(解释更详细)
  http://www.360doc.com/content/10/0225/22/79031_16834764.shtml#
  Qt5(与以上网址对比看)
  http://www.cnblogs.com/chenfulin5/p/5798764.html

5.make  -j4 (4线程编译,长时间等待囧)
6.make install 

错误分析:
配置时遇到的错误
  错误1:
configuration Warning:Disabling pkg-configsincePKG_CONFIG_LIBDIRis not set.
Warning:Disabling pkg-configsincePKG_CONFIG_SYSROOT_DIRis not set.
 
Couldnotdeterminethetargetarchitecture!
Turnonverbose messaging (-v)to查看详情

s5pv210开发系列八_yaffs的移植

S5PV210开发系列八Yaffs的移植象棋小子   1048272975Nand作为市面上最基本的非易失性闪存技术之中的一个,应用在各种固态大容量存储解决方式中。因为Nandflash自身的特点,Nand存储器往往须要一款专用的Nand文件系统进行... 查看详情

s5pv210移植minigui3.0.12

移植平台:ubuntu:14.04 开发板:s5pv210(A8) Minigui版本:3.0.12-----------------------------------------------------以下软件是开发板正常运行的必须安装包,在MiniGui官网可以下载http://www.minigui.org/zhcn/【已放在嵌入式软件组资料共享文件夹】--... 查看详情

s5pv210移植无线wifi网卡mt7601

一、准备工作1、MT7601驱动下载点击下载2、插入usbWiFi启动开发板linux,lsusb查看usb驱动Bus001Device003:ID148f:7601看到的是该驱动的厂家设备信息3、解压源码到linux下,确认USB的VID和PID,在rtusb_dev_id.c中USB_DEVICE_IDrtusb_dev_id[]=#ifdefRT6570USB_D... 查看详情

s5pv210_uartstdio移植

...息等待输出putc:操控标准输出的硬件,将信息发送出去3、移植步骤:(1)解压printf.rar到uart_stdio目录,解压后会有include、lib两个目录,其中include放的是相关头文件,lib放的是printf、sc 查看详情

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

1、将QT移植到X210上,让X210开发板可以运行QT东西,需要几个东西。tslibQT源码编译后的lib库等(1)tslib移植:@1:下载tslib,官方上下就可以。@2:解压。比如解压到了/root/xin_210/下@3:选择固定的交叉编译工具连,内核,tslib,QT源码... 查看详情

嵌入式开发(s5pv210)——u-boot的不同来源和目录结构

...去uboot的官网下载uboot,然后把此款Soc的开发板的uboot移植上去并开源,让买这款Soc的公司去参考移植上去的uboot,然后开发自己的产品。Soc产商推 查看详情

嵌入式开发(s5pv210)——u-boot的头文件包含问题(代码片段)

...件的路径用链接来表示,这样的用意是为了程序的可移植性。uboot是高度可移植的,不同的配置和编译指令可以编译出不同Soc和开发板的程序,其中源码是没有改动的。不同的编译配置指令就是将链接指向不同的目录&... 查看详情

s5pv210开发板连接虚拟机的网络设置(代码片段)

1、前言用PC机进行嵌入式设备开发,会在pc机上安装虚拟机来运行linux系统,其中就涉及到开发板和虚拟机的通信问题。本文介绍的就是如何正确的设置网络,开发板通过有线网络与虚拟机通信。如果不知道如何设置... 查看详情

s5pv210|微处理器启动流程(代码片段)

...二次启动顺序用于引导代码描述的标题信息数据编写校验和示例代码S5PV210启动概述S5PV210支持从多种设备启动,如OneNAND、NAND、MMC等。S5PV210的启动框图如图所示,BL0是指S5PV210微处理器的IROM中固化的启动代码,BL1是指在IRAM自动从... 查看详情

s5pv210开发板常用易忘操作记录

一、调试串口2、SD卡槽  查看详情

s5pv210中断体系结构分析

...0的中断控制器是由4个向量中断控制器(VIC)、ARMPrimeCellPL192和4个TrustZoneInterruptController(TZIC)共同组成。S5PV210共支持93个中断源(具体见官方手册)。首先看Start.S.global_start.globalIRQ_h 查看详情

在s5pv210的开发板上使用串口收发信息

 参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先准备一个安装好Linux的开发板  使用 xshell工具连接开发板 ,winscp工具连接开发板 , 准备一个Ubuntu 32位,装上交叉编译链。。使用下... 查看详情

在s5pv210的开发板上点亮一个led灯

 参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先准备一个安装好Linux的开发板  使用 xshell工具连接开发板 ,winscp工具连接开发板 , 准备一个Ubuntu 32位,装上交叉编译链。。使用下... 查看详情

第一章之s5pv210启动顺序

我所使用的开发板是:友善之臂smart210,cpu为s5pv210.u-boot版本是:u-boot-2012-101,首先在u-boot中配置相对应的开发板的配置文件#makes5p_goni_config2,设事先编译好的交叉编译器放在Makefile中添加上去,打开Makefile在67行补充CROSS_COMPILE?=arm-linux-... 查看详情

嵌入式开发综述

0、嵌入式系统开发流程:   1、S5PV210内部结构图2、S5PV210系统启动三阶段正解     根据S5PV210芯片手册第6章所述S5PV210consistsof64KBROMand96KBSRAMasinternalmemory(意思210芯片有两块片上内存,ROM:64KB,SRAM:96KB),并... 查看详情

s5pv210开发板如何关闭看门狗(代码片段)

看门狗是什么?是SoC内部的一个定时器为什么需要看门狗?现实生活中由于一些外部环境因素,例如高温低温信号干扰,运行在电子设备上的程序容易跑飞和死机,在这种情况下,我们希望设备自动复位&#x... 查看详情

tiny210(s5pv210)移植u-boot(基于2014.4版本号)——移植u-boot.bin(打印串口控制台)

   在之前我们移植的代码中,都没看到明显的效果,这节我们实现控制台的信息打印。在上节。我们看到调用relocate_code重定位。在u-boot的帮助文档doc/README.arm-relocation中对重定位有说明。u-boot为了生成位置无关码,在... 查看详情