IMX8M系列 yocto编译镜像及demo编译(MYD-JX8MX)
前段时间由于工作需要,研究了一下米尔的MYD-JX8MX开发板,用的是NXP 的IMX8M型号芯片,说实话,官方提供的文档描述的真的是简单,还有部分内容与实际不一,对用户来讲不是很友好。还好的是有技术支持,勉强能够编译流程跑完。
注意:由于该镜像的构建是由yocto工具完成的,对系统的性能要求较高所以,强烈建议不要在虚拟机的Ubuntu去完成,我个人采用的是装有双系统的电脑完成的。当然,如果你的电脑性能极其优越,给Ubuntu分配的资源也充足,可以尝试。
官网资料: http://down.myir-tech.com/MYD-JX8MX/有需要的小伙伴自行下载:
构建所需的安装包
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev
sudo apt-get install 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 python3-pip
sudo apt-get install u-boot-tools libssl-dev
设置repo
mkdir ~/bin
//curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
如果你没有下载成功,可以留言给我,我可以单独发给你。
配置git(俺也不知道为啥)
git config --global user.name "zacha"
git config --global user.email "1358357135@qq.com"
git config --list
完整镜像编译(镜像内部已经搭建了yocto编译环境,不需要单独在搭建)
tar -zxvf fsl-release-yocto.tar.gz
cd fsl-release-yocto
DISTRO=fsl-imx-xwayland MACHINE= source fsl-setup-release.sh -b build-xwayland
bitbake fsl-image-qt5-validation-imx
编译镜像所需的依赖包及其多及其大,并且是在线下载编译安装等,两天不知道能不能搞定,可能还会报错,你会体会到什么叫真正的绝望…
注意:一定不要用root权限,否则会有问题
有时候会提示python 版本的问题, 如果报错,可切换至2.7版本尝试
解压镜像所需的依赖包(在downloads下)
这里已经提前下好编译所需的镜像包,将其解压到镜像源码的root目录下,然后在执行bitbake fsl-image-qt5-validation-imx 编译命令
cat downloads.tar.gza* > downloads.tar.gz
tar -zxf downloads.tar.gz -C ~/fsl-release-yocto/
编译完成后,在/build-xwayland/tmp/deploy/images/imx8mqevk目录下查看镜像
.如果编译安装过程中依赖包出错,可用下命令解决
bitbake -c cleansstate nbench-byte(nbench-byte出错包)
bitbake nbench-byte
也可单独编译Uboot 和kernel,具体看用户开发手册
烧录文件到开发板
官方文档提供了两种方式用于升级固件,都进行尝试了,都没有成功,
网上找到一种方式:https://imxdev.gitlab.io/tutorial/How_to_inspect_OpenEmbedded_kickstart_wic_files/成功了
bzip2 -d fsl-image-qt5-validation-imx-imx8mqevk-20210809020904.rootfs.wic.bz2
sudo dd if=fsl-image-qt5-validation-imx-imx8mqevk-20210809020904.rootfs.wic of=/dev/sdc
下面的步骤是单独编译demo的
Yocto构建SDK⼯具
cd fsl-release-yocto
. ./setup-environment build-xwayland
bitbake meta-toolchain
安装工具链
cd ~/fsl-release-yocto/build-xwayland/tmp/deploy/sdk
./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.9.88-2.0.0.sh
. /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux
#(编译环境设置)
注意安装好后的提示:Each time you wish to use the SDK in a new shell session, you need to source the en vironment setup script e.g
从编译好的镜像中提取文件系统(在home目录imx8mqevk-rootfs)
runqemu-extract-sdk ~/fsl-release-yocto/build-xwayland/tmp/deploy/images/imx8mqevk/fsl-image-qt5-validation-imx-imx8mqevk-20210809020904.rootfs.tar.bz2 ~/imx8mqevk-rootfs
OpenCL FFT demo 编译(demo源码地址:https://github.com/NXPmicro/gtec-demo-framework)
设置编译环境
cd gtec-demo-framework-master
pushd ~/fsl-release-yocto/build-xwayland/tmp
source environment-setup-aarch64-poky-linux
export ROOTFS=~/imx8mqevk-rootfs
export FSL_PLATFORM_NAME=Yocto
popd
pushd popd 命令与cd命令类似,但是优点在于不用反复的切换,直接popd就切换回来了
开始编译。
source prepare.sh
cd DemoApps/OpenCL/FastFourierTransform
FslBuild.py
我使用官方提供的这种方式没有编译成功,如果你编译成功了,恭喜你。
如果你没有编译成功,可以考虑看一下我下一篇文章的内容。
我会将我如何编写自己的demo和对开发板的使用做一个详细的说明。