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

Yocto新手:添加meta-telephony到Poky执行bitbake askterik遇oe_runmake失败

Troubleshooting oe_runmake failed with meta-telephony & Asterisk in Yocto (Raspberry Pi)

Hey there, fellow Yocto newbie! Let's break down how to fix that frustrating meta-telephony ERROR: oe_runmake failed error you're seeing when running bitbake asterisk (I assume that's a typo for "asterisk" instead of "askterik"). This error usually means the make step during compilation hit a snag—here's how to dig into it and fix things:

1. First, Grab the Full Error Log

The generic oe_runmake failed message doesn't tell you the real issue. You need to look at the detailed build logs to see what went wrong during the actual make execution:

  • Run bitbake asterisk -e > asterisk_build_debug.log to export full build environment and logs to a file, or
  • Navigate to your build directory's tmp/logs/recipes-telephony/asterisk/asterisk/ folder and check the log.do_compile file—this will show you the exact error that caused make to fail (missing headers, undefined symbols, dependency issues, etc.)

2. Verify Layer Compatibility

Yocto branches are strict—make sure your meta-telephony layer is on the same branch as your Poky and meta-raspberrypi layers. For example:

  • If you're using Poky's kirkstone branch, meta-telephony must also be checked out to kirkstone
  • Run git branch in each layer's directory to confirm branch alignment. Mismatched branches often cause API or dependency breaks that lead to compile failures.

3. Check for Missing Dependencies

Asterisk (from meta-telephony) relies on several system libraries. Open the Asterisk recipe file (usually meta-telephony/recipes-telephony/asterisk/asterisk_*.bb) and look at the DEPENDS variable. Common dependencies include:

  • openssl
  • libxml2
  • sqlite3
  • ncurses

Ensure all these dependencies are available in your build setup:

  • If a dependency comes from meta-openembedded (most do), make sure meta-oe is added to your bblayers.conf
  • Run bitbake -s | grep <dependency-name> to confirm the package exists in your layer set

4. Validate Cross-Compile Setup

Since you're targeting Raspberry Pi (ARM architecture), make sure the meta-telephony recipe is configured for cross-compilation:

  • Check the recipe's EXTRA_OEMAKE variable—should pass cross-compiler flags like CC=${CC} or CROSS_COMPILE=${TARGET_PREFIX}
  • If the recipe was written for x86 by default, you might need to add ARM-specific patches or adjust compile arguments.

5. Clean Build Cache & Retry

Old build artifacts can cause weird, hard-to-debug failures. Wipe the Asterisk build cache and start fresh:

bitbake -c cleanall asterisk
bitbake asterisk

6. Check Layer Priority & Conflicts

Make sure your bblayers.conf has layers in the correct order (base layers first, feature layers last):

BBLAYERS ?= " \
  /path/to/poky/meta \
  /path/to/poky/meta-poky \
  /path/to/poky/meta-yocto-bsp \
  /path/to/meta-raspberrypi \
  /path/to/meta-openembedded/meta-oe \
  /path/to/meta-telephony \
  "

Also, ensure no other layer in your setup provides a conflicting version of Asterisk—run bitbake -s | grep asterisk to confirm only meta-telephony's version is being used.


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:12:38