[ 新規 ] [ 検索 | 一覧 | FrontPage ] [ 履歴 (RSS) | 差分履歴 (RSS) ] [ ログイン ]
【PR】Amazon | SL-C3000 | SL-C1000(3/18発売!) | SL-C860 | SL-6000W | SL-6000L | SL-6000N

LinuxZaurus向けビルド/QEMU

差分表示


編集前の状態に戻します。
* 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を公開。

** ダウンロード

- 最新バージョン
-- [[qemu-i386_0.6.1-1_arm.ipk Download:qemu-i386_0.6.1-1_arm.ipk]]

i386バイナリの実行には別途ライブラリも必要です。実行したいバイナリによって必要な共有ライブラリが異なるので、qemu-gnemul-0.5.1.tar.gz等を使用してください。
http://fabrice.bellard.free.fr/qemu/download.html

** ビルド内容

下記の内容でビルドを行っています。

*** gcc3のクロスコンパイラ作成

gcc2.95ではビルドがうまくいかないようなので下記のサイト等を参考にgcc3のクロスコンパイラを作成。

- [[gccのビルド…gcc3.3.3編 http://ehe.s57.xrea.com/index.php?gcc%A4%CE%A5%D3%A5%EB%A5%C9%A1%C4gcc3.3.3%CA%D4]]
- [[ぴろのぺーじ http://www.piro.hopto.org/~piro/pukiwiki/pukiwiki.php?%5B%5Bgcc-3.3.1%5D%5D]]
- [[クロスコンパイラとしてGCC3.Xを使用する http://www.mit.msn.to/zaurus/gcc3.html]]
- [[XScaleなコードを吐くコンパイラを手に入れる http://www.t12.jp/~ryuta/misclab/zaurus/compiler.html]]

*** パッチ作成

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

[[File:gflashplayer_s.jpg File:gflashplayer.jpg]]

'''※とりあえず動きましたがメチャメチャ遅くて使い物にはならないと思います。'''

** コメント
コメント等がありましたらこちらへどうぞ。 
- 2007-11-02 (Fri) 02:51:36 ''[[Alex Fetcher]]'' : Great site!<br>15da1d9576755b7d759cc7de6e08d3c6
[[#comment]]
 [[#comment]]


08247