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

在Yocto中为SAM9X60-EK安装OpenCV遇问题求助

解决Yocto中SAM9X60-EK添加OpenCV的问题

问题分析

自定义配方的核心错误

你自己编写的opencv_4.8.0.bb存在几个关键问题:

  • 直接调用主机的python3执行setup.py,而非使用Yocto提供的交叉编译Python环境,导致构建过程调用本地系统的skbuild/CMake工具,而非目标架构的交叉编译工具链。
  • 手动实现do_unpack属于冗余操作,Yocto会自动处理标准压缩包的解压。
  • 安装路径和打包逻辑不符合Yocto规范,直接复制文件到${bindir}会导致文件结构混乱。

meta-oe配方报错的常见原因

SAM9X60基于ARMv5架构,meta-oe的OpenCV默认配方未适配该架构编译需求:比如默认开启了ARMv5不支持的NEON/VFPv3指令集特性,或者依赖库配置缺失。


解决方案

方案1:修复自定义配方(不推荐,优先用官方层配方)

如果坚持自行编写配方,需严格遵循Yocto Python包构建规范:

SUMMARY = "OpenCV Python bindings"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=填写对应文件的md5值"

SRC_URI = "file://opencv-python-4.8.0.76.tar.gz"
S = "${WORKDIR}/opencv-python-4.8.0.76"

# 继承Yocto Python打包和CMake类
inherit setuptools3 cmake

# 添加交叉编译依赖
DEPENDS += "python3 python3-numpy cmake opencv-core"
RDEPENDS:${PN} += "python3 python3-numpy"

# 配置CMake适配ARMv5架构
EXTRA_OECMAKE += "\
    -DCMAKE_TOOLCHAIN_FILE=${STAGING_DIR_HOST}/share/cmake/OEToolchainConfig.cmake \
    -DOPENCV_ENABLE_NEON=OFF \
    -DOPENCV_ENABLE_VFPV3=OFF \
"

# 无需自定义do_unpack/do_install,inherit的类会自动处理

将opencv-python-4.8.0.76.tar.gz放在配方所在目录的files子文件夹下,再执行bitbake opencv。

方案2:正确使用meta-oe的OpenCV配方(推荐)

针对SAM9X60的ARMv5架构,修改meta-oe的OpenCV配置:

  1. 在自定义层中创建recipes-support/opencv/opencv_%.bbappend文件,添加:
# 禁用ARMv5不支持的指令集特性
EXTRA_OECMAKE += "\
    -DOPENCV_ENABLE_NEON=OFF \
    -DOPENCV_ENABLE_VFPV3=OFF \
    -DBUILD_opencv_python3=ON \
"

# 补充依赖
DEPENDS += "python3-numpy"
RDEPENDS:opencv-python += "python3 python3-numpy"
  1. 简化core-image-sato.bbappend的安装项:
IMAGE_INSTALL:append = " python3 python3-numpy opencv opencv-python"
  1. 清理缓存后重新构建:
bitbake -c cleanall opencv
bitbake core-image-sato

关键注意事项

  • 禁止在Yocto构建步骤中直接调用主机的python/cmake工具,必须通过inherit相关类(如setuptools3、cmake)使用交叉编译环境。
  • ARMv5不支持NEON/VFPv3指令集,必须在CMake选项中禁用这些特性,否则会出现编译错误。
  • 使用官方层配方是最优选择,自定义配方极易引入交叉编译适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:08:18