Mac OS X (Mojave 10.14.6)で mtoc の build に手こずった話

UEFI ベアメタルプログラミング やってみよーと思ってたらここに手こずっていた

  • UEFI プログラムを QEMU で実行してみたい -> OVMF の build が必要
  • OvmfPkg/build.sh 実行してみると mtoc がない isal がないとか言われる

そもそも前準備が必要だった

  • Mac で EDK2 を動かすために必要な準備

github.com

  • isal は brew でなんとかなったが mtoc は brew にはないらしいので頑張って build することに

  • 上のリンクの手順通りにやっているが cctools の make がどうしても通らない

    • include/mach/i386 周りで死ぬ

解決策

  • どうやら cctools-xxx/include/mach/i386 を消し去れば良かったらしい

Compile mtoc on macOS Catalina Xcode 11 · GitHub

  • ↑を見て解決した
  • 32bit 切ったとかに関係あるんですかね?(よくわからない
  • とりあえずここに1時間くらいかかってしんどかった貴重な休みが・・・

  • 無事 mtoc.NEW が作られ OVMF.fd の build も完了した

  • ちなみに QEMU で無事動いた UEFI プログラム

    f:id:dvi2911:20191123213450p:plain

  • 動かしてみたのはこちらの main.c
  • http://yuma.ohgami.jp/ubmp/UEFI-Bare-Metal-Programming_20170811.pdf