BMC代码构建(bitbake 指令使用)
bitbake 是 Yocto Project / OpenEmbedded 构建系统的核心命令,用于编译、构建、打包嵌入式 Linux 系统(镜像、软件包、SDK 等)
bitbake 工作流程(极简理解)
- 解析配方 .bb / .bbappend
- 处理依赖(自动先构建依赖包)
- 执行任务链:
- fetch → patch → configure → compile → install → package → rootfs → image
- 输出产物到 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 <包名> # 重新构建

浙公网安备 33010602011771号