bios:基于 Lua 的 BIOS 管理组件项目

System BIOS management app

Branch6Tags155
FilesLast commitLast update
1 month ago
23 days ago
1 year ago
3 months ago
1 month ago
25 days ago
2 months ago
2 months ago
22 days ago
3 months ago
21 days ago
21 days ago
2 months ago
1 year ago
2 months ago
2 months ago
2 months ago
1 month ago
22 days ago
3 months ago
3 months ago
3 months ago
1 year ago
3 months ago
2 months ago
3 months ago

bios

验证说明:本文档是 bios 组件构建与测试的唯一指导文档,验证流程请严格按本文档执行。docs/ 目录下的文档为特性说明文档,不涉及构建流程。原始 README 内容已移至 docs/功能简介.md。本组件仅支持 Ubuntu 24.04 LTS,openEuler、CentOS、Debian 等其他系统均不支持,不要尝试使用其他镜像替代。

bios组件主要是与带内交互模块,关键功能包含:配置-支持bios配置导入导出/启动项/启动模式设置/无感升级策略重配;证书-支持bios启动证书/安全启动证书/吊销证书管理;升级-支持bios普通升级/无感升级/teeos升级/krun升级;PFR-支持bios自愈功能


目录


仓库地址

https://gitcode.com/openUBMC/bios


系统要求

项目 要求
操作系统 Ubuntu 24.04 LTS(仅支持此版本)
芯片架构 x86-64(amd64)
Python >= 3.10(init.py 运行依赖)

bingo、Conan 等构建工具由 init.py 自动安装,无需手动准备。推荐使用 Docker 容器进行构建,可使用以下镜像快速启动开发环境:

docker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2

环境依赖

构建 bios 前需完成 openUBMC 开发环境初始化(安装 bingo、Conan、Node.js、配置 Conan 远程仓库等)。完整初始化步骤和常见问题排查请参阅 openUBMC 构建指导书,该文档包含容器环境搭建、init.py 执行、Conan 登录验证等全部操作说明。

禁止手动安装 bingo 和 Conan:手动安装(如 pip install conan)会导致 Conan 远程仓库认证失败,bingo build 无法拉取依赖包。所有构建工具必须通过 manifest 仓库的 init.py 流程一键安装。


构建

获取组件代码

前提:已完成 环境依赖 中的 init.py 初始化流程,bingo 和 conan 命令可用。

cd /home/workspace
git clone https://gitcode.com/openUBMC/bios.git

组件级构建

进入 bios 组件目录后,使用 bingo 执行构建:

cd /home/workspace/bios

# 默认 dev 阶段构建
bingo build --stage=dev

# 构建并发布到 stable 阶段
bingo build --stage=stable

# Release 类型构建
bingo build --stage=dev -bt release

构建参数说明

bingo build [-h] [-bt BUILD_TYPE] [--stage STAGE] [-u] [-r REMOTE] [--conan2] [-nc] [-o OPTIONS] [--user USER] [-wb] [--ccache]
参数 说明 默认值
-bt / --build_type 构建类型,可选 debug、release debug
--stage 包发布阶段,可选 dev、pre、rc、stable dev
-u / --upload 上传组件包到 Conan 仓库 —
-r / --remote Conan 仓库别名 —
--conan2 强制使用 Conan2 构建组件 —
-nc / --no_cache 强制更新 Conan 缓存依赖 —
-o / --options 定义组件选项值 —
--user 指定 Conan 包的 user 字段 openubmc
-wb / --without_build 不强制源码构建组件自身 —
--ccache 使用 ccache 加速 C/C++ 编译 —

测试

使用 bingo test 运行各类测试,需加 -jit 参数,否则测试会失败:

# 运行单元测试
bingo test -ut -jit

# 运行集成测试
bingo test -it -jit

# 运行 mock 测试
bingo test -mt -jit

# 运行 fuzz 测试
bingo test -ft -jit

# 运行单元测试并指定过滤
bingo test -ut -jit -f <filter>

# 运行单元测试并启用 ASAN
bingo test -ut -jit -as

常用测试参数:

参数 说明
-ut 启用单元测试
-it 启用集成测试
-mt 启用 mock 测试
-ft 启用 fuzz 测试
-f 测试过滤
-jit 需加此参数,否则测试会失败
-as 启用 AddressSanitizer

项目结构

bios/
├ .pre-commit-config.yaml              # Git 钩子配置
├ CHANGELOG
├ CMakeLists.txt
├ CONTRIBUTING.md
├ LICENSE
├ Makefile
├ README.md
├ conanfile.py
├ dist/              # 分发配置
├ docs/              # 文档
├ include/              # 公共头文件
├ manufacture/              # 装备配置
├ mds/              # MDS 模型定义
├ proto/              # 协议定义
├ src/              # 源码实现
├ test/              # 测试相关
└ whitelist/              # 白名单配置

许可证

本项目基于 Mulan PSL v2 许可证开源。详情请参阅项目根目录下的 LICENSE 文件

Introduction

System BIOS management app

Customize your domain