-i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
一、前言
NXP 針對(duì) Machine Learning ( ML ) 創(chuàng)建了 eIQ 工具,以方便開(kāi)發(fā)者在 i.MX 系列設(shè)備上開(kāi)發(fā) ML 相關(guān)應(yīng)用。
本篇將會(huì)分兩個(gè)章節(jié),一章節(jié)介紹 eIQ 軟件,另外一章節(jié)將會(huì)對(duì) eIQ 依賴(lài)的 Yocto 環(huán)境搭建和編譯進(jìn)行 Hands On 介紹。
(注:本篇不包含 Demo 范例演示,Demo 將會(huì)在下一篇博文展出)
二、NXP eIQ 軟件介紹
eIQ 提供一系列的機(jī)器學(xué)習(xí)庫(kù)和工具,應(yīng)用于 I.MX 系列應(yīng)用開(kāi)發(fā)。eIQ 只支持網(wǎng)絡(luò)模型的推測(cè)和標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)算法,即模型的訓(xùn)練需要離線(xiàn)完成。目前 eIQ 的 SDK 已經(jīng)內(nèi)含在 i.MX Linux OS 的 BSP 包中,eIQ 有包含如下 Yocto 代碼包:
OpenCV 4.0.1
Arm Compute Library 19.02
Arm NN 19.02
ONNX runtime 0.3.0
Tensor Flow 1.12
Tensor Flow Lite 1.12
這里需要指出的是,目前 eIQ 暫還不支持 GPU 加速,如果需要 GPU 加速,獨(dú)立于 eIQ ,自行用 OpenCL 進(jìn)行開(kāi)發(fā)。eIQ 的框架如下:? ?
三、eIQ 依賴(lài)的 Yocto 下載和編譯
eIQ 所依賴(lài)的 Yocto主要是 Linux L4.14.98_2.0.0 GA 版本。
1. Yocto L4.14.98_2.0.0源代碼和文檔入口地址:
https://www.nxp.com/design/i.mx-developer-resources/i.mx-software-and-development-tools:IMX-SW??
大家了解下代碼和文檔資料的來(lái)源,Yocto 的代碼下載和編譯可參考如上的官方文檔,也可以參考下面的操作流程。
2.軟硬件環(huán)境準(zhǔn)備
2.1 硬件準(zhǔn)備:
一臺(tái) Linux OS 以及預(yù)留 120 GB 、可聯(lián)網(wǎng)的主機(jī)。
2.2 軟件準(zhǔn)備:
① Host Os : Ubuntu (本實(shí)驗(yàn)基于 Ubuntu 16.04 LTS)
② 按如下命令安裝所依賴(lài)的包:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm sed cvs subversion? coreutils texi2html docbook-utils python-pysqlite2 help2man gcc? g++ make desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc u-boot-tools?
3.eIQ 編譯工具(Protobuf 3.5.1 )安裝
① 下載 Protobuf 3.5.1 工具源碼
wget?https://github.com/google/protobuf/archive/v3.5.1.tar.gz
② 安裝 Protobuf 3.5
?解壓后到 Protobuf 根目錄逐步運(yùn)行如下命令安裝
baker@baker-VirtualBox:~$?cd protobuf-3.5.1/
baker@baker-VirtualBox:~/protobuf-3.5.1$./autogen.sh
baker@baker-VirtualBox:~/protobuf-3.5.1$./configure
baker@baker-VirtualBox:~/protobuf-3.5.1$?make -j8??
安裝結(jié)果 Log 如下:
4.Repo 工具的獲取
① 來(lái)源:
https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
② 給 repo 添加可執(zhí)行權(quán)限
③ 修改 REPO_UR
? ? ? ? ?vim 打開(kāi) ./bashrc ,底部添加 REPO_URL
5.通過(guò) Repo 下載 Yocto 源碼
① 如下命令( 紅色字體 )開(kāi)始初始化 Yocto 倉(cāng)庫(kù)
baker@baker-VirtualBox:~/eIQ$?mkdir fsl-arm-yocto-bsp
baker@baker-VirtualBox:~/eIQ$?cd fsl-arm-yocto-bsp
baker@baker-VirtualBox:~/eIQ/ fsl-arm-yocto-bsp $?repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-sumo -m imx-4.14.98-2.0.0_machinelearning.xml
結(jié)果如下:
② 如下命令(紅色字體)開(kāi)始同步
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp$?repo sync
同步結(jié)果如下:? ?
? ? 。。。。。。?
出現(xiàn)如上紅色方框的內(nèi)容,說(shuō)明代碼包已下載成功,接下來(lái)可以進(jìn)行編譯。
6.Yocto編譯
① 按如下命令(紅色字體)進(jìn)行Yocto 編譯變量設(shè)置,包含 i.MX8 開(kāi)發(fā)板類(lèi)型、目標(biāo) OS 類(lèi)型、Machine Learing 屬性
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp$?EULA=1 MACHINE=imx8qmmek DISTRO=fsl-imx-xwayland source ./fsl-setup-release.sh -b buildxwayland
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp/buildxwayland$?echo "BBLAYERS += \" \${BSPDIR}/sources/meta-imx-machinelearning \"" >> conf/bblayers.con
f
過(guò)程如下:
② 修改 conf/local.conf ,添加 OpenCV / OpenCL / CMake / TensorFlow 相關(guān)設(shè)定
#Add basic development capabilities:
EXTRA_IMAGE_FEATURES = " dev-pkgs debug-tweaks tools-debug tools-sdk ssh-server-openssh"#Add packages for networking capabilities:
IMAGE_INSTALL_append = " net-tools iputils dhcpcd"
#Add some generic tools:
IMAGE_INSTALL_append = " which gzip python python-pip"
IMAGE_INSTALL_append = " wget cmake gtest git zlib patchelf"
IMAGE_INSTALL_append = " nano grep vim tmux swig tar unzip"
IMAGE_INSTALL_append = " parted e2fsprogs e2fsprogs-resize2fs"
#Configure the OpenCV package:
IMAGE_INSTALL_append = " opencv python-opencv"
PACKAGECONFIG_remove_pn-opencv_mx8 = "python3"
PACKAGECONFIG_append_pn-opencv_mx8 = " dnn python2 qt5 jasper openmp test neon"
#Remove the OpenCL support from packages:
PACKAGECONFIG_remove_pn-opencv_mx8 = "opencl"
PACKAGECONFIG_remove_pn-arm-compute-library = "opencl"
#Add CMake for SDK’s cross-compile:
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake nativesdk-make"
#Add packages:
IMAGE_INSTALL_append = " arm-compute-library tensorflow tensorflow-lite armnn onnxruntime"
PREFERRED_VERSION_opencv = "4.0.1%"
PREFERRED_VERSION_tensorflow = "1.12.0%"
PREFERRED_VERSION_tensorflow-lite = "1.12.0%"
③ 開(kāi)始 bitbake 編譯 ,這一步將會(huì)產(chǎn)生最終的固件
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp/buildxwayland$ bitbake fsl-image-qt5
在 buildxwayland/tmp/deploy/images/imx8qmmek 目錄下,可以看到已經(jīng)成功生成固件 “fsl-image-qt5-imx8qmmek.sdcard.bz2”
至此,eIQ 的環(huán)境搭建以及編譯已完成。下一篇將會(huì)帶大家一起在 i.MX8QMMEK demo 板上運(yùn)行 eIQ Demo , 敬請(qǐng)期待。
點(diǎn)擊點(diǎn)“在看”給小編加雞腿 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的-i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 语言撒谎问题_孩子撒谎是高情商?四招帮家
- 下一篇: python中 和is的区别_关于pyt