2007年8月13日月曜日

Cygwin (WinXP) で Dynamips をコンパイル

Cisco 7200 Simulator (Dynamips) と Cygwin と同時に使用しようとすると cygwin1.dll のバージョンが違うので動作しません。 (涙)
なので自前でコンパイルしてみました。

■ 環境

  • OS: Windows XP Pro SP2
  • Cygwin: uname -r = 1.5.24(0.156/4/2) ← 全てのパッケージをインストールしています。
  • Dynamips: 0.2.7 final release
  • Dynagen: 0.9.3
  • Libelf: Version 0.8.9
  • WinPcap Developer's Packs: 4.0.1
  • dynagen_poderosa.cmd

    ■ 凡例

  • cygwin$ … 一般ユーザの Cygwin のプロンプト
  • cygwin# … Administrators グループに所属するユーザの Cygwin のプロンプト
    ※ 日常的に Administrators グループに所属するユーザでログオンしている場合、ユーザを切り替える必要はないです。

    ■ コンパイル

    cygwin$ mkdir -p ~/tmp/dynamips
    cygwin$ cd ~/tmp/dynamips
    cygwin$ wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.7.tar.gz
    cygwin$ wget http://www.mr511.de/software/libelf-0.8.9.tar.gz
    cygwin$ wget http://www.winpcap.org/install/bin/WpdPack_4_0_1.zip
    cygwin$ tar xvzf libelf-0.8.9.tar.gz
    cygwin$ cd libelf-0.8.9
    cygwin$ ./configure && make && make instroot=~/tmp/dynamips install
    cygwin$ cd ..
    cygwin$ unzip WpdPack_4_0_1.zip
    cygwin$ cp WpdPack/Include/* ./usr/local/include
    cygwin$ cp WpdPack/Lib/* ./usr/local/lib
    cygwin$ tar xvzf dynamips-0.2.7.tar.gz
    cygwin$ cd dynamips-0.2.7
    cygwin$ cp -p Makefile Makefile.orig
    cygwin$ vi Makefile
    cygwin$ diff Makefile.orig Makefile
    9c9
    < HAS_RFC2553?=1
    ---
    > HAS_RFC2553?=0
    73c73
    < LIBS=-L/usr/local/lib -L. -lelf -lpthread
    ---
    > LIBS=-L../usr/local/lib -L/usr/local/lib -L. -lelf -lpthread

    cygwin$ CFLAGS=-I../usr/local/include make
    cygwin# DESTDIR=/usr/local make install
    cygwin$ cd
    cygwin$ rm -r ~/tmp/dynamips
    cygwin# cat >/usr/local/bin/dynamips-start
    #! /bin/sh
    test -d /tmp/dynamips || mkdir -p /tmp/dynamips
    ( cd /tmp/dynamips && nice dynamips -H 7200 )
    ^D
    cygwin# chmod 755 /usr/local/bin/dynamips-start
    cygwin# cd /usr/local
    cygwin# wget http://downloads.sourceforge.net/dyna-gen/dynagen-0.9.3.tar.gz?modtime=1182074556&big_mirror=0
    cygwin# tar xvzf dynagen-0.9.3.tar.gz
    cygwin# mv dynagen-0.9.3 dynagen
    cygwin# cp -p /usr/local/dynagen/dynagen.ini /usr/local/dynagen/dynagen.ini.orig
    cygwin# diff /usr/local/dynagen/dynagen.ini.orig /usr/local/dynagen/dynagen.ini
    21a22
    > telnet = /usr/local/dynagen/dynagen_poderosa.cmd %h %p %d
    33c34
    < telnet = xterm -T %d -e telnet %h %p > /dev/null 2>&1 &
    ---
    > #telnet = xterm -T %d -e telnet %h %p > /dev/null 2>&1 &
    cygwin# ln -s /usr/local/dynagen/dynagen /usr/local/bin
    cygwin# rm /usr/local/dynagen-0.9.3.tar.gz

    ■ 実行

  • Dynamips を実行する。
    cygwin$ dynamips-start

  • 別のターミナルから Lab (Dynagen) を実行する。
    cygwin$ dynagen <.net file>

    ■ 参考

  • Cisco 7200 Simulator » Blog Archive » Status of 0.2.4a
  • 0 件のコメント: