9/19/2011

EDKをビルドする その2

(*この記事は以前、私が運営していたhttp://www.poppolab.comというサイトで公開していたものですが、ドメイン維持の都合により閉鎖しましたため、こちらに投稿し直します。内容は1年近く古いものですので、現在の事情とは食い違う可能性があります。)

仕様書やソースなど必要なリソースを以下のリンクからゲットします。

インテル
http://www.intel.com/technology/efi/

UEFI
http://www.uefi.org/home/

EDK
http://sourceforge.net/projects/efidevkit/files/


sourceforgeのEDKプロジェクトのサイトにソースが公開されているのでダウンロードします。「Releases」の「Offical Releases」の中で最新のものをダウンロードします。2010年8月3日時点の最新版はEdk 1.06.zipだったのでこれを使います。ドキュメント類も必要に応じてダウンロードしておくと後々参考になります。得に最初にお世話になるのは「Edk Getting Statted Guid」ですね。

sourceforgeのEDKプロジェクトのサイトにソースが公開されているのでダウンロードします。「Releases」の「Offical Releases」の中で最新のものをダウンロードします。2010年8月3日時点の最新版はEdk 1.06.zipだったのでこれを使います。ドキュメント類も必要に応じてダウンロードしておくと後々参考になります。得に最初にお世話になるのは「Edk Getting Statted Guid」ですね。
そして、肝心のビルド環境ですが、ドキュメントによって書いてあることが微妙に違っているのでちょっとあれですが、概ね以下のような感じです。
  • OS: Microsoft Windows 2000 or XP 
  • コンパイラ: Microsoft Visual Studio .NET 2003 or 2005 (IA64やX64をビルドするには Microsoft Windows Server 2003 DDK build 3790) 
といった感じです。で、問題はVisual Studioのエディションなんですが、これもドキュメントによって書いてあることがまちまちで、2005 Professional とか2003 Enterpriseとか書いてありますが個人で購入するには高価すぎるわけです。なので、私はWindowsXP Home EditionとVisual C++ 2005 Express Editionで挑戦してみました。環境構築に若干の+αが必要ですが、とくに問題なく快適にビルドできます。ただオフィシャルな環境ではないので、そこら辺は自己責任になりますが… まあ、個人的な感触としてはVC++のバージョンさえあってれば問題ないように思います。

そんなわけでまず、必要なツール類をダウンロードします。ちなみにすべて無料で入手できます。

VC++ 2005 Express Edition 日本語版
http://download.microsoft.com/download/8/E/8/8E85D539-2255-4CFD-AA97-440AE6C6F44A/vc.iso

VC++ 2005 Express Edition SP1
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vs2005/sp1/
(VS80sp1-KB926748-X86-INTL.exeをダウンロードする)

Microsoft Windows Server 2003 DDK
http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso
(X64やIA64をビルドしないのであれば必要ない)

Microsoft Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
(PSDK-x86.exeをダウンロードする)

Microsoft Macro Assembler 8.0 (MASM)
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64&DisplayLang=ja

それでは、ツール類をインストールしましょうかね。

まずはVC++ Express Editionです。ダウンロードするとisoファイルになっているので、CDRに焼くか仮想CDドライブでマウントするか、WINRARなどのisoを解凍できるアーカイバで解凍しちゃいます。私はWINRARで解凍しちゃいました。それで、setupを実行してインストールします。特に気をつけることは無く、デフォルトのオプションでインストールします。
次にVC++ 2005 Express SP1をインストールします。これは必須ではありませんが、一応入れておきます。ダウンロードしたファイルを実行するだけなので、これも特に悩むことは無いと思います。

次にMicrosoft Platform SDKをインストールします。これはオフィシャルなドキュメントには書かれていないものですが、これをインストールしないとExpressEditionではインクルードファイルが無いとかでビルドエラーになります。
つまり、Expressでもこれをインストールすれば足りないライブラリやヘッダファイルが補完されEDKをビルドできるようになるというわけです。

PSDK-x86.exeを実行してインストールします。途中以下のような画面に遭遇すると思いますが、Typcalを選んでおけば問題ないです。知識のある方はCustomでお好みのコンポーネントを選んでインストールしてもよいと思います。


次にMASMをインストールします。これはアセンブラですね。EFIといえどもアセンブリ言語で書かれたソースが多少あるため必要になります。ExpressEditionでは標準でついていないのでインストールします。これもMASMsetup.EXEを実行するだけなので悩むところはないはずです。

ここまでのツールでIA32プラットフォームのソースはビルドできますが、X64やIA32プラットフォームのソースをビルドするにはMicrosoft Windows Server 2003 DDKをインストールする必要があります。1830_usa_ddk.isoというファイルですがisoなので、例のごとく焼くなり、マウントするなり、解凍するなりして中のsetup.exeを実行します。途中以下のような画面に出くわしますが、サンプルコードのインストールをするかどうかなので、このままデフォルトでいいと思われます。



以上で、ツール類のインストールは完了です。いよいよビルドしようと思いますが、またしても長文となってしまったので続きはその3に書きます。

0 件のコメント:

コメントを投稿