Table of Contents
1 QEMU-2.3のビルドとインストール
ディスプレイの表示にSDL2を使おうと思います。
QEMUのビルドに必要なパッケージとSDL2パッケージをインストールします。
sudo apt-get install gcc g++ autoconf automake libtoolsudo apt-get install libsdl2-dev
QEMUをダウンロードします。
wget jxf qemu-2.3.0.tar.bz2cd qemu-2.3.0
configureでSDL2の参照を有効にします。-enable-sdlのみだとSDL1.2が参照されるようなので、–with-sdlabi=2.0でSDL2を参照します。
./configure –enable-sdl –with-sdlabi=2.0 –prefix=${HOME}
ビルドします。全アーキテクチャのバイナリを生成する為、そこそこ時間がかかります(core-i3なマシンで20分くらい掛かりました)。
make all install -j4
2 Buildroot-2015.02のビルド
Buildrootをダウンロードします。
wget zxf buildroot-2015.02.tar.gzcd buildroot-2015.02
defconfigを確認してみます。
ls configs<snip>at91sam9260eknf_defconfig qemu_arm_nuri_defconfigat91sam9261ek_defconfig qemu_arm_versatile_defconfigat91sam9263ek_defconfig qemu_arm_vexpress_defconfig<snip>
qemu-system-armにvexpress-a9というボードがあります。
qemu-system-arm -M ? | grep vexpressvexpress-a15 ARM Versatile Express for Cortex-A15vexpress-a9 ARM Versatile Express for Cortex-A9
Cortex-A9コアは最近のスマホで使われており(最近はarmv8コアが主流かもしれませんが)、動かしてみるのも楽しそうです。
Buildrootのqemu_arm_vexpress_defconfigを使用します。make xxx_defconfigでconfigs配下のdefconfigを使用できます。
make qemu_arm_vexpress_defconfig
ビルドします(ツールチェインとパッケージ群をネットワーク経由で取得する為、ネットワーク速度依存な部分が大きいですが、core-i3なマシンで30分くらい掛かりました)。
make -j4
ルートファイルシステムのイメージが作成されます。
$ ls output/images/rootfs.ext2 zImage
3 vexpressボードの起動
ルートファイルシステムをSDカードとして読み込みます。
qemu-system-arm -M vexpress –kernel output/images/zImage -sd output/images/rootfs.ext2 -serial stdio -append “root=/dev/mmcblk0 rw”
起動するとシリアル、ディスプレイ、QEMU用プロンプト(デバイス追加等の操作)のウィンドウが表示されます。
グラフィック関係のパッケージが全然含まれていない為、ディスプレイはペンギン画像とカーネルログが表示される程度です。シリアルからログインできます。