yocto在编译完成后会生成很多文件,位置在<work dir>/<build dir>/tmp目录下
下面介绍一些常用的文件使用
下面这些是我在新建yocto工程的时候使用的变量,大家可以对应一下自己的名字
<work dir>是imx-yocto-bsp
<distro name>是fsl-imx-xwayland
<machine name>是imx8qxpmek
<build dir>是build-xwayland
kernel源码位置
~/imx-yocto-bsp/build-xwayland/tmp/work-shared/imx8qxpmek/kernel-source
u-boot源码位置
~/imx-yocto-bsp/build-xwayland/tmp/work/imx8qxpmek-poky-linux/u-boot-imx/1_2020.04-r0/git
如果找不到此文件夹 单独编译部署u-boot即可
bitbake -c compile u-boot -f
bitbake -c deploy u-boot
rootfs
~/imx-yocto-bsp/build-xwayland/tmp/work/imx8qxpc0mek-poky-linux/imx-image-full/1.0-r0/rootfs
如果没有则删除conf文件中的INHERIT += "rm_work" ,重新执行
bitbake imx-image-full
yocto环境下单独编译u-boot
cd imx-yocto-bsp
source setup-environment build-xwayland
bitbake -c cleansstate u-boot
bitbake -c compile u-boot -f
bitbake -c deploy u-boot
bitbake imx-image-full
生成镜像文件在如下位置
build-xwayland/tmp/deploy/images/imx8mqevk/imx-boot-imx8mqevk-sd.bin
yocto环境下单独编译内核
cd imx-yocto-bsp
source setup-environment build-xwayland
bitbake linux-imx -c compile -f
bitbake linux-imx -c compile_kernelmodules -f
bitbake -c deploy -f linux-imx //部署文件到deploy文件夹
bitbake imx-image-full //重新部署映像
⽣成镜像⽂件在如下位置:
build-xwayland/tmp/work/imx8mqevk-poky-linux/linux-imx/4.9.88-r0/build/arch/arm64/boot/Image
工具链制作
cd imx-yocto-bsp
source setup-environment build-xwayland
bitbake imx-image-full -c populate_sdk //编译目标为imx-image-full的工具链
生成文件在build-xwayland//tmp/deploy/sdk 下
安装工具链
执⾏命令
./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.9.88-2.0.0.sh
结果
在生成了工具链之后实际上就可以脱离yocot开发了,毕竟yocto的编译速度实在是太慢了。具体u-boot、kernel编译方法可以咨询NXP FAE。
烧录
在build-xwayland/tmp/deploy/images/imx8qxpc0mek的目录下有一些格式是这样的文件
这些文件可以直接通过uuu工具下载到板子上。
例如想下载到emmc中,可以使用以下命令
uuu -b emmc_all imx-boot-imx8qxpmek-sd.bin-flash imx-image-full-imx8qxpc0mek.wic.bz2
还有一些其他用法可以参考以下网址
uuu工具下载地址:https://github.com/NXPmicro/mfgtools/releases
uuu工具使用说明:https://github.com/NXPmicro/mfgtools/wiki/Example
如果下载失败,且硬件上没有问题,就需要考虑自己制作的板子是否与官方开发板的设计有所不同,如果不同需要具体咨询NXP FAE。具体可能是内存的不同、使用的usb烧录口不同等等。
除了直接使用yocto编译出来的软件包之外,我们还可以使用官方提供的脚本分别对u-boot、内核、文件系统等进行烧录。
选择所需要BSP软件包,软件包内有编译完成uboot、内核、设备树以及完整的下载包。我们只需要里面的官方uuu脚本。
例如我需要的是5.4.24的软件包,下载后解压samples文件夹下有这些文件
我们可以根据存储器件选择对应的脚本。
打开文件example_kernel_emmc.uuu 。
文件开始,我们可以看到这个脚本需要的文件,只要将脚本需要的文件放入相同目录后,执行uuu example_kernel_emmc.uuu即可进行下载。
同样的我们也可以修改脚本文件,选择哪个文件需要烧录,哪个不需要烧录,屏蔽脚本中的一些代码即可实现。