週末!プログラミング部

ソフトウェア開発ネタを中心に自分でいろいろ調べた内容を自分の勝手な解釈で思うがままに書いくためのブログ。サンプルソースコード、API、プラットフォーム、プログラミング言語、開発環境などを調査、分析して追求いく予定です。

QEMUでRPiをエミュレートしてみる

前回は、Crosstool-NGでtoolchainを構築して、RPi3のチュートリアルをビルドしてみました。
今回は、ビルドしたカーネルを動かしてみたいと思います(・`ω´・)b ・・・が、ビルドするたびにカーネルをSDカードにコピーするのも手間なのでQEMUというエミュレータ環境を使ってみます。

QEMUをビルドする

QEMUオープンソースのプロセッサエミュレータです。
PowerPCSPARC、ARMなど多くのプロセッサを模擬することができます。
特に、2.12からはRaspberry Pi3のモデルをサポートしているようです。
ただし、QEMUの公式バイナリではまたサポートされていないようなので自分でビルドする必要があります。
https://github.com/bztsrc/raspi3-tutorial#emulation

まずは公式のGitからチェックアウトしてmakeします。

$ cd ~
$ git clone https://git.qemu.org/git/qemu.git
$ cd qemu
$ git submodule init
$ git submodule update --recursive
$ ./configure
$ make

makeできたらとりあえずパスを通します。これで準備完了です。

$ export PATH=$PATH:$HOME/qemu/aarch64-softmmu

QEMUを動かしてみる

前回、ビルドしたカーネルを動かしてみます。 Makefile.gccのrunに使用するQEMUのバイナリを指定します。
今回はqemu-system-aarch64を使用します。

run:
  qemu-system-aarch64 -M raspi3 -kernel kernel8.img -serial stdio

あとは以下のコマンドを実行して「Hello World!」が表示されれば成功!

$ make run
qemu-system-aarch64 -M raspi3 -kernel kernel8.img -serial null -serial stdio
VNC server running on 127.0.0.1:5900
Hello World!



にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ ソフトウェアへ にほんブログ村 IT技術ブログ プログラム・プログラマーへ にほんブログ村 IT技術ブログ IT技術情報へ