ARMの仮想環境を作ってみるメモ。
UbuntuはVMWare上の仮想環境にあるのだけれど。仮想環境で仮想環境を動かすってどうなのということで。
ビルドが面倒であれば「QEMU ON WINDOWS」さまでビルド済みのQEMUが入手可能。(Windows7 x64環境で動作確認した。)
参考
「KMC Staff Blog」さまの「ARMのQEMUをソースからビルドして, その上でDebianを動かす」を参考にした。
※ちなみに、Ubuntu上での手順も確認済み。
前提
- Windows7 x64上のMinGWを使用。(OpenOCDをビルドする時に使ったもの)
- MinGWにwgetを導入してファイルを取得する手順とする。
- mingwPORTは使わない。(ファイルのリンク切れがある模様)
zlibの導入
情報はzlibのサイトを参照。
下記を実行してソースコードのアーカイブファイルを取得。
wget http://zlib.net/zlib-1.2.5.tar.gz
アーカイブを展開してConfigureしてみる。
tar zxvf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=/mingw
すると、
Checking for gcc...
Please use win32/Makefile.gcc instead.
と出るので、対処法どおり
vim win32/Makefile.gcc
で”Makefile.gcc”ファイルを開いて「IMPLIB = libzdll.a」の下辺りに
BINARY_PATH=/mingw/bin
INCLUDE_PATH=/mingw/include
LIBRARY_PATH=/mingw/lib
を追加後、
make -f win32/Makefile.gcc
make install -f win32/Makefile.gcc
を実行してビルド・インストールする。
SDLの導入
情報はSDLのサイトを参照。
下記を実行してソースコードのアーカイブファイルを取得。
wget http://www.libsdl.org/release/SDL-1.2.14.tar.gz
アーカイブを展開してビルド・インストール。
tar zxvf SDL-1.2.14.tar.gz
cd SDL-1.2.14
./configure --prefix=/mingw --disable-shared
make
make install
QEMUの導入
0.14.1を導入してみる。
他のバージョンが欲しい場合はこちらから入手。
下記を実行してソースコードのアーカイブファイルを取得。
wget http://ftp.twaren.net/Unix/NonGNU/qemu/qemu-0.14.1.tar.gz
アーカイブをを展開してビルド・インストール。
tar zxvf qemu-0.14.1.tar.gz
cd qemu-0.14.1
configure --target-list=arm-softmmu --disable-docs
make
make install
QEMUは”C:\Program Files\Qemu
“にインストールされる。
このままだと”libssp-0.dll
“が無いと怒られるため、”C:\MinGW\bin
“にある”libssp-0.dll
“を”C:\Program Files\Qemu
“にコピーする。
QEMUの起動
参考と同様に
http://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile http://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile http://people.debian.org/~aurel32/qemu/armel/debian_squeeze_armel_standard.qcow2
を取得し”C:\Program Files\Qemu
“に置いた後、コマンドラインを起動して
cd "c:\Program Files\QEMU" qemu-system-arm -M versatilepb -m 256 -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_standard.qcow2 -append "root=/dev/sda1"
を実行したところ、無事起動した。
おまけ
最初にMinGW上で動かすものだと思って、Configure時に「–prefix=/home/QEMU」としてQEMU上にインストールしたら、既存のイメージを起動すると
Begin: Mounting root file system ... /init: line 216: syntax error: 0xC:/MinGW/msys/1.0/dev/xxx
とかで、rootfsをマウントする時MinGWの/devの下を見にいくらしく、Panicしてしまう。
“-append”で指定しているカーネルオプション”root=/dev/sda1″がよろしくないみたいで、外して起動すればinitramfsでは起動するから何かが間違っているんだろうけれど、調べるのも面倒だしWindows側では動くから、とりあえずこれで良いことにする。
ちなみに、VM上のUbuntuに導入するなら
apt-get install libsdl1.2-dev
した後にQEMUの導入と同じ手順で、アーカイブ展開・ビルド・インストールでOKだった。
一応キャプチャしたけれど、仮想の中の仮想だからどの程度動くのかはわかりません。
コメント