您已经对嵌入式开发非常了解的话,可以按照自己的需求来搭建环境。如果和本手册环境不一样而产生报错,您可以从国内一些知名 Linux 论坛和网站搜索相关的信息来解决。本册介绍的环境经过飞凌的测试,如果对嵌入式开发不是非常熟悉的朋友,希望您按照飞凌提供的方法来搭建环境。

 

注意:飞凌默认提供的开发环境中已经默认安装交叉编译工具链及 Qtcreator 桌面应用程序,可以直接跳转到第二部分,无需重新安装。

 

版本说明 操作系统:Ubuntu18.0464 位版 交叉工具链:aarch64-poky-linux-gcc

 

飞凌 OKMX8MQ-linux-sdk 包括两部分,第一部分为编译环境包,里面包含了交叉编译器和 sysroot,第二部分为源码包,包括 Linux 内核、文件系统、测试程序源码以及一些工具等。

 

编译之前,请执行一下命令安装必要的工具包。

 

$ sudo apt-get update

$ sudo apt-get install openssh-server vim git fakeroot make \

automake autoconf libtool libssl-dev bc \

dosfstools mtools parted iproute2 gcc kmod

 

安装编译环境

编译环境是我们开发过程中的基础,首先我们来安装编译环境。

 

创建工作目录$ mkdir -p /home/forlinx/imx8mq

 

并将用户资料:

 

路径:OKMX8MQ-C(Linux)用户资料 \ 工具 \ 交叉编译工具 \fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh

 

拷贝到虚拟机 /home/forlinx/imx8mq 目录

 

$ cd /home/forlinx/imx8mq

 

$./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh

 

将安装路径设置保持默认,敲回车。

 

 

输入“Y”进行确认,等待安装完成。

 

 

安装完成后执行

$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux

 

设置环境变量。

并输入

 

$ aarch64-poky-linux-gcc -v

 

检查安装是否成功。出现如下信息代表安装成功。

 

 

注意:每当重启虚拟机或者打开新的 shell 窗口都需要重新执行设置环境变量。

 

安装源码包

源码包中包含了飞凌提供的 OKMX8MQ 平台的需要用到的源代码,包括 Linux 内核源码、测试程序源码、文件系统等,您可以在此基础上进行二次开发。

 

将用户资料:

 

路径:OKMX8MQ-C(Linux)用户资料 \Linux\ 源码 \OK8MQ-linux-sdk.tar.bz2

 

拷贝到虚拟机 /home/forlinx/imx8mq 目录

 

$ cd /home/forlinx/imx8mq

 

$ tar xvf OK8MQ-linux-sdk.tar.bz2

 

 

编译测试

进入源码目录

 

$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk

 

❶ 全编译测试

通过设置环境变量选择编译 2GB 内存镜像或 4GB 内存镜像

 

2GB 内存:

$ . environment-setup-sourcetree

 

4GB 内存:

$ . environment-4gddr-setup-sourcetree

 

然后,编译:

$ make

 

 

 

编译完成后,将在 images 生成镜像文件。

 

 

❷ 单独编译内核

编译:$ make linux

 

 

注意:编译时,系统会自动拷贝配置文件 arch/arm64/configs/imx_v8_defconfig 覆盖内核根目录的 .config 文件。

 

清除:$ make linux_clean

 

清除编译 linux 内核生成的文件

 

 

❸ 单独编译命令行测试程序

编译:$ make cmd-examples

 

 

安装:$ make cmd-examples_install

 

 

执行完会将命令行测试程序安装到文件系统 /usr/bin/cmd 目录

 

清除:$ make cmd-examples_clean

 

 

❹ 单独编译 Qt 测试程序

编译:$makeqt-examples

 

 

安装:$ make qt-examples_install

 

 

执行完会将 qt 测试程序安装到文件系统 /home/forlinx/qt  B 目录

 

清除:$ make qt-examples_clean

 

 

Qt 开发环境搭建及使用

 

 

飞凌提供的 SDK 中提供了 Qt5.13.2 的完整开发环境(包含 Qt Quick)。

 

❶ 手动编译

设置编译环境变量:

 

$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux

 

以飞凌提供的 Qt 官方串口测试程序为例,演示命令行 Qt 程序编译方法:

 

$ cd /home/forlinx/imx8mq/appsrc/qt/

 

$ qmake

 

$ make

 

❷  Qt creator 环境搭建

注意:飞凌默认提供的开发环境中已经默认安装交叉编译工具链及 Qt creator 桌面应用程序,可以直接跳转到下一环节,无需重新安装。

 

路径:OKMX8MQ-C(Linux)用户资料 \ 工具 \qt-creator-opensource-linux-x86_64-4.7.0.run

 

将 qt-creator-opensource-linux-x86_64-4.1.0.run 拷贝至当前用户家目录下的任意目录下,执行:

 

$ ./qt-creator-opensource-linux-x86_64-4.7.0.run

 

将会弹出如下界面,点击“Next”进入下一步:

 

 

在如下界面中,点击“Skip”进入下一步(若虚拟机压缩):

 

 

在如下界面中,点击“Next”进入下一步:

 

 

在如下界面中,点击“Browse…”选择 Qtcreator 的安装路径,选择完成后,点击“Next”进入下一步:

 

 

在如下界面中,选中第一项,点击“Next”进入下一步:

 

 

保持默认设置,点击“Next”:

 

 

点击 Install 安装:

 

 

安装完成后,显示如下界面,取消选项“Launch Qt Creator”的勾选,点击“Finish”完成 Qtcreator 的安装步骤:

 

 

执行 :

$ cd /home/forlinx/qtcreator-4.7.0/bin/

 

$ ./qtcreator

 

启动 Qt creator 程序,点击 Tools->options 选项

 

 

进入到 Options 界面,点击左侧“Kits”,然后点击中部上方的“Compilers”选项卡,点击右侧“Add->GCC->C++”,如图所示:

 

 

弹出如下窗口,Compiler path 选项点 Browser 在 SDK 包中找到 /opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/ 下找到“aarch64-poky-linux-g++”,选中后点击 Open,并将 Name 修改为“G++”。

 

按照同样的方法添加 GCC 编译器,点击右侧“Add->GCC->C”,如图所示:

 

 

在 SDK 包中找到 /opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc/ 下找到“aarch64-poky-linux-gcc”,选中后点击 Open,并将 Name 修改为“GCC”。

 

 

点击 Debuggers 选项卡,点击 Add 弹出如下界面:

 

 

弹出如下窗口,在 SDK 包中找到 /opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux 下找到“aarch64-poky-linux-gdb”,选中后点击 Open,并将 Name 修改为“debuggers”。

 

 

点击 Qt Versions 选项卡,点击 Add:

 

 

在 /opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin 的目录下找到 qmake,选中后点击 Open,添加后显示如下,点击 Apply。

 

点击 Kits 选项卡,点击右侧 Add,添加一个新的 Kits,按照下图的内容进行修改点击 Apply。

 

 

❸ Qt creator 开发示例

执行

 

$ cd /home/forlinx/qtcreator-4.7.0/bin/

 

$ ./qtcreator

 

启动 Qt creator 程序,进入到 qtcreator 界面,点击“New Project”新建一个工程:

 

 

选择“Application”->“Qt Widgets Application”,然后点击右下角的“Choose”:

 

 

在如下界面中为新建的工程修改名字为“HelloWorld”,选择安装路径选择 /home/forlinx,然后点击“Next”:

 

 

在如下界面中,选择之前已添加过的“8mq”作为当前工程的 kit,然后点击“Next”:

 

 

在如下界面中,修改类名“Class name”为“helloworld”,将基类“Base class”选择为 QMainWindow,然后点击“Next”:

 

 

在如下界面中,点击“Finish”,完成工程的新建:

 

 

新建工程创建完成,即可显示如下窗口:

 

 

当程序编写完成后,点击左下角的锤子图标,即可进行交叉编译,将编译好的可执行程序 HelloWorld 拷贝到开发板,即可进行应用的测试。

 

使用 UUU 工具烧写镜像

UUU 是一个命令行工具,可以用于在 Linux 或者 Windows 下烧写镜像到 OKMX8MQ 开发板,下面分别介绍 Linux 和 Windows 下 UUU 工具的使用。

 

❶  Linux 下 UUU 工具的使用

路径:OKMX8MQ-C(Linux)用户资料 \Linux\ 工具 \uuu

 

将下载好的用户资料中的可执行文件 uuu 拷贝到 /usr/bin/ 目录下并添加可执行权限。将 OTG 线插入 Linux 主机的 USB 接口中。将拨码开关设置为 OTG 启动,启动开发板。

 

切换到 images 目录

$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk/images

 

烧写完整镜像(u-boot、内核和文件系统)到 eMMC:

$ sudo uuu -b emmc_all flash_sd_emmc.bin rootfs.sdcard

 

uuu 其他指令使用示例:

单独烧写 u-boot 到 eMMC:

