UEFIのSDK事情

なんか幾つか選択肢があって混乱したので、今理解していることをメモっとく。

EDK II

このへん。
オープンソースで開発されてるUEFISDKで、UEFISDKまわりをググってると一番よく出てくるやつ。
つかいかたはこのへんとか。

…なんだが、ソースの取得方法に

$ svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2

とか書いてあって、それってまぁ見れば分かると思うけど、開発版なんだよね。
色々試してみたら、普通にビルド通らないコードとかあってびっくりした。
ライセンスはBSDL。
libcとかsocket libraryとかUEFIで動くpythonとか含まれてる。
なお、「UEFIアプリケーションのSDK」としても使えるが、そもそも「UEFIファームウェアSDK」であり、「UEFI ShellのSDK」でもある。

UDK2010

このへん。
UDK2010がEDK IIのstable releaseで、IntelがEDK IIを元にリリースしてるっぽい。
なので、爆死しないためにはこっちを使った方が良さそう。
含まれてるコンポーネントは大体同じ…?

gnu-efi

このへん。
EDKよりずっとシンプルな「UEFIアプリケーションのSDK」。
libcとかsocket libraryとかpythonみたいな意欲的なものは無く、ただシンプルにUEFI APIを叩くためのもの。
とあるブログなどでは「EDKよりつかいやすそう」と言及されてたりするが、ちょっと情報少ない感。
名前が明らかにミスリードだが、ライセンスはBSDL
gccbinutilsでシンプルにUEFI API叩きたいならこっちの方が楽そう。
本家サイトでは言及すらされてないけど、Windows環境はout of 眼中だろうと思う。もしかしたらCygwinならいけるか…?

libefi on FreeBSD

FreeBSD baseに入ってるEFI libraryはIA64対応のためにスクラッチから書かれているように見える。
CURRENTではlibefiのx86対応は済んでいるようにみえるが、UEFIブートローダx86対応は出来てなくて、GSoC'12でやったけど未だマージされてない模様。
SummerOfCode2012/IntelEFIBoot - FreeBSD Wiki