RIoTBoard Yocto 简单移植

/ 0评 / 0

目前这个板子除了原理图,什么资料都没了,所以在咸鱼特别便宜,于是淘了一个,发现并没适配最新的Yocto,所以就移植了一下,内核是已经适配的.

参数大致就是1GHz Cortex-A9,带GPU,有扩展IO,反正就是便宜垃圾就是了,当年不垃圾,现在很垃圾,但是IMX6嘛,资料丰富.

U-Boot 移植补丁:https://gist.github.com/nickfox-taterli/0ce249000c4e2dd2787a05eba667308c

如果只想快速构建并且有Yocto基础的,到这一步应该就完成了,下面内容是给Yocto新手写的,Yocto是个很牛逼的工具,但是新手门槛确实有点高,大家先根据NXP官网的IMX_YOCTO_PROJECT_USERS_GUIDE构建一次官方板镜像,确定你环境安装各种是没问题,再继续下面的打补丁过程.

创建U-Boot的bbappend文件(meta-imx/meta-imx-bsp/recipes-bsp/u-boot/u-boot-imx_2023.04.bbappend):

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI += "\
    file://0001-Add-TaterLi-Custom-Patch-RIoTBoard.diff \
"

如果你需要校验MD5也可以后面再加上文件MD5会更好,然后把对应补丁放到目录里.

内核不用移植,因为上游内核本身就是兼容的,如果需要修改的也是同样方法,创建meta-imx/meta-imx-bsp/recipes-kernel/linux/linux-imx_6.6.bbappend,并塞入补丁文件.

修改Machine的定义,这个确实也不兼容了,估计太久没人维护了,文件路径meta-freescale-3rdparty/conf/machine/imx6dl-riotboard.conf

内容完全改成这样.

MACHINEOVERRIDES =. "mx6:mx6dl:"

require conf/machine/include/imx6sabresd-common.inc

KERNEL_DEVICETREE = " \
    nxp/imx/imx6dl-riotboard.dtb \
"

PREFERRED_PROVIDER_u-boot = "u-boot-imx"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-imx"
KERNEL_IMAGETYPE = "zImage"

UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "riotboard_config,sdcard"

如图:

移植完成了,关于烧录也是非常简单,使用UUU工具真一条命令烧录,至于单独替换文件调试,TFTPBOOT或者SFTP上传上去都行.

sudo uuu -b emmc_all u-boot.imx core-image-base-imx6dl-riotboard.rootfs.wic.zst

Yocto,就是这么简单.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注