Yocto项目自定义recipe无法复制文件到jetson-nano目标设备怎么解决?
Yocto自定义Recipe文件未部署到目标设备排查方案
- 第一步:确认Recipe已加入镜像安装列表
多数该类问题是因为未将自定义包加入镜像编译配置,可在build/conf/local.conf末尾添加如下配置:
若你使用自定义镜像recipe,也可将上述配置添加到对应镜像recipe的IMAGE_INSTALL:append = " log-generators"IMAGE_INSTALL变量中。 - 第二步:单独验证Recipe的安装逻辑是否正常
执行命令单独运行该recipe的安装阶段:
执行完成后进入该recipe的工作目录,找到bitbake log-generators -c install${D}对应路径,查看/test目录下是否存在.env和docker-compose.yml文件:- 若文件不存在:确认SRC_URI对应的源文件放置路径正确,需将两个文件放在
log-generators_0.1.bb同目录的files文件夹下,无拼写错误或权限问题。 - 若文件存在:继续往下排查镜像打包环节问题。
- 若文件不存在:确认SRC_URI对应的源文件放置路径正确,需将两个文件放在
- 第三步:修复变量语法兼容问题
新版Yocto(Honister及之后版本)推荐使用冒号替代下划线作为变量覆盖分隔符,将原recipe中的FILES_${PN}改为:
可避免变量覆盖不生效的版本兼容问题。FILES:${PN} += "/test/*" - 第四步:验证镜像内是否已包含目标文件
编译完整镜像后,进入tmp/deploy/images/jetson-nano-devkit/目录,挂载生成的rootfs镜像,检查/test目录下是否存在目标文件:- 若存在:确认你烧录的是本次编译生成的最新镜像,排除烧录旧镜像的问题。
- 若不存在:检查是否有其他层配置过滤了自定义包,或镜像安装配置未生效。
内容的提问来源于stack exchange,提问作者JuanPabloMF
相关产品推荐
相关产品推荐