$ sudo uuu -b emmc flash_sd_emmc.bin

 

注意:烧写 uboot 的命令不能清除环境变量,要恢复默认环境变量在 uboot 命令行输入。

 

注意:2GB 和 4GB 内存烧写的方法相同,将按照核心板的内存大小编译对应的的镜像

 

❷  Windows 下 UUU 工具的使用

路径:OKMX8MQ-C(Linux)用户资料 \Linux\ 工具 \ uuu.exe

 

将用户资料中的 uuu.exe 拷贝到 C:\Windows\System32 目录。将 OTG 线插入 Windows 主机的 USB 接口中。

 

将对应的镜像(2GB 内存或 4GB 内存)rootfs.sdcard 拷贝到 D 盘 uuu 目录,在 Windows 下运行 cmd 程序,进入镜像文件所在的目录,输入如下命令即可烧录完整镜像:

 

D:\uuu> uuu.exe -b emmc_all flash_sd_emmc.bin rootfs.sdcard

 

uuu 其他指令使用示例:

单独烧写 u-boot 到 eMMC:

D:\uuu> uuu.exe -b emmc flash_sd_emmc.bin

 

注意 1:

烧写 uboot 的命令不能清除环境变量,要恢复默认环境变量在 uboot 命令行输入:

 

$ env default –a

 

$ savenv

 

注意 2:第一次在 windows 平台烧写时由于 windows 没有安装相应的驱动程序可能会出现下图的失败情况:

 

 

一般情况下 windows 可以自动搜索驱动并安装,等待驱动安装完成重新执行烧写命令即可,如果出现驱动安装失败的情况,请按照下列步骤手动安装驱动。

 

将用户资料工具目录的 latest_usb_driver_windows.zip 拷贝到桌面并解压。打开 windows 设备管理器。

 

 

在“USB download gadget”上点击鼠标右键选择“更新驱动程序软件”。

 

 

选择“浏览计算机以查找驱动程序软件”,找到刚才在桌面解压的驱动程序文件夹。

 

 

点击“下一步”

 

 

选择“始终安装此驱动程序软件”,等待安装完成。

 

 

烧写 TF 卡的制作与使用

❶ 制作 TF 烧写卡

OKMX8MQ 平台支持 TF 卡烧写,首先需要制作用于烧写的 TF 卡,请使用 8G 及以上容量的正品 TF 卡来测试。

 

将 TF 卡插入 PC 机并在虚拟机中打开,将 TF 卡烧录工具 sdfuse.tar.bz2 复制到虚拟机中:

 

$ cp. /sdfuse.tar.bz2 /home/forlinx/imx8mq/

 

将编译过程中产生的 u-boot 镜像拷贝到当前目录,并进入到目录中:

 

$ tar -jxvf sdfuse.tar.bz2

$ cd sdfuse

 

开始制作烧写 TF 卡

 

$ sudo ./mksdcard8mq.sh

 

 

选择 TF 卡设备,这里以“1”为例。

 

 

输入“y”进行确认。

 

 

制作完成。

 

❷ 拷贝烧写镜像到 TF 烧写卡

将烧写镜像 rootfs.sdcard 文件拷贝到 TF 卡的根目录中。

 

下边列举出烧录的文件含义:

 

文件

说明

config.ini

烧写配置文件(默认烧写工具已经添加)

update.itb

烧写工具(默认烧写工具已经添加)

env.ini

将额外的环境变量写入 uboot(可选)

rootfs.sdcard

镜像包(必选,需客户自行拷贝,拷贝时注意内存配置是 2GB 还是 4GB)

 

注意:env.ini 编写方法见附录 2

 

❸ TF 卡烧写测试

关闭开发板电源,将 TF 卡插入 TF 卡座中,并将启动拨码设置到 TF 卡启动状态。打开电源开关,开发板将自动启动进入烧写程序,可以在 uboot 选择显示:

 

Press SPACE to abort autoboot in 1 seconds

## forlinx params set menu ...

--------------------------

0:reboot

1:exit to shell

2:MIPI7-lcdif

3:MIPI7-dcss

4:HDMI

--------------------------

 

可以选择 2 或 4,分别显示在 7 寸 mipi 或者 hdmi 显示器上,选择完成后,以后再进行烧写都会将烧写结果显示在所选择的显示上。

开始烧写后,观察写进度请留意 LCD 上的打印信息,界面会提示烧写完成。

 

 

也可以通过观察底板上的 LED 灯来确认烧写进度,开始烧写时 LED1-4 循环闪烁,烧写完成后 LED1-4 同步闪烁。