请选择 进入手机版 | 继续访问电脑版
搜索

121

主题

128

帖子

665

积分

网站编辑

Rank: 8Rank: 8

积分
665
发表于 2021-6-11 12:43:41 11218 浏览 0 回复

iTOP-4418开发板QtE4.7系统编译

本帖最后由 翠花儿 于 2021-6-11 12:55 编辑

Qt4.7.1系统的uboot和kernel和Android通用,下载相应的Android4.4,Android5.1,Android7.1源码,根据相关章节搭建环境。我们已经编译好的QtE4.7镜像放在了“iTOP4418开发板资料汇总(不含光盘内容)\04_iTOP-4418开发板QtE4.7_QtE5.7系统源码以及镜像\04_QtE4.7根文件系统升级目录\QT镜像20171120”中,需要重新编译QtE4.7库可参考此章节。
1 编译环境
编译iTOP-4418的QtE4.7可以使用搭建好的ubuntu12.04,在网盘目录“iTOP4418开发板资料汇总(不含光盘内容)\02_iTOP-4418开发板编译系统所需要的工具包等\02-Ubuntu系统安装包\02-搭建好开发环境的Ubuntu12.04虚拟机镜像V2.0
使用的编译器是交叉编译器编译工具“arm-linux-gcc-4.3.2.tar.gz”,编译器在用户网盘文件夹“iTOP4418开发板资料汇总(不含光盘内容)\04_iTOP-4418开发板QtE4.7_QtE5.7系统源码以及镜像\03_编译器、补丁包以及其它工具\01_编译器”中下载 。
将“arm-linux-gcc-4.3.2.tar.gz”解压到 Ubuntu 系统的文件夹“/usr/local/arm”(如果没有 ARM,则新建一个)中,解压后,如下图所示,
然后修改环境变量,修改环境变量前,确定是在 root 用户下,接着输入命令“cd /root”,确定修改的是 root 用户的环境变量,如下图。
然后输入命令“vim .bashrc”,打开设置环境变量的文件“.bashrc”。
输入如上图所示的命令vim .bashrc 后,输入回车,进入".bashrc"文件,然后进入最后
行,如下图,将环境变量修改为“export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存退出,然后更新一下环境变量,输入命令“source .bashrc”,如下图。
接着测试一下,编译器路径设置的对不对。如下图,在 Ubuntu 命令行中输入命令"arm",然后按键盘"Tab",出现编译器“arm-none-linux-gnueabi-gcc-4.3.2”,这就说明编译器路径设置正确。
2 编译QtE4.7库
首先执行apt-get install uboot-mkimage,安装mkimage。
将源码压缩包“iTOP4418开发板资料汇总(不含光盘内容)\04_iTOP-4418开发板QtE4.7_QtE5.7系统源码以及镜像\02_QtE源码\qt-everywhere-opensource-src-4.7.1.tar.gz”拷贝到 Ubuntu 的文件夹“root/yizhi”中,没有这个文件夹则可以新建一个。
        然后,在 Ubuntu 命令行中输入解压命令“tar -vxf qt-everywhere-opensource-src-4.7.1.tar.gz”,解压后得到文件夹“qt-everywhere-opensource-src-4.7.1”,如下图所示
进入“qt-everywhere-opensource-src-4.7.1”文件夹中,打开“build-all”文件。如下图,可以看到“./configure”后面的配置,通过这些配置可以确定编译出来库的属性
通过“./configure --help”可以查看每一个配置的具体含义。
如下图,有大量的可配置选项。
下面给大家简要介绍使用到的配置参数。
-opensource 自由版本(免费的)
-embedded arm 嵌入式 arm 架构
-xplatform qws/linux-arm-g++ 交叉编译的目标平台
-no-webkit 去掉 webkit 插件
-qt-libtiff 支持 tiff 插件
-qt-libmng 支持 mng 插件
-qt-mouse-tslib,-qt-mouse-pc,-no-mouse-linuxtp 触摸相关
-I ... Add an explicit include path,添加路径,这里包含了“/usr/local/tslib/include”
-L Add an explicit library path 添加库路径,这里包含了“/usr/local/tslib/lib”
        其它常用参数,例如“-verbose”可以打印每一步的信息,编译查找编译过程中的问题;“-static”可以将库文件编译成静态,通过静态库移植的应用,不用将 QtE 库下载到开发板上。还有上面的“/usr/local/tslib”则是迅为电子移植的触摸库文件。
