Repolode
tianocore

tianocore/edk2

OVMFやEmulatorPkgなどのプラットフォームを含む、UEFIおよびPI仕様に基づくファームウェアを構築するためのクロスプラットフォーム開発環境。

スター
6,398
フォーク
3,360
未解決の Issue
1,461
最終コミット
昨日

これは何?

EDK IIは、uefi.orgで公開されているUEFIおよびPI仕様に対応する、TianoCoreプロジェクトが保守するファームウェア開発環境です。ビルドシステム、共有ライブラリ、パッケージを提供し、それらを組み合わせてx86、ARMなどのプラットフォーム向けファームウェアを構築・テストできます。

リポジトリは、MdePkg、MdeModulePkg、OvmfPkg(仮想マシン用ファームウェア)、ArmVirtPkg、EmulatorPkgなどのパッケージで構成されています。継続的インテグレーションでは、Visual Studioを使うWindows環境と、GCC、Clang PDB、Clang DWARFツールチェーンを使うUbuntu環境でビルドが実行され、構成ごとにビルド、テスト、カバレッジの状況が表示されます。

コントリビューターはDeveloper Certificate of Originのサインオフを付けて、メールでパッチを提出します。また、OpenSSL、Brotli、libspdmなどの上流コンポーネントにはgit submoduleを利用しています。

主な機能

  • 01UEFIおよびPIファームウェアの構成要素を、モジュール化されたパッケージとして実装しています。
  • 02仮想マシン用ファームウェアのOvmfPkgや、AArch64向けのArmVirtPkgなど、プラットフォーム別のパッケージを提供します。
  • 03ホスト上のエミュレーション環境でファームウェアを実行するためのEmulatorPkgを含みます。
  • 04Visual Studio、GCC、Clang(PDBおよびDWARF)ツールチェーンによるビルドに対応しています。
  • 05PythonベースのツールとCIスクリプトを使って、ビルドとテストを検証します。

ユースケース

  • QEMUベースの環境向けに、OVMFなどの仮想マシン用ファームウェアを構築する。
  • ARMまたはx86プラットフォーム向けのUEFIファームウェアを開発、移植する。
  • ハードウェアでの立ち上げ前に、エミュレーション環境でファームウェアの変更をテストする。
  • オープンソースのUEFIリファレンス実装に貢献したり、その仕組みを学んだりする。

使う前に知っておきたいこと

  • 大部分は BSD-2-Clause Plus Patent ですが、複数のコンポーネントやサブモジュールに追加のライセンスが適用されているため、ライセンスが明確に特定されていません。
  • ビルドには特定のバージョンの Python と複数のビルドツールが必要です。セットアップ方法については、README から外部 Wiki に案内されています。

収録されている特集

トピック

よくある質問

edk2 とは?
OVMFやEmulatorPkgなどのプラットフォームを含む、UEFIおよびPI仕様に基づくファームウェアを構築するためのクロスプラットフォーム開発環境。 EDK IIは、uefi.orgで公開されているUEFIおよびPI仕様に対応する、TianoCoreプロジェクトが保守するファームウェア開発環境です。ビルドシステム、共有ライブラリ、パッケージを提供し、それらを組み合わせてx86、ARMなどのプラットフォーム向けファームウェアを構築・テストできます。
edk2 は無料で使えますか?ライセンスは?
edk2 は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
edk2 は今もメンテナンスされていますか?
活発にメンテナンス中。edk2 の最終コミットは 2026年11月6日 です。
edk2 は何に使えますか?
QEMUベースの環境向けに、OVMFなどの仮想マシン用ファームウェアを構築する。 ARMまたはx86プラットフォーム向けのUEFIファームウェアを開発、移植する。 ハードウェアでの立ち上げ前に、エミュレーション環境でファームウェアの変更をテストする。 オープンソースのUEFIリファレンス実装に貢献したり、その仕組みを学んだりする。
edk2 はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tianocore/edk2

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト