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

如何在Yocto中构建PyCoral与libedgetpu?适配Renesas RZV2M板卡

为Renesas RZV2M在Yocto中构建PyCoral与libedgetpu的解决方案

1. 编写libedgetpu的Yocto Recipe

libedgetpu是PyCoral依赖的核心底层库,需针对RZV2M的ARM64架构编译。创建recipes-core/libedgetpu/libedgetpu_git.bb文件,内容如下:

SUMMARY = "Google Coral Edge TPU runtime library"
HOMEPAGE = "https://coral.ai/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"

SRC_URI = "git://github.com/google-coral/libedgetpu.git;branch=master;protocol=https"
SRCREV = "<替换为libedgetpu仓库最新commit哈希>"

S = "${WORKDIR}/git"

DEPENDS = "libusb1"

inherit pkgconfig cmake

EXTRA_OECMAKE = " \
    -DUSE_NEON=ON \
    -DUSE_GLOBAL_NNAPI=OFF \
    -DBUILD_SHARED_LIBS=ON \
    -DPLATFORM=arm64 \
"

FILES_${PN} += " \
    ${libdir}/libedgetpu.so* \
"

FILES_${PN}-dev += " \
    ${includedir}/edgetpu/ \
    ${libdir}/pkgconfig/edgetpu.pc \
"

关键说明

  • 替换<替换为libedgetpu仓库最新commit哈希>为项目当前最新的提交ID,保证代码是最新稳定版
  • PLATFORM=arm64适配RZV2M的ARM64架构
  • 依赖libusb1是Coral USB Accelerator的USB通信必需组件

2. 编写PyCoral的Yocto Recipe

PyCoral负责提供Python层调用接口,创建recipes-devtools/python/python3-pycoral_git.bb文件:

SUMMARY = "Python bindings for Google Coral Edge TPU"
HOMEPAGE = "https://coral.ai/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"

SRC_URI = "git://github.com/google-coral/pycoral.git;branch=master;protocol=https"
SRCREV = "<替换为pycoral仓库最新commit哈希>"

S = "${WORKDIR}/git"

DEPENDS = "python3 python3-pip python3-setuptools libedgetpu tensorflow-lite"
RDEPENDS_${PN} = "python3-numpy python3-pil python3-tflite-runtime"

inherit setuptools3

do_install_prepend() {
    # 移除setup.py中对edgetpu的版本限制,直接使用系统编译的libedgetpu
    sed -i 's/edgetpu>=.*//g' ${S}/setup.py
}

FILES_${PN} += " \
    ${PYTHON_SITEPACKAGES_DIR}/pycoral/ \
    ${PYTHON_SITEPACKAGES_DIR}/pycoral-*.egg-info/ \
"

关键说明

  • 替换<替换为pycoral仓库最新commit哈希>为项目当前最新的提交ID
  • 移除setup.py中的edgetpu版本限制,避免与系统编译的libedgetpu冲突
  • 依赖tensorflow-lite需通过meta-tensorflow层引入,确保Yocto环境中包含该层

3. 配置Yocto构建环境

  1. 在bblayers.conf中添加存放上述Recipe的自定义层(例如meta-coral):
BBLAYERS += "${TOPDIR}/../meta-coral"
  1. 在local.conf中添加构建目标与优化配置:
IMAGE_INSTALL:append = " libedgetpu python3-pycoral"
MACHINE = "rzv2m"
TUNE_FEATURES = "aarch64 cortex-a53 neon"

4. 构建与验证

  1. 执行构建命令:
bitbake <你的镜像名称>
  1. 烧录镜像到RZV2M板卡后,验证安装:
    • 插入Coral USB Accelerator
    • 运行测试代码:
    from pycoral.utils.edgetpu import list_edge_tpus
    print(list_edge_tpus())
    
    若输出设备信息,说明PyCoral与libedgetpu安装成功。

常见问题处理

  • 依赖缺失导致编译失败:确认meta-tensorflow、meta-python等基础层已添加到bblayers.conf
  • libedgetpu链接错误:检查EXTRA_OECMAKE中的PLATFORM参数是否为arm64,确认libusb1已正确编译
  • PyCoral导入失败:通过pip3 list查看pycoral是否出现在已安装列表中,检查Python模块路径配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:43:42