恩智浦 eIQ机器学习软件开发环境提供了一组库和针对 NXP MCU 和应用处理器的机器学习应用程序的开发工具。如果需要集成到 BSP,需要在 YOCTO 项目中增加 meta-imx-machinelearning 层。本文以 IMX8QM 平台为例,介绍了如何增加 meta-imx-machinelearning 层的方法。
- Yocto 环境架设
- 安装 repo工具,该工具的下载需要登录外网:
$ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo |
- 设定 git 账号:
$ git config --global user.name "your name" $ git config --global user.email your@example.com |
- 安装工具包, Yocto 环境编译架设中,工具包要安装完整,否则会导致后面 BSP 编译时出错而中止编译:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential \ chrpath socat libsdl1.2-dev xterm sed cvs subversion coreutils texi2html \ docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \ libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc |
- Yocto 项目设定:
$ cd ~ $ mkdir imx-yocto-bsp $ cd imx-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_ga.xml $ repo sync |
- 系统自动生成 Yocto 项目档案如下:
ps: Yocto 项目生成的档案中,fsl-setuo-release.sh 、README 、README-IMXBSP 和 setup-environment 是链接文件,
需要自己使用命令 “ln -s” 实现链接。
二、 eIQ 层数据获取
- 通过 repo 工具获取 meta-imx-machinelearning 层数据:
$ mkdir eIQ $ cd eIQ $ 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
此时会报有关 CAF 设置的错误,修改文件如下: $ vim .repo/manifest/imx-4.14.98-2.0.0_machinelearning.xml |
- 将获取得到的文件夹复制到第一节的 imx-yocto-bsp/sources 文件夹下:
$ repo sync $ cd ~/imx-yocto-bsp $ cp -r ~/eIQ/sources/meta-imx-machinelearning ./sources |
三、 Yocto BSP 编译
- 设定编译参数,增加 meata-imx-machinelearning 层编译配置:
$ DISTRO=fsl-imx-x11 MACHINE=imx8qmmek source fsl-setup-release.sh -b imx8qmmek-xwayland $ vim conf/bblayers.conf |
- 设定编译效能,并且增加 eIQ 相关设置:
$ vim conf/local.conf |
- 增加相关平台 tensorflow 的配置:
修改 /yocto/sources/meta-imx-machinelearning/recipes-libraries/tensorflow.bb
- 执行编译命令:
$ bitbake fsl-image-qt5-validation-imx |
编译结果:在 imx8qmmek/tmp/deploy/image/imx8qmmek 目录下会生成文件
u-boot:imx-boot-imx8qmmek-sd.bin-flash_linux_m4
kernel:Image--4.14.98-r0-imx8qmmek-20200109095441.bin
设备树:Image--4.14.98-r0-fsl-imx8qm-mek-20200109095441.dtb
文件系统:fsl-image-qt5-imx8qmmek-20200110060031.rootfs.sdcard.bz2
四、 制作 SDcard 启动卡
- 将 SDcard 插入读卡器,再插入电脑开始制作:
$ cd tmp/deploy/image/imx8qmmek $ sudo dd if=imx-boot-imx8qmmek-sd.bin-flash_linux_m4 of=/dev/sdb bs=1k seek=32 && sync $ bunzip2 -dk -f fsl-image-qt5-imx8qmmek-20200110060031.rootfs.sdcard.bz2 $ sudo dd if= fsl-image-qt5-imx8qmmek-20200110060031.rootfs.sdcard of=/dev/sdb bs=1M && sync |
- 将 SDcard 插入开发板,调整拨码开关至 SDcard 启动模式,将 USB Debug 数据口连接至电脑,打开 minicon 查看开发板启动 log:
参考文献:
NXP eIQ™ Machine Learning Software Development Environment for i.MX Applications Processors.pdf
评论