BMC代码构建(bitbake 指令使用)

bitbake 是 Yocto Project / OpenEmbedded 构建系统的核心命令,用于编译、构建、打包嵌入式 Linux 系统(镜像、软件包、SDK 等)

bitbake 工作流程(极简理解)

  1. 解析配方 .bb / .bbappend
  2. 处理依赖(自动先构建依赖包)
  3. 执行任务链:
  4. fetch → patch → configure → compile → install → package → rootfs → image
  5. 输出产物到 tmp/deploy/ 目录

一、基础用法

# 构建指定的软件包/镜像
bitbake <包名/镜像名> -j <线程数>

# 示例
# bitbake obmc-phosphor-image

二、常用核心参数

1.查看可用任务

bitbake <包名> -c listtasks

查看这个包能执行哪些任务(fetch、compile、install、package 等)。

2.指定执行任务

bitbake <包名> -c <任务名>

# -f 用于强制重新运行指定任务,无视之前的构建状态
bitbake <包名> -f -c compile

常用任务:

  • fetch:- 只下载源码
  • patch:只打补丁
  • configure:只配置
  • compile:只编译
  • install:只安装到临时目录
  • package:打包成 ipk/rpm/deb
  • clean:清理构建产物(不删源码)
  • cleanall:清理所有(含源码 + 下载文件)
  • cleansstate:清理缓存(强制重新构建)
  • rootfs:构建根文件系统
  • image:构建完整镜像

3.强制重新构建

# 大写 C
bitbake <包名> -C <任务名>

# 示例
# bitbake busybox -C compile   # 从 compile 开始重新构建
# bitbake core-image-minimal -C image  # 强制重新生成镜像

从指定任务开始强制执行(忽略缓存)。与上边 -f 参数效果一样。

4.查看依赖关系

bitbake <包名> -g

会生成依赖图文件:

  • pn-depe- nds.dot
  • task-depends.dot

可用图形工具查看依赖(如 graphviz)。

5.显示详细日志

bitbake <包名> -v   # 详细输出
bitbake <包名> -D   # 更详细(Debug)

6.查看包的文件安装路径

bitbake <包名> -c install
cat tmp/work/<架构>/<包名>/<版本>/install/

7.清理所有构建缓存(重新完整构建)

bitbake <包名> -c cleansstate
bitbake <包名>   # 重新构建
posted @ 2026-06-10 10:57  一枚码农  阅读(37)  评论(0)    收藏  举报