bochs

作業を行った日には偶然sourceforge.netが落ちていた
仕方が無いので
http://ebisa.hp.infoseek.co.jp/bochs/index.shtml
より
Win32 バイナリ + ROMBIOS + ソース修正パッチ :
bochs-2.1.pre1-jpfix-20031006-win32.zip
を持ってくる。
.bochsrcに
ne2k: ioaddr=0x240, irq=9, mac=0B:00:00:00:0A, ethmod=win32, ethdev=...
の記述をしたいがethdev=のパラメータが分からない。
bochsを起動しようとしても

========================================================================
Bochs is exiting with the following message:
[NE2K ] Could not open adapter for ethernet reception
========================================================================

このようなメッセージが出るだけだ。

MLを見るとethdev=のパラメータはniclist.exeにて取得できるらしいが、ミラーを見つけることができず、niclist.exeの入手に難航した。
MLの過去ログでethdev=Device\ NPF_{....
となることを知る。

その記述はおそらくレジストリなのだろうけれど検索するのが面倒だ。
代替案としてherculesをWindowsで動かす際に使う
ctci-w32を用いるときのtt32infoを用いてみる。
http://home.sprintmail.com/~dtrout/Hercules/ctci-w32-index.html

Detected adapters:

szAdapterName = NPF_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

と表示される為

ne2k: ioaddr=0x240, irq=9, mac=0B:00:00:00:00:0A, ethmod=win32, ethdev=Device\ NPF_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

とする。

正常に起動できるようになった。

次にOSを探す。
PINGが飛ばせればどれでも良いのでbochsのサイトのディスクイメージからOpenBSDのフロッピーイメージを持ってきてみる。

ログ〜中略〜
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
vt0 at isa0 port 0x60/16 irq 1: vga 80 col, color, 8 scr, mf2-kbd
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
biomask 4040 netmask 4240 ttymask 4242
rd0: fixed, 3560 blocks
rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell? s
# ifconfig ne0 192.168.1.50 up
# ping --help
usage: ping [-DdfLnqRrv] [-c count] [-I ifaddr] [-i wait]
[-l preload] [-p pattern] [-s packetsize] [-t ttl] [-w maxwait] host
# ping -c 4 192.168.1.29
PING 192.168.1.29 (192.168.1.29): 56 data bytes
64 bytes from 192.168.1.29: icmp_seq=0 ttl=128 time=724.128 ms
64 bytes from 192.168.1.29: icmp_seq=1 ttl=128 time=14.668 ms
64 bytes from 192.168.1.29: icmp_seq=2 ttl=128 time=15.427 ms
64 bytes from 192.168.1.29: icmp_seq=3 ttl=128 time=15.744 ms

      • 192.168.1.29 ping statistics ---

4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/std-dev = 14.668/192.491/724.128/306.941 ms
# route add 0.0.0.0 192.168.1.1
add net 0.0.0.0: gateway 192.168.1.1
# ping インターネット上のIPアドレス
PING インターネット上のIPアドレス (インターネット上のIPアドレス): 56 data bytes
64 bytes from インターネット上のIPアドレス: icmp_seq=0 ttl=239 time=1719.260 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=1 ttl=239 time=203.009 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=2 ttl=239 time=1302.988 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=3 ttl=239 time=742.973 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=4 ttl=239 time=1712.943 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=5 ttl=239 time=892.936 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=6 ttl=239 time=1032.911 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=7 ttl=239 time=72.915 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=8 ttl=239 time=2102.932 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=9 ttl=239 time=954.050 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=10 ttl=239 time=1712.944 ms
64 bytes from インターネット上のIPアドレス: icmp_seq=11 ttl=239 time=762.880 ms

13 packets transmitted, 12 packets received, 7% packet loss
round-trip min/avg/max/std-dev = 72.915/1101.061/2102.932/602.166 ms

Windows上からは下記のようになる。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:Documents and Settings>ping インターネット上のIPアドレス

Pinging インターネット上のIPアドレス with 32 bytes of data:

Reply from インターネット上のIPアドレス: bytes=32 time=55ms TTL=239
Reply from インターネット上のIPアドレス: bytes=32 time=60ms TTL=239
Reply from インターネット上のIPアドレス: bytes=32 time=53ms TTL=239
Reply from インターネット上のIPアドレス: bytes=32 time=49ms TTL=239

Ping statistics for インターネット上のIPアドレス:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 49ms, Maximum = 60ms, Average = 54ms

192.168.1.1:ゲートウェイ
192.168.1.29:ホストOS(WindowsXP
192.168.1.15:Bochs上のOpenBSD