QEMU
- http://fabrice.bellard.free.fr/qemu/
QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation.
QEMUのi386 User mode emulationモジュールをLinuxZaurus向けにビルドしてみました。
更新履歴
- 2005/03/16 qemu-i386/0.6.1-1を公開。
ダウンロード
- 最新バージョン
i386バイナリの実行には別途ライブラリも必要です。実行したいバイナリによって必要な共有ライブラリが異なるので、qemu-gnemul-0.5.1.tar.gz等を使用してください。
http://fabrice.bellard.free.fr/qemu/download.html
ビルド内容
下記の内容でビルドを行っています。
gcc3のクロスコンパイラ作成
gcc2.95ではビルドがうまくいかないようなので下記のサイト等を参考にgcc3のクロスコンパイラを作成。
パッチ作成
CFLAGSに-fno-omit-frame-pointerを追加。
--- qemu-0.6.1.orig/Makefile.target 2004-11-15 05:51:33.000000000 +0900 +++ qemu-0.6.1/Makefile.target 2005-03-11 22:47:28.000000000 +0900 @@ -7,7 +7,7 @@ VPATH+=:$(SRC_PATH)/linux-user DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH) endif -CFLAGS=-Wall -O2 -g -fno-strict-aliasing +CFLAGS=-Wall -O2 -g -fno-strict-aliasing -fno-omit-frame-pointer LDFLAGS=-g LIBS= HELPER_CFLAGS=$(CFLAGS) diff -r -u qemu-0.6.1.orig/cpu-exec.c qemu-0.6.1/cpu-exec.c
handle_cpu_signalの最後の引数が抜けているので追加。
--- qemu-0.6.1.orig/cpu-exec.c 2004-11-15 05:51:33.000000000 +0900 +++ qemu-0.6.1/cpu-exec.c 2005-03-11 22:47:40.000000000 +0900 @@ -1009,7 +1009,7 @@ is_write = 0; return handle_cpu_signal(pc, (unsigned long)info->si_addr, is_write, - &uc->uc_sigmask); + &uc->uc_sigmask, puc); } #elif defined(__mc68000)
ビルド
./configure \ --interp-prefix=/mnt/gnemul/qemu-%M \ --target-list=i386-user \ --cross-prefix=arm-linux-
make
使用例
http://www.macromedia.com/support/flash/downloads.html
Macromedia Flash Player 6 - Standalone player (Projector) for Linux を 動かしてみます。
http://forums.gentoo.org/viewtopic.php?t=117774
上記フォーラムのトピックにgflashplayerをqemuで動かすのに必要なファイルをまとめたアーカイブがあったので、これを使用しました。
XサーバはX/Qtを使用しました。
$ export DISPLAY=:0.0 $ qemu-i386 -L /mnt/flash_x86 /mnt/flash_x86/usr/bin/gflashplayer
※とりあえず動きましたがメチャメチャ遅くて使い物にはならないと思います。
コメント
コメント等がありましたらこちらへどうぞ。
[[#comment]]