-i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
一、前言
NXP 針對 Machine Learning ( ML ) 創建了 eIQ 工具,以方便開發者在 i.MX 系列設備上開發 ML 相關應用。
本篇將會分兩個章節,一章節介紹 eIQ 軟件,另外一章節將會對 eIQ 依賴的 Yocto 環境搭建和編譯進行 Hands On 介紹。
(注:本篇不包含 Demo 范例演示,Demo 將會在下一篇博文展出)
二、NXP eIQ 軟件介紹
eIQ 提供一系列的機器學習庫和工具,應用于 I.MX 系列應用開發。eIQ 只支持網絡模型的推測和標準的機器學習算法,即模型的訓練需要離線完成。目前 eIQ 的 SDK 已經內含在 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 加速,獨立于 eIQ ,自行用 OpenCL 進行開發。eIQ 的框架如下:? ?
三、eIQ 依賴的 Yocto 下載和編譯
eIQ 所依賴的 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??
大家了解下代碼和文檔資料的來源,Yocto 的代碼下載和編譯可參考如上的官方文檔,也可以參考下面的操作流程。
2.軟硬件環境準備
2.1 硬件準備:
一臺 Linux OS 以及預留 120 GB 、可聯網的主機。
2.2 軟件準備:
① Host Os : Ubuntu (本實驗基于 Ubuntu 16.04 LTS)
② 按如下命令安裝所依賴的包:
$ 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 根目錄逐步運行如下命令安裝
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??
安裝結果 Log 如下:
4.Repo 工具的獲取
① 來源:
https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
② 給 repo 添加可執行權限
③ 修改 REPO_UR
? ? ? ? ?vim 打開 ./bashrc ,底部添加 REPO_URL
5.通過 Repo 下載 Yocto 源碼
① 如下命令( 紅色字體 )開始初始化 Yocto 倉庫
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
結果如下:
② 如下命令(紅色字體)開始同步
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp$?repo sync
同步結果如下:? ?
? ? 。。。。。。?
出現如上紅色方框的內容,說明代碼包已下載成功,接下來可以進行編譯。
6.Yocto編譯
① 按如下命令(紅色字體)進行Yocto 編譯變量設置,包含 i.MX8 開發板類型、目標 OS 類型、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
過程如下:
② 修改 conf/local.conf ,添加 OpenCV / OpenCL / CMake / TensorFlow 相關設定
#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%"
③ 開始 bitbake 編譯 ,這一步將會產生最終的固件
baker@baker-VirtualBox:~/eIQ/fsl-arm-yocto-bsp/buildxwayland$ bitbake fsl-image-qt5
在 buildxwayland/tmp/deploy/images/imx8qmmek 目錄下,可以看到已經成功生成固件 “fsl-image-qt5-imx8qmmek.sdcard.bz2”
至此,eIQ 的環境搭建以及編譯已完成。下一篇將會帶大家一起在 i.MX8QMMEK demo 板上運行 eIQ Demo , 敬請期待。
點擊點“在看”給小編加雞腿 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的-i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语言撒谎问题_孩子撒谎是高情商?四招帮家
- 下一篇: rust货轮什么时候出现_与 Rust