No description, website, or topics provided.
C Makefile Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
010_conout
011_firmwarevendor
012_efiversion
020_echoback
030_shell
040_graphic_fb
041_graphic_setmode_blt
042_graphic_image_fb
043_graphic_image_blt
050_slideshow 050_slideshow: initialize 'i' variable Mar 1, 2017
060_fs_cat_hello
061_fs_ls_root add FS and MP samples Apr 8, 2017
062_fs_write
063_fs_create add FS and MP samples Apr 8, 2017
064_fs_get_file_info add get file information sample. Nov 23, 2017
070_mp_get_nop add FS and MP samples Apr 8, 2017
071_mp_get_pi
072_mp_start_ap_singlethread
073_mp_start_ap_multithread rename 073_mp_start_ap_notsinglethread to 073_mp_start_ap_multithread May 2, 2017
080_timer_wait_for_event
090_pointer_get_state add sample to get pointer state May 24, 2017
091_gui_1
092_gui_2
093_gui_3
0A0_snp_get_mac
0B0_acpi
tools
.gitignore
README.md

README.md

Bare Metal Samples (UEFI application)

ベアメタルプログラミングでUEFIアプリケーションを作成してみたサンプル集です。

「ベアメタルプログラミング」ということで、EDKやgnu-efiといった開発環境やツールチェイン無しで作成しています。

各サンプルの内容については、各サンプルのディレクトリ内のREADME.mdで説明しています。

使い方

1. 準備

1.1. 必要なパッケージのインストール

makex86_64-w64-mingw32-gccqemu-system-x86_64といったコマンドを使用します。

UbuntuやDebian等のAPTが使用できる環境であれば、以下のパッケージをインストールしてください。

  • make
  • gcc-mingw-w64-x86-64
  • qemu-system-x86_64

1.2. このリポジトリのclone

git clone https://github.com/cupnes/bare_metal_uefi.git

1.3. QEMU用のUEFIイメージファイルをリポジトリ直下へ配置

QEMUでUEFIの動作確認を行うためには、UEFIのイメージファイル(OVMF.fd)が必要です。

このリポジトリ内の各サンプルのMakefileはリポジトリ直下のOVMF.fdを参照するので、OVMF.fdをリポジトリ直下へ配置してください。

以下のURLからダウンロード可能です。

ダウンロード後、zipを展開し、このリポジトリ直下へ配置してください。

$ wget http://downloads.sourceforge.net/project/edk2/OVMF/OVMF-X64-r15214.zip
$ unzip OVMF-X64-r15214.zip
$ mv OVMF.fd bare_metal_uefi/
$ rm BUILD_INFO LICENSE README OVMF-X64-r15214.zip

2. ビルド・動作確認

各サンプルのディレクトリへ移動し、 make runでビルドからQEMU上での動作確認までを行えます。

終了方法は以下のとおりです。

  • QEMUを端末内で実行している(Makefileでqemu実行時に-nographicオプションを付けている) -- Ctrl + aの後、x
  • QEMUを別ウィンドウで実行している -- ウィンドウを閉じる -- あるいは、Ctrl + Alt + 2でQEMUモニターに入り、quitコマンドを実行

なお、実機で動作させる場合は、 USBフラッシュメモリ等の第1パーティションをFATでフォーマットし、 ビルド時に生成されるfsディレクトリの中身をコピーしてください。

■ コマンド例

# mount /dev/sdb1 /mnt/storage
# cp -r fs/* /mnt/storage/
# umount /mnt/storage

起動ディスク設定を変更し、ここで作成したUSBフラッシュメモリ等でブートすると、 UEFIアプリを試すことができます。 終了する際は、電源ボタンでPCごと終了させて下さい。

参考情報

以下の情報を参考にさせてもらい、作成しました。