100ASK_IMX6ULL_PRO开发板QT移植过程说明

100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片


百问网关于 Qt 的移植过程没有做十分详细且系统的说明,导致初学者的我在移植时花费了较多时间,特此写下此文给有需要的人参考。
下述说明基于百问网提供的环境进行描述 (网上搜索到的一般是在全新环境进行构建)。
一、使用repo获取内核及工具链等 1. 配置repo 下载 repo 工具前需要设置git的邮箱和用户名,git邮箱和用户名请根据个人情况进行配置。
book@100ask:~$ git config --global user.email "user@100ask.com" book@100ask:~$ git config --global user.name "100ask"

注意: 请先配置git邮箱和用户名,否则会导致下载失败(如下为参考示例图)。
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

2. 下载源码 执行以下4条命令,为方便大家复制,第3条是很长的命令,使用了\来换行,需要一并拷贝:
book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git book@100ask:~$ mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo init -u \ https://gitee.com/weidongshan/manifests.git -b \ linux-sdk -m imx6ull/100ask_imx6ull_linux4.9.88_release.xml--no-repo-verify book@100ask:~/100ask_imx6ull-sdk$../repo/repo sync -j4

注意: 是在 book@100ask:~$ 目录下执行的操作
二、配置交叉编译工具链 1. 设置交叉工具链 打开配置文件 vim ~/.bashrc, 在文件末尾添加以下命令
export ARCH=arm export CROSS_COMPILE=arm-buildroot-linux-gnueabihf- export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量
2. 测试交叉工具链 测试环境变量:
book@100ask:~$ echo $ARCH arm book@100ask:~$ echo $CROSS_COMPILE arm-buildroot-linux-gnueabihf-

测试交叉编译器:
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

三、使用Buildroot构建根文件系统 1. 源码编译构建获得 注意:在构建前,需要将虚拟机的内存设置为 6GB 及以上否则会中途报错!!
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

依次执行以下命令
book@100ask:~/100ask_imx6ull-sdk$ pwd /home/book/100ask_imx6ull-sdk book@100ask:~/100ask_imx6ull-sdk $ cd Buildroot_2020.02.x book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make clean book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig book@100ask:~/100ask_imx6ull-sdk/ Buildroot_2020.02.x$ make all

100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

注意:编译过程需要很长的时间(5~6小时),主要是会涉及到很多依赖文件需要到外网下载,而外网的下载速度是很慢的.编译完成后如下图所示:
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

2. 网络直接下载获得 源码编译的过程是漫长的,而且中途可能会出错,因此提供编译好的根文件系统以供下载
点击下载编译好的根文件系统
下载得到 Buildroot_2020.02.x.tar 包文件,之后依次执行以下命令
book@100ask:~/100ask_imx6ull-sdk$ pwd /home/book/100ask_imx6ull-sdk book@100ask:~/100ask_imx6ull-sdk$ rm -rf Buildroot_2020.02.x book@100ask:~/100ask_imx6ull-sdk$ tar –xvf Buildroot_2020.02.x.tar

四、 Qtcreator 安装配置 1. 下载安装 点击下载 Qt 5.12.8
执行以下命令开始安装,图形化流程不再赘述
book@100ask:~/Desktop$ chmod 777 qt-opensource-linux-x64-5.12.8.run book@100ask:~/Desktop$ ./qt-opensource-linux-x64-5.12.8.run

2. 配置开发环境 a. 在QtCreator界面中,依次点击 tools -> options
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

b. 设置编译器, 依次点击 Compilers -> Add -> Custom -> C/C++ 添加编译器
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

b.1 关于 C++ 编译器依次添加以下内容
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ /usr/bin/make

b.2 关于 C 编译器依次填写以下内容
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc /usr/bin/make

c. 添加 Qt 版本,依次点击 Qt Versions -> Add,填写以下内容
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

d. Kits 设置, 依次点击 Kits -> Add,填写以下内容
/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

e. 点击 OK 完成配置
五、tslib 编译配置 1. 源文件下载
01_all_series_quickstart\ 04_嵌入式Linux应用开发基础知识\source\11_input\ 02_tslib\

2. 交叉编译
book@100ask:~$ pwd /home/book book@100ask:~$ ls 100ask_imx6ull-sdkDownloadsnfs_rootfsrepotslib-1.21.tar.xz Desktopexamples.desktopPicturessnapVideos DocumentsMusicPublicTemplates book@100ask:~$ tar xvf tslib-1.21.tar.xz book@100ask:~$ cd tslib-1.21/ book@100ask:~/tslib-1.21$ ./configure --host=arm-linux-gnueabihf--prefix=/ book@100ask:~/tslib-1.21$ make book@100ask:~/tslib-1.21$ make install DESTDIR=$PWD/tmp

3. 复制头文件、库文件放到工具链目录
book@100ask:~/tslib-1.21$ cd tmp/ book@100ask:~/tslib-1.21tmp/$ cp include/* /home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include book@100ask:~/tslib-1.21tmp/$ cp -d lib/*so*/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/lib/

4. 复制依赖文件到开发板
book@100ask:~$ pwd /home/book book@100ask:~$ cp -r tslib-1.21 nfs_rootfs/ book@100ask:~$ cd nfs_rootfs/ book@100ask:~/nfs_rootfs$ ls tslib-1.21

注意:以下命令在开发板命令行完成(同时确保开发板网络文件系统已挂载)
cp/mnt/tslib-1.21/tmp/lib/*so*-d/lib cp/mnt/tslib-1.21/tmp/bin/*/bin cp/mnt/tslib-1.21/tmp/etc/ts.conf-d/etc

5. 修改开发板环境变量 打开 sudo vi /etc/profile 文件,在末尾添加如下:
export XDG_RUNTIME_DIR=/usr/lib/ export RUNLEVEL=3export QT_QPA_FB_DISABLE_INPUT=1 export QT_QPA_GENERIC_PLUGINS=tslib export QT_QPA_FONTDIR=/usr/lib/fonts export TSLIB_TSDEVICE=/dev/input/event1 export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_PLUGINDIR=/usr/lib/ts export TSLIB_CONSOLEDEVICE=none export QT_QPA_FB_TSLIB=1 export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1

六、 最后的测试 1. 关闭默认的GUI程序 对于IMX6ULL,首先需要关闭默认的qt gui程序才可进行后续的测试,关闭命令如下所示:
[root@100ask:~]# mv/root/S99myirhmi2 /etc/init.d/ [root@100ask:~]# reboot

2. Ubutun 下的 Qt 程序编写 编译时注意选择 Kit 工具
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

3. 开发板运行测试 【100ASK_IMX6ULL_PRO开发板QT移植过程说明】显示及触摸都是正常的,但是跑复杂页面卡顿明显
演示用的源文件
100ASK_IMX6ULL_PRO开发板QT移植过程说明
文章图片

    推荐阅读