X210QT移植详细教程

1、移植前准备

       确认开发板的内核是否有触摸屏驱动,新版的开发板触摸屏芯片是gxl680。

       可以使用cat /proc/bus/input/devices

       可知gslX680对应的设备文件是event2,然后用hexdump /dev/input/event2 这样触摸屏幕的时候,会打印出触摸屏上报的消息。

2、tslib移植和测试

       首先确保一下软件已经安装了

       sudo apt-get install autoconf(或autoconf2.13)

       sudo apt-get install automake

       sudo apt-get install libtool

       下载tslib源码http://vdisk.weibo.com/s/AcUHxOERV2k0

       在ubuntu中解压开后,进入到该文件中执行命令
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache
mkdir /opt/tslib
./configure --prefix=/opt/tslib --host=arm-linux --cache-file=arm-linux.cache
make
make install
       之后就可以在opt/tslib文件夹下看到这是四个文件了。                        

3、部署

       将需要用到的库文件、配置文件、bin文件拷贝到开发板的根文件系统中。将刚刚生成的tslib文件夹拷贝到开发板的根文件系统中。

                        

       然后在开发板的文件系统中的etc/profile中添加

export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_CALIBFILE=/tslib/etc/pointercal
export TSLIB_CONFFILE=/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tslib/lib
export TS_INFO_FILE=/sys/class/input/input2/uevent

       之后重启,进入tslib/bin目录下运行./ts_calibrate会报错

                                

       在tslib中的etc文件夹下的ts.conf文件中修改,打开module_raw input选项。

                                

       修改完之后再次运行,会出现错误,这里网上找下资料就可以解决了。

         https://blog.csdn.net/liuzijiang1123/article/details/45787901
                                

       这里我直接修改内核的include/linux/input.h文件将EV_VERSION修改回0x10000;

                  

       这样基本完成tslib的移植。

4、安装QT

       在http://ffmpeg.club/qt_download.html中,使用百度云下载,文件大小700M,要提前下,要不然最近百度网盘速度不咋地,得等好一阵子。

                                        

       下载完之后,放在ubuntu中,在终端直接./qt-opensource-linux-x64-5.8.0.run。

       记住!安装的时候,选项Sources一定要勾起来!!!这样才能得到源码。

                            

       最后这里由于我的开发板的编译链太老旧了,编译5.8的编译不过去,所以只能使用5.6.2的源码编译库文件来给开发板使用。

5、qmake配置

       安装完成后,需要对Qt进行qmake的配置

       配置源码文件夹下的qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf                       

       在qmake.conf中添加

QT_QPA_DEFAULT_PLATFORM = linuxfb	//使用非窗口配置
QMAKE_CFLAGS_RELEASE   += -O2  -march=armv7-a   	//armv7架构
QMAKE_CXXFLAGS_RELEASE += -O2  -march=armv7-a
       然后将QMAKE_CC QMAKE_CXX QMAKE_LINK QMAKE_LINK_SHLIB修改成我们自己的交叉编译工具链。
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
                                

6、编译前配置

       首先在ubuntu中的opt文件夹下创建QT5.6.2文件夹。

       其中:prefix /opt/QT5.6.2代表安装路径。-opensource代表配置成开源版本 -shared表示配置成共享库。 -c++std c++98代表编译时候用的标准。-xplatform linux-arm-gnueabi-g++表示之前qt源码目录中的qtbase/mkspecs/linux-arm-gnueabi-g++文件夹。
./configure  -prefix /opt/QT5.6.2 -opensource -confirm-license -release -shared -accessibility \
-c++std c++98 \
-xplatform linux-arm-gnueabi-g++ \
-qpa linuxfb -linuxfb \
-qreal float -pch \
-qt-zlib -qt-libjpeg -qt-libpng \
-no-sse2 -no-largefile -no-qml-debug -no-glib -no-gtkstyle -no-opengl -nomake tools -nomake examples -tslib \
-skip qt3d -skip qtcanvas3d -skip qtdoc -skip qtwayland \
 -I /opt/tslib/include -L /opt/tslib/lib

7、解决make中的错误

       (1)找不到dlopen或者dlsym

       在编译器后面加ldl arm-linux-g++ -ldl                    

       (2)undefined reference to `__sync_add_and_fetch_4'

       将交叉编译链源码中的linux-atomic.c文件拿出来,然后按照下面步骤进行编译。

       首先安装好libtool工具

       apt-get install libtool

       然后将linux-atomic.c文件进行加工,生成我们需要的linux-atomic.a文件。

libtool --tag=CC --mode=compile arm-linux-gcc -g -O2 -MT linux-atomic.lo -MD -MP -MF linux-atomic.Tpo -c -o linux-atomic.lo linux-atomic.c 
libtool --tag=CC --mode=link arm-linux-g++ -g -O2 -o liblinux-atomic.la linux-atomic.lo

       利用libtool生成liblinux-atomic.a,注意生成的目录名叫.libs所以是隐藏的。

     最后将liblinux-atomic.a放在随便一个文件夹中,将来在makefile中链接它即可,这里我们将它放在opt/linux-atomic。

       在QT源码下修改:./qtscript/src/script/Makefile

       在LIBS  = 的结尾添加 -L/opt/linux-atomic -llinux-atomic                                            
                             

       make完成之后,再执行make install 将我们需要的库文件就会放在之前opt/Qt5.6.2/文件夹下。

                        


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值