LoginSignup
2
3

More than 3 years have passed since last update.

Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする

Last updated at Posted at 2016-10-13

2020/4/26(日)時点での EDK II と QEMU の HEAD をビルドして使ってみた時のメモです。

作業環境

準備作業

  • 事前にインストールした初期状態の Ubuntu Desktop の仮想マシンをクローンする。
  • クローンした新しい Ubuntu Desktop の仮想マシンを起動し、Terminal から以下のコマンドを投入する。ビルドエラーになった場合に、「apt-file search ファイル名」でパッケージを探せるようにするため。
$ sudo apt-get install -fy apt-file
$ sudo apt-file update

EDK2 の OvmfPkg をビルドする

  • Terminal から以下のコマンドを投入する。同じ版を試したい場合は、git checkout すること。
$ sudo apt-get install -fy build-essential uuid-dev nasm iasl git python3-distutils
$ git clone https://github.com/tianocore/edk2/

$ cd edk2
$ git show -s --format=%H
0f1946b6626e263c7f764c21cc241cc9faf8a1ae

$ git submodule update --init
$ make -C BaseTools
$ . ./edksetup.sh
$ build -a X64 -t GCC49 -p OvmfPkg/OvmfPkgX64.dsc
$ cp -p Build/OvmfX64/DEBUG_GCC49/FV/OVMF_*.fd ~
$ cd ..

QEMU をビルドする

  • Terminal から以下のコマンドを投入する。同じ版を試したい場合は、git checkout すること。
$ sudo apt-get install -fy zlib1g-dev libglib2.0 libpixman-1-dev libfdt-dev gvncviewer
$ git clone git://git.qemu-project.org/qemu.git
$ cd qemu
$ git show -s --format=%H
ee573f5326046223b6eef4ae7fbfec31d274e093

$ ./configure --target-list=x86_64-softmmu
$ make -j2
$ sudo make install
$ qemu-system-x86_64 --version
QEMU emulator version 4.2.94 (v5.0.0-rc4-dirty)
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
$ cd ..

シェルスクリプトを準備する

  • ホームディレクトリに以下のシェルスクリプトを作成する。ホームディレクトリに作業用の tmp_efi ディレクトリを作成するので注意すること。
efi_exec.sh
#!/bin/bash

IS_DBG=${1:-0}

mkdir -p $HOME/tmp_efi

if test $IS_DBG -eq 1
then
    DBG="-gdb tcp::10000 -S"
else
    DBG=""
fi

qemu-system-x86_64 \
    -machine pc \
    -net none -nographic -vnc :0 \
    -drive if=pflash,readonly,file=OVMF_CODE.fd,format=raw \
    -drive if=pflash,file=OVMF_VARS.fd,format=raw \
    -drive format=raw,file=fat:rw:$HOME/tmp_efi \
    -debugcon file:$HOME/tmp_efi/ovmf.log \
    -global isa-debugcon.iobase=0x402 $DBG

VNC で EFI Shell を使ってみる

  • Terminal を起動し、以下のコマンドを投入する。
$ ./efi_exec.sh
  • EFI Shell が起動するので使ってみる。

Shell.PNG

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3