前记:
由于毕设的原因,将来需要移植QT程序到arm板子运行,故有此文。
看博客寻资料,看到一位作者写道:
知识来源于互联网,必将回报互联网。赞。
介于从陌生到熟悉的折腾,故将移植过程记录,发文,以己省人。
————————————————————备注———————————————————————
备注:1、移植过程存在各种情况,如遇编译报错,可百度查询,都能解决问题;
2、本文仅记录作者所遇到的移植问题,仅供参考。
3、参考另一博客:http://whylinux.blog.51cto.com/10900429/1856076
————————————————————正文———————————————————————
一、开发环境
主机环境:ubuntu14.04
目标机:九鼎创展科技的x210开发板(S5PV210)
主机工具链:gcc-4.8.2
交叉编译工具链:arm-none-linux-gnueabi-gcc-4.4.1 (来自三星的arm-2009q3)
QT移植版本:QT-4.7.4
挂载x210开发板根文件系统方式:NFS
自行制作开发板根文件系统
二、移植tslib
说明:一般QT程序放到arm板上都需要触摸控制,所以需要移植这个触摸屏库tslib。
(1)下载
百度下载 tslib-1.4.tar.gz
或者开发板九鼎官方提供的tslib_x210_qtopia.tgz
备注:本人tslib使用的是九鼎官方QT4.8源码(qt_x210v3s_160307.tar.bz2)里面的tslib_x210_qtopia.tgz
(2)解压
将tslib源码复制到ubuntu 的/usr/local/src/目录下,解压,
并创建一个目录
tslib_x210
用于稍后的tslib安装;
(3)修改及缘由(往下看)
查看使用的工具链中的arm-none-linux-gnueabi/libc/usr/include/linux/input.h中的EV_VERSION宏的值,它一定要和内核中的include/linux/input.h中的EV_VERSION宏的值一样(一般都需要修改,选其中任何一个修改同样值即可;本人选择将内核该宏值修改为0x010000,因为本人工具链该宏值是这个,再重新编译内核烧录)
以上缘由:
在tslib源码中的/plugins/input-raw.c文件中check_fd函数里,有一段代码对开发板的触摸屏进行检测,若下面条件只要有一个不满足,则报告"selected device is not a touchscreen I understand",意思是检测不到触摸屏:
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