Yocto开发镜像添加SD卡启动功能,如何区分生产镜像?
问题:为开发镜像添加SD卡启动功能(生产镜像不包含)
需求
为开发镜像添加SD卡启动功能,但该功能不能出现在生产镜像中。
已尝试的无效方案
方案1:自定义IMAGE_FEATURES
尝试将sd-card-boot作为自定义镜像特性添加到IMAGE_FEATURES,但Yocto不识别该特性。相关代码如下:
image.bb:
require base-image.bb IMAGE_FEATURES:append = "sd-card-boot"
u-boot-distro-boot.bbappend:
SRC_URI:append:sd-card-boot = " \ file://sd-card-boot/uEnv-sd-boot.txt.in \ " do_compile:prepend:sd-card-boot() { cat ${WORKDIR}/uEnv-sd-card-boot.txt.in >> ${S}/uEnv.txt.in }
方案2:其他变量传递尝试
在image.bb中尝试以下方式传递变量,均未生效:
export SD_CARD_BOOT = "1" # 变量未出现在环境中 DISTRO_FEATURES:append = " sd-card-boot " # 特性未被纳入发行版特性
需要找到一种从镜像文件向bbappend传递变量或配置的有效方法。
更新:临时可行但不够理想的解决方案
创建conf/distro/my-distro.conf:
# mydistro.conf require conf/distro/supplier-distro.inc SD_CARD_BOOT = "true"
修改配方文件:
do_compile:prepend:() { if [ "${SD_CARD_BOOT}" = "true" ]; then cat ${WORKDIR}/uEnv-sd-card-boot.txt.in >> ${S}/uEnv.txt.in fi }
内容的提问来源于stack exchange,提问作者RooterTooter
相关产品推荐
相关产品推荐

