i.mx6ull Qt5.6移植

关键字 :imx6ullLinux Qt5

平台:NXP i.mx6ull
系统:Linux Yocto
编译器:arm-poky-linux-gnueabi
Qt版本:qt-everywhere-opensource-src-5.6.2

1、编译器生效
在Ubuntu中打开一个新的终端
cd ~
vi ~/.bashrc,在文件最后面加入以下内容:
PATH=$PATH:/home/opt/fsl/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi

然后保存退出后,然后执行以下命令生效:
source ~/.bashrc

然后使用以下命令查下编译工具链是否生效:
arm-poky-linux-gnueabi-gcc -v

2、移植tslib
tar xvzf tslib1.21.tar.gz
cd tslib1.21
vi build_tslib.sh 编辑内容如下:
export CROSS_COMPILE=arm-poky-linux-gnueabi-
./configure --prefix=/home/opt/arm/tslib --host=arm-poky-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes

chmod 777 build_tslib.sh

./autogen.sh
./build_tslib.sh
make
make install


3、下载Qt源码以及解压
下载地址:http://download.qt.io/archive/qt/5.6/5.6.2/single/
tar xvzf qt-everywhere-opensource-src-5.6.2.tar.gz
cd qt-everywhere-opensource-src-5.6.2

4、修改指定Qt编译工具

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
编辑以下几个参数进行如下修改:
QMAKE_CC = arm-poky-linux-gnueabi-gcc -march=armv7ve -marm -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7
--sysroot=/home/opt/fsl/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi
QMAKE_CXX=arm-poky-linux-gnueabi-g++ -march=armv7ve -marm -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/opt/fsl/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi
QMAKE_LINK = arm-poky-linux-gnueabi-g++ -march=armv7ve -marm -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/opt/fsl/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi
QMAKE_LINK_SHLIB = arm-poky-linux-gnueabi-g++ -march=armv7ve -marm -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/opt/fsl/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi

QMAKE_AR = arm-poky-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-poky-linux-gnueabi-objcopy

QMAKE_NM = arm-poky-linux-gnueabi-nm -P
QMAKE_STRIP = arm-poky-linux-gnueabi-strip

然后保存退出

5、配置configure
增加配置文件build_configure.sh,编辑以下内容
vi build_configure.sh
export CROSS_COMPILE=arm-poky-linux-gnueabi-
./configure -prefix /home/opt/arm/qt5 \
-opensource -confirm-license -release \
-no-xcb \
-make libs \
-no-mips_dsp -no-mips_dspr2 \
-qt-libpng -qt-libjpeg -qt-freetype \
-no-pch -no-dbus \
-no-qml-debug \
-xplatform linux-arm-gnueabi-g++ \
-skip qtquickcontrols2 -skip qtsensors \
-skip qtxmlpatterns \
-skip qt3d \
-skip qtcanvas3d \
-skip qtdeclarative \
-skip qtquickcontrols -skip qtscript \
-no-qpa-platform-guard -qt-zlib -no-opengl \
-no-sse2 -no-openssl \
-make libs \
-no-xcb -no-directfb -linuxfb -no-kms \
-no-gstreamer -no-system-proxies \
-qpa linux \
-tslib \
-I /home/opt/arm/tslib/include -L /home/opt/arm/tslib/lib


chmod 777 build_configure.sh
./build_configure.sh
make install

6、测试
先单独测试tslib,然后测试Qt+ts
将编译出来的tslib和QT的库复制到imx6ull开发板目录中去,并且设置tslib和Qt的环境变量,如下:
export TSLIB_ROOT=/usr/tslib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:TSLIB_ROOT/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_PLUGINDIR=/$TSLIB_ROOT/lib/ts
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/input/event1


export QT_ROOT=/usr/qt-5.9.6
export LD_LIBRARY_PATH=$QT_ROOT/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
#export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_GENERIC_PLUGINS=tslib

export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1:invertx:inverty

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论