You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto Honister(meta-xilinx v2022.1_update2)中生成FPGA可重构的base.dtbo?

关于Yocto Honister + meta-xilinx xlnx-rel-v2022.1_update2中FPGA可重构设备树的问题解答

1. 引入base.dtbo/pl-final.dts的步骤

  • 放置设备树源文件
    将pl-final.dts和base.dts(用于生成base.dtbo)放入自定义层的设备树文件目录,例如meta-custom/recipes-bsp/device-tree/files/。不推荐直接修改上游meta-xilinx层,优先通过自定义层的bbappend文件扩展。
  • 添加路径覆盖配置
    在自定义层中创建device-tree.bbappend,添加路径优先级:
    FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
    
  • 配置设备树编译变量
    在device-tree.bbappend或local.conf中指定覆盖文件与基础设备树:
    # 配置base.dtbo生成
    DEVICE_TREE_OVERLAYS += "base.dtbo"
    DTBO_SOURCES += "base.dts"
    # 指定pl-final为基础设备树(若需替换默认dtb)
    DEVICE_TREE = "pl-final.dtb"
    
  • 启用FPGA内核驱动
    在linux-xlnx_%.bbappend中添加内核配置:
    KERNEL_FEATURES:append = " cfg/fpga.cfg"
    
    确保以下核心配置开启:
    CONFIG_FPGA=y
    CONFIG_FPGA_MGR_XILINX=y
    CONFIG_FPGA_BRIDGE=y
    CONFIG_FPGA_BRIDGE_XILINX=y
    
  • 验证部署与加载
    编译镜像后,检查tmp/deploy/images/<目标板>/目录下是否存在base.dtbo和pl-final.dtb。启动系统后可通过以下命令加载覆盖层:
    fdtoverlay -i /boot/system.dtb -o /tmp/merged.dtb /boot/base.dtbo
    reboot
    

2. 恢复base.dtbo生成流程的方法

  • 检查全局配置变量
    打开local.conf,确认DEVICE_TREE_OVERLAYS和DTBO_SOURCES变量未被误删除:
    DEVICE_TREE_OVERLAYS += "base.dtbo"
    DTBO_SOURCES += "base.dts"
    
  • 排查自定义层覆盖逻辑
    检查自定义层的device-tree.bbappend或linux-xlnx.bbappend,若存在DTBO_SOURCES:remove = "base.dts"这类语句,直接删除。
  • 核对上游层原始配置
    同步xlnx-rel-v2022.1_update2版本的meta-xilinx层,对比meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb文件,确认默认编译逻辑是否包含base.dts,若上游文件被修改则恢复原始版本。
  • 清理缓存重新编译
    执行以下命令清理设备树编译缓存并重建:
    bitbake -c clean device-tree
    bitbake device-tree
    
  • 通过日志定位问题
    启用调试日志编译,过滤base.dts相关信息:
    bitbake device-tree -D 2>&1 | grep -i base.dts
    
    根据日志提示修复语法错误、路径缺失等问题。
  • 手动添加编译规则(兜底方案)
    若自动编译逻辑失效,可在device-tree.bbappend中手动添加编译与安装步骤:
    do_compile:append() {
        ${DTC} -I dts -O dtbo -o ${B}/base.dtbo ${S}/base.dts
    }
    do_install:append() {
        install -m 0644 ${B}/base.dtbo ${D}/boot/
    }
    

内容的提问来源于stack exchange,提问作者Xerusial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:45:45