その1でLinux上でエミュレータを起動するところまでは成功したのですが、実はOVMFなるものがありまして、これはedk2のプロジェクトの一つのようです。で、なんとqemu用のBIOS ROMを置き換えてEFIをqemuで動かそうという代物らしいです。
How toへのリンクを見つけたので貼っておきます。
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_build_OVMF
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_run_OVMF
これはかなり期待大です。エミュレータではPCIデバイスや物理メモリにアクセスするようなアプリが思うように動作しないのに対して、qemuであればハードウェアごとエミュレートしてるわけですから、かなり実機に近い動作が期待できます。加えて、qemuにはgdbと接続する機能がありますから実機にICEを繋いでデバッグするのに近い環境ができちゃうのかも。そんで、Eclipseのgdbのソースレベルデバッグと連携すれば、もう完璧です。夢は膨らむばかりです。
そんなわけで早速試してみます。
ビルド手順はその1に書いたのと変わりませんので重複する部分は割愛しまして、target.txtの「ACTIVE_PLATFORM」を以下のように書き換えます。
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc
で、ビルド
$ build
よし。次にOVMFを動作させる用のディレクトリをホームにつくります。
$ mkdir ~/run-ovmf
$ cd ~/run-ovmf
で、ビルドして出来たROMをここにコピーします。
$ cp ~/src/edk2/Build/OvmfIa32/DEBUG_GCC44/FV/OVMF.fd bios.bin
$ cp ~/src/edk2/Build/OvmfIa32/DEBUG_GCC44/FV/CirrusLogic5446.rom vgabios-cirrus.bin
ハードディスクにみせるためのディレクトリを作ります。
$ mkdir hda-contents
そしてqemuを実行します。ああ、qemuまだインストールしてませんでした。以下のコマンドでインストールします。
$ sudo apt-get install qemu
よし。じゃあ実行します。
$ qemu -L . -hda fat:hda-contents
おお、起動しました。
pciコマンドもこのとおりー
なかなかよろしいです。
0 件のコメント:
コメントを投稿