web-dev-qa-db-ja.com

TianoCore + corebootは真のオープンソースUEFIですか?

UEFIをめぐって多くの論争がありましたが、好むと好まざるとにかかわらず、一般に入手可能なデスクトップマザーボードに関しては、UEFIが唯一の選択肢になりつつあります。私はしばらくの間UEFImoboを避けてきましたが、moboベンダーがBIOS製品よりも多くの機能(つまり、より多くのRAMのサポート)を備えたUEFI製品を出荷するため、今では非常に困難になりました。そのことを念頭に置いて、将来的には少なくともオープンソースに移行するオプションがあることを確認したいと思います。そうでない場合は、機能は少なくても自由度が高くなります。

TianoCoreはIntelのUEFIインターフェースのオープンソース実装であり、 ウィキペディアはそれについてこれについて述べています

TianoCoreには、チップセット関数を初期化する専用のドライバーがありません。これらのドライバーは、代わりにCorebootによって提供され、TianoCoreは多くのペイロードオプションの1つです。 Corebootの開発には、初期化ドライバーの開発に必要な仕様を提供するために、チップセットメーカーの協力が必要です。

私の質問は、corebootによって提供されるこれらのドライバーには、チップセットベンダーからのある種のバイナリブロブがまだ必要ですか?また、 Ronald G. Minnichはこう言っています EFIについて:

IDE I/Oアドレスまたは特定のメモリアドレスへのアクセスは、EFIコードにトラップされ、潜在的に検査、変更、または中止される可能性があります。多くの人がこれを「DRMBIOS」を構築するための取り組みと見なしています。

TianoCore + corebootセットアップで、ハードウェアベンダーが提供するオープンソースまたはバイナリファームウェアを実行できる可能性のあるパーツはありますか?

12
Red

TianoCore + corebootは真のオープンソースUEFIですか?

Intelプラットフォームの場合(私はIntelボードの開発を行っており、AMDについて話すことはできませんが、ケースは同じだと思います)、いいえ。TianoCore自体は低レベルのハードウェア初期化を実行できず、このハードウェア初期化を最初に実行するにはcorebootが必要です。しかし、corebootはこれをどのように行いますか? corebootは、特定のバイナリblobを呼び出して、これらの機能を実行します。これらのバイナリブロブ(マイクロコードの更新、FSPバイナリ、MEバイナリなど)はどのように生成されますか?これらのバイナリはIntel独自のコードであるため、自分でビルドすることはできません。せいぜい、プラットフォームに関連するものを取得して、corebootビルドプロセスに含めることができます。これらのバイナリブロブのソースを自由かつオープンに変更できるようになるまで、真のオープンソースUEFIまたはコアブートはありません。

私の質問は、corebootによって提供されるこれらのドライバーには、チップセットベンダーからのある種のバイナリブロブがまだ必要ですか?

はい

出典:

経験

corebootソースコード

http://www.coreboot.org/TianoCore

インテルファームウェアサポートパッケージ(FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

マイクロコードの更新(多くの場合、BIOSによって適用されますが、必須ではありません。)
https://wiki.debian.org/Microcode

4
penguin4hire

Coreboot(ハードウェアの初期初期化を行う)とTianoCore(UEFI APIを提供する)を組み合わせて、完全なUEFIファームウェア実装にすることができます。ただし、それはまだ開発中です。また、外層がコアブートになるため、「正規の」UEFIにはなりません。

Duetに基づく1つのアプローチは、 http://notabs.org/coreboot/duet-payload/ -実際のハードウェアでいくらか起動します。

Tianoをより多く再利用し、UEFIアーキテクチャに近づこうとする別の(開示:私のプロジェクト)試みは、githubにあります: https://github.com/pgeorgi/edk2/ 。これは実際のハードウェアでのテストはまだ多くありません。Qemuだけです。

原則として、corebootコードを取得し、それらからtianocoreパッケージを作成することもできます。そのため、(ユーザーとOSに表示されるものだけでなく)あらゆる面でUEFIのように見えます。明らかに、coreboot開発者はそれにあまり興味がありません。

4
Patrick Georgi

チップセットの初期化やその他の非常に低レベルのハードウェア固有のコードは、常にほとんどがクローズドソースでした。 BIOS/UEFIは、メモリコントローラーの初期化などの詳細がボードベンダーによってめったに開示されないという事実を変更しません。

真のオープンソースボードを入手するには、マザーボード上の各ハードウェアコンポーネントのすべての仕様を公開しているベンダーであるオープンソースハードウェアを探す必要があります。控えめに言っても、それを見つけるのは難しいです。

3
Milind R