mones2/22.ネットワークサーバ/09.QEMU-0.8.0をビルドしてみよう


Top / mones2 / 22.ネットワークサーバ / 09.QEMU-0.8.0をビルドしてみよう

これは何か

QEMU-0.8.0をビルドして新しいTAPを動かすようにしよう。

ビルド方法

QEMUのTAPあたりをデバッグする必要があったのでQEMU-0.8.0をビルドする方法を調べたのでまとめておきます。
 
方法は、基本的にQEMU同梱のqemu_doc.htmlに従っています。
 
1.http://www.mingw.org/からMinGW、MSYSをダウンロードしてインストール。(そのときの最新版でよいと思います。)
 
今日は以下のものが最新でした。
 
MinGW-5.0.2.exe
 
MSYS-1.0.11-2004.04.30-1.exe
 
2. SDLをインストール
 
http://www.libsdl.org/からSDL-devel-1.2.9-mingw32.tar.gz をダウンロード・解凍する。
 
SDL-1.2.9/bin/i386-mingw32msvc-sdl-configを sdl-config として MinGW/binにコピーする。
 
sdl-configを2箇所修正
 
prefix=/usr/local/cross-tools/i386-mingw32msvc # これを
 
prefix=c:/qemu-build/SDL-1.2.9 # SDLを解凍したディレクトリ
 
 
 
echo -I${prefix}/include/SDL -Dmain=SDL_main # これを
 
echo -I${prefix}/include -Dmain=SDL_main # これに
 
3. zlibのインストール
 
http://www.zlib.net/あたりから、zlib-1.2.2.tar.gzをダウンロード。
 
./configure --prefix=/usr
 
make
 
make install
 
4. QEMU-0.8.0にパッチを当てる
 
僕がインストールした、MSYS、MinGWだとなぜか、 include PATHに /usr/includeが入っていないので
 
適当にパッチをでっち上げました。
 
qemu-0.8.0-20060220.diff
 
5.QEMUのbuild
 
パッチを当てたら
 
./configure
 
make
 
make install
 
で、完成です。
 
以下余談(愚痴)ですが
 
sdl-configがいったい何なのか分からず苦労しました。
 
結局、QEMUの./configureにいろいろ埋め込んでデバッグしてやっと分かりました。
 
sdl-configは
 
sdl-config --libs
sdl-config --cflags
 
などとコマンドを打つと SDL のヘッダやライブラリへのパスを含んだ文字列を出力します。
 
これをコンパイルオプションとして利用しているというからくりなのです。
 
更にQEMUのconfigureでは、SDLがインストールされているかを調べるために、SDLを使用したCのソースをテンポラリで用意した上で、コンパイルしてみる、という力技をやっています。
 
cat > $TMPC << EOF
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
 
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
 
 
なかなかバッドノウハウな感じで楽しかったです。
 
さて次はTAPパッチを加えてみようかな。
 
追記: tap, vlanパッチ当てた
 
追記2: sdl-configの話しで、xx-configはそもそもそういうものだ。と鋭い突込みがあるものの、Linux初心者なので許してね(←勉強しろよ
 

コメントはありません。 コメント/mones2/22.ネットワークサーバ/09.QEMU-0.8.0をビルドしてみよう?

お名前:

MENU

now: 6

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2765, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:01 (3887d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.017 sec.