14 个稳定版本 (5 个主要版本)
5.0.0 | 2024年7月30日 |
---|---|
4.5.0 | 2024年5月23日 |
4.4.0 | 2024年3月27日 |
4.3.0 | 2023年10月18日 |
0.1.1 | 2018年12月10日 |
#33 in 嵌入式开发
每月45,128次下载
用于 3 crate
260KB
6.5K SLoC
r-efi
UEFI 参考规范协议常量和定义
r-efi 项目提供了 UEFI 参考规范的协议常量和定义的原生 Rust 代码。此项目的范围仅限于这些协议定义。这些协议并未实际实现。因此,此项目作为任何需要与 UEFI 交互或实现(部分)UEFI 规范的 UEFI 应用程序的基础。
项目
需求
此项目的要求包括
rustc>= 1.68.0
构建
要构建此项目,请运行
cargo build
可用的配置选项包括
- native: 此功能选择器启用编译需要本地 UEFI 目标的模块和示例。它们将无法在外国目标上编译,因此受此标志的保护。
通过官方工具链构建
从 rust-version 1.68 开始,rustup 为许多 UEFI 目标分发预编译的工具链。您可以通过 rustup
列举和安装它们。以下示例显示了如何列出所有可用目标,然后安装适用于 x86_64
架构的 UEFI 目标
rustup target list --toolchain=stable
rustup target add --toolchain=stable x86_64-unknown-uefi
然后可以直接为选定的目标编译此项目
cargo +stable build \
--examples \
--features native \
--lib \
--target x86_64-unknown-uefi
通过 cargo/rustc nightly with -Zbuild-std 构建
如果您的选定目标没有可用的预编译工具链,您可以通过 rustc 的实验性 -Zbuild-std
功能编译项目及其所需的标准库部分。这需要一个夜间编译器
cargo +nightly build \
-Zbuild-std=core,compiler_builtins,alloc \
-Zbuild-std-features=compiler-builtins-mem \
--examples \
--features native \
--lib \
--target x86_64-unknown-uefi
通过外国目标构建
可以通过标准 Rust 工具链为非 UEFI 目标构建此项目。这允许非 UEFI 目标与 UEFI 系统交互或以其他方式托管 UEFI 操作。此外,只要目标支持完整的标准库,就可以运行此项目的国外测试套件。
cargo +stable build --all-targets
cargo +stable test --all-targets
请注意,对于外国目标,不得启用 native
功能,因为它将在非 UEFI 系统上无法编译。
仓库
- web: https://github.com/r-efi/r-efi
- https:
https://github.com/r-efi/r-efi.git
- ssh:
[email protected]:r-efi/r-efi.git
许可证
- MIT OR Apache-2.0 OR LGPL-2.1-or-later
- 详细信息请参阅AUTHORS文件。
依赖项
~205KB