执行编译脚本“./build-all”,如下图所示:
输入回车,如下图所示,开始编译,编译比较耗费时间,在一个小时左右。
编译完成后,如下图,进入"/opt"目录,可以看到编译生成的“qt-4.7.1”文件夹,Qt库就放到最小linux文件系统。
进入文件夹“/home/4418/android/qt_system/system/opt”(红色的目录 topeet 根据用户实际建立的文件夹调整),然后将“qt-4.7.1”文件夹拷贝到该目录下,将已有的覆盖或删除,如下图(可以删除Qtopia)。红色方框中的“qt-4.7.1”文件夹是 Qt/E4.7库。
3 编译uboot和kernel
Qt系统的uboot和kernel使用安卓源码编译,配置过程与安卓的uboot和kernel相同,可参考“7.2 uboot配置”和“7.3 kernel配置”,环境搭建可参考“7.1 开发环境搭建”。
编译前需要将 uboot 配置文件覆盖一下, 迅为电子的 iTOP-4418 核心板内存有三种型号,最新版的2G核心板使用了镁光DDR,可参考手册“1.1核心板介绍”区分,三种核心板分别是:
                1. 三星 1G DDR3
                2. 三星 2G DDR3
                3. 镁光 2G DDR3
        大家可以通过查看核心板上内存芯片的丝印来确定使用的是哪种型号的内存:
                1. 三星 1G DDR3 内存芯片上的丝印是: K4B4G
                2. 三星 2G DDR3 内存芯片上的丝印是: K4B8G16
                3. 镁光 2G DDR3 内存芯片上的丝印是: 9BC12
        在编译 Uboot 之前, 我们需要按照相应的内存型号配置一下 uboot 的相关文件,下面介绍关于这三种内存的配置:
1. 三星 1G DDR3 内存:
进入“u-boot”目录, 首先使用命令“cp 2ndboot_sdmmc_4418_samsung.bin 2ndboot_sdmmc_4418.bin”拷贝生成“2ndboot_sdmmc_4418.bin”文件, 然后使用命令“cp nsih-1G16b-4418.txt nsih.txt”拷贝生成“nsih.txt”文件。如下图所示
1. 三星 2G DDR3 内存:
进入“u-boot”目录, 首先使用命令“cp 2ndboot_sdmmc_4418_samsung.bin 2ndboot_sdmmc_4418.bin”拷贝生成“2ndboot_sdmmc_4418.bin”文件, 然后使用命令“cp nsih-2G16b-4418.txt nsih.txt”拷贝生成“nsih.txt”文件。如下图所示:
2. 镁光 2G DDR3 内存:
进入“u-boot”目录, 首先使用命令“cp 2ndboot_sdmmc_4418_micron.bin 2ndboot_sdmmc_4418.bin”拷贝生成 “2ndboot_sdmmc_4418.bin”文件 , 然后使 用命令 “cp nsih-2G16b-4418_micron.txt nsih.txt”拷贝生成“nsih.txt”文件。
u-boot配置完成后,还要配置kernel。
内核需要配置缺省文件,进入解压出来的源码目录 android,然后进入 kernel 目录,使用命令“cp -r config_for_iTOP4418_linux_AR8031 .config”配置缺省文件。如果网卡芯片是
RTL8211,则使用“cp -r config_for_iTOP4418_linux_RTL8211 .config”,如下图所示。
另外,如果是 2G 核心板,则打开 kernel 目录下执行
“vim arch/arm/plat-s5p4418/topeet/include/cfg_mem.h”打开文件,将下图中“#if 1”改为“#if 0”。“#if 1”对应 1G 内核,“#if 0”对应 2G 内核。
进入“android”目录,运行一键编译脚本“./build_android.sh qt”即可编译出qtE4.7系统,如下图所示。
4 制作QtE4.7文件系统
QtE4.7相关的环境变量已经保存在了“android/qt_system/system/bin/qt4”脚本文件中,
在开机脚本“android/qt_system/system/etc/init.d/rcS”中启动qt4,
打包工具在用户网盘“iTOP4418 开发板资料汇总(不含光盘内容)\02_iTOP-4418 开发板编译系统所需要的工具包等\03_tools”文件夹下的压缩包“linux_tools.tgz”中。拷贝压缩包到Ubuntu 系统的“/”目录下,注意目录是“/”。进入“/”目录,然后使用 “tar -vxf linux_tools.tgz”命令将压缩包解压。解压后,在“/usr/local/bin/”目录下生成了两个文件。如下图所示。
在“/home/topeet/4418/android/qt_system ”目录下执行:
make_ext4fs -s -l 314572800 -a root -L linux system.img system
可以看到在当前目录下生成了QtE4.7的system.img镜像文件。
5 QtE4.7触摸校准
如果用户烧写镜像后,第一次运行正常,断电重启后,文件系统出现如下图的错误。这是由于开机后“校准文件为空”。
出现上图中的错误,则需要在超级终端中,输入命令“rm -rf /etc/point*”,然后输入命令“reboot”重启开发板,如下图所示。
如上图,重启后就可以重新校准。为了避免这个错误,用户需要在文件系统的校准阶段,按照屏幕界面“十字”标识,依次点击标识。这个过程就是触摸屏的校准阶段,确保校准的每一次都是按在系统指示的位置。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表