移植tslib和Qt5.6到三星s5pv210开发板
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
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
生成的校准文件名为pointercal,位于/etc目录下。
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移植
qt-everywhere-opensource-src-5.6.0
/---+/
#
# 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
- -L /usr/local/tslib/lib
configuration
Warning:Disabling
pkg-configsincePKG_CONFIG_LIBDIRis
not
set.Warning:Disabling
pkg-configsincePKG_CONFIG_SYSROOT_DIRis
not
set.Couldnotdeterminethetargetarchitecture!Turnonverbose
messaging (-v)toseethefinal
report.
原因:没有指定自己交叉编译器mkspecslinuxarmgnueabig+qmake.conf修改#
modifications to g++.conf内容以下交叉编译器
make[4]: *** [sub-textureandlight-make_first] 错误 3
make[4]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples/canvas3d/canvas3d'
make[3]: *** [sub-canvas3d-make_first] 错误 2
make[3]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples/canvas3d'
make[2]: *** [sub-canvas3d-make_first] 错误 2
make[2]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples'
make[1]: *** [sub-examples-make_first] 错误 2
make[1]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d'
make: *** [module-qtcanvas3d-make_first] 错误 2
make: *** 正在等待未完成的任务....
make[4]: *** [sub-textureandlight-install_subtargets] 错误 3
make[4]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples/canvas3d/canvas3d'
make[3]: *** [sub-canvas3d-install_subtargets] 错误 2
make[3]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples/canvas3d'
make[2]: *** [sub-canvas3d-install_subtargets] 错误 2
make[2]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d/examples'
make[1]: *** [sub-examples-install_subtargets] 错误 2
make[1]:正在离开目录 `/home/sice/sources/qt/qt-everywhere-opensource-src-5.6.0/qtcanvas3d'
make: *** [module-qtcanvas3d-install_subtargets] 错误 2
7.安装完后把Qt所在文件夹下的lib、plugins文件夹打包下载到开发板,配置环境变量
export QTEDIR=/usr/local/Qt5.6
export QT_QPA_FONTDIR=$QTEDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
8.运行example里的程序测试Qt是否移植成功
Qt开发人员来说是很有用的
拷贝到板子的 /lib 下面,设置环境变 量 export LD_PRELOAD=/lib/preloadable_libiconv.so
原因1:qmake.conf中QT_QPA_DEFAULT_PLATFORM
=linuxfb没有设置为linuxfb。
移植tslib和Qt5.6到三星s5pv210开发板的更多相关文章
- 【团购活动】接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!
接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!http://bbs.eeworld.com.cn/forum.php?mod=viewthread& ...
- S5PV210开发板 VGA测试【转】
本文转载自:http://www.cnblogs.com/endlessli/archive/2011/07/07/2099865.html 不断努力 不断努力 S5PV210开发板 VGA测试 WY ...
- MPlayer在ARM上的移植(S5PV210开发板)
MPlayer 1.0已经把大部分解码库都自带了,如ffmpeg,但是自带的音频库在S5PV210下效果非常不好.换成使用libmad效果不错.因此MPlayer 在ARM-Linux的最简单的移植只 ...
- 移植linux4.14内核到四核Exynos4412开发板
最近法师收到了很多留言,其中有一部分问法师什么时候更新,还有一大部分问法师我是买迅为的IMX6UL精英版好呢还是买4412精英版好呢,因为我们这俩个都不贵.法师的建议的是入手4412!为什么呢? 第一 ...
- QT5.4.1在ARM开发板上不能显示汉字
在linux下正常的程序,移植到ARM上,中文不能显示.网上好多介绍,一头雾水.查看其中话题是关于中文显示的(http://www.qtcn.org/bbs/simple/?t55852.html). ...
- 九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像
Note: 我的S5PV210板子的磁盘是emmc版本,不是nandflash版本. 1. SD卡内烧录uboot镜像,然后作为启动盘来启动emmc中的内核镜像和根文件系统. 只要破坏emmc内的ub ...
- Gt9xx芯片,在规格书+Linux驱动的基础上,移植为USB裸机经验。直接用开发板,不去碰硬件的坑。
1,用内核代码和规格书来印证数据格式: //命令3字节,IC地址 u8 end_cmd[] = {GTP_READ_COOR_ADDR >> , GTP_READ_COOR_ADDR &a ...
- (一)S5PV210开发板常用易忘操作记录
一.调试串口 2.SD卡槽 (三)启动方式选择 蜂鸣器下面的白色2针插座(图中红色线圈出来的那个)为选择USB/SD卡启动的开关.默认情况下为SD卡启动,如果需要USB启动则使用短路帽(若没有短路帽, ...
- S5PV210开发板刷机(SD卡uboot、串口+USB-OTG刷机方法)
一.介绍 九鼎的S5PV210开发板,在出厂前已经默认刷了Android4.0系统.如果需要刷其它的系统或者是由于系统问题无法启动时,就需要对板子刷机. 其实,刷机是对210开发板的一个基础学习,目的 ...
随机推荐
- img标签src图片地址找不到显示默认图片
可以采用onerror的属性: onerror="javascript:this.src='${base}/after/img/aifu.png'" <img id=&quo ...
- 修改input中的placeholder属性的颜色
input::-webkit-input-placeholder{ color:#e8e8e8; } input::-moz-placeholder{ /* Mozilla Firefox 19+ * ...
- JOYOI 西瓜种植 [差分约束系统]
题目传送门 西瓜种植 题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目背景 笨笨:小西瓜,小西瓜~路人甲:不会呀,这西瓜明明就大着啊…… ...
- mysql正则查询 模糊查询
-- ==============正则查询================ /* SQL默认是忽略大小写的 正则模式使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们 ...
- http request GET 乱码分析
提交一个GET请求 在浏览器地址栏或搜索框输入地址:http://www.baidu.com/content/衣服?keyword=衬衣 其中的中文会被浏览器进行编码,具体编码情况请参考阮大神:关于U ...
- spring中使用@Value设置全局变量默认值
前几天在开发过程中遇到一个使用 spring 的 @Value 给类的全局变量设置默认值不成功的问题,最后通过查资料也是轻松解决,但是发现使用@Value也是有多种多样的方式,今天总算是将开发任务结束 ...
- 【BZOJ 2555】 2555: SubString (SAM+LCT)
2555: SubString Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 2548 Solved: 762 Description 懒得写背景了 ...
- WC2018伪题解
NOIP分数过低的场外选手,一个月之后才有幸膜到这套卷子.感觉题目质量很不错啊,可惜了T1乱搞可过,T2题目出锅非集训队员没有通知到,导致风评大幅被害. 感觉Cu的话随手写两个暴力就稳了,Ag的话T3 ...
- 【并查集】BZOJ1370- [Baltic2003]Gang团伙
[题目大意] 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个人的m条信 ...
- C程序运行的背后(2)
话说上回说到,C程序运行之前,必须要加载到其进程地址空间中.今儿咱就扯扯这个加载到底是怎么加载的. 一图胜前言,这个图简单说明了可执行文件加载过程的逻辑流,在此只做粗粒度概要说明.需要准确描述的,请出 ...