BochsにWoody (その1)

BochsはPC/AT互換機エミュレータです。 WindowsだけでなくLinux, Mac等の様々なプラットフォームで動作します。しかもフリーソフトです。

Amazonのベストセラー
(キーワード: Linux)

環境

今回、Bochsを動かすPC(ホストPC)のスペックは以下のとおりです。

OS : Microsoft Windows2000 SP4 日本語版
CPU : AthlonXP 2500
Mother Board : Aopen AK79D-400VN
Chipset : nVida nForce2 Ultra400
Memory : DDR SDRAM 1GBytes
Video : nVidia GeForce FX5200 128MB
HDD : IBM 120GB
CD/DVD : DVD-ROM Drive, CDR Drive
FDD : 3 mode drive(?)
Netowrk : nVidia nForce MCP
Sound : nVidia nForce Audio Codec

このPCが接続されるLANのネットワークアドレスは192.168.10.0/24で、 ADSLモデム(ルータ)が192.168.10.254に設定されています(固定IP)。

準備

Bochsのインストール

Bochsのオフィシャルページ (http://bochs.sourceforge.net/)から ダウンロードします。

執筆時の最新Versionは2.1.1でした。 ダウンロード自体はここの 「Bochs Binary and Source Releases」というところからできます。 ダウンロードするファイルは「Bochs-2.1.1.exe」です。

インストールは簡単です。 ダウンロードしたBochs-2.1.1.exeをダブルクリックするだけです。 デフォルトのままで問題がないので、そのままインストールしましょう。

WinPcapのインストール

次にWinPcap(http://winpcap.polito.it/)と言うドライバをインストールします。 これは、Windowsのネットワークドライバに細工をするドライバです。Bochsのネットワーク機能はWinPcapがないと動かないようです。

執筆時の最新Versionは3.0でした。 ダウンロード自体はここからできます。

インストールするにはダウンロードしたWinPcap_3_0.exeをダブルクリックします。 最初のところでチェックボックスをチェックしないと次に進めないので気をつけましょう。 あとはそのまま選んでいけばOKです。古いバージョンのWinPcapをインストールしている人はリブートした方がよいようです。

ネットワークデバイスの情報収集

ここでは、Bochsのネットワーク機能を設定するために必要な情報を取得します。

これは簡単です。BochsをインストールするとスタートメニューのBochsのところに「NIC Lister」と言うプログラムがありますので、 これを実行します。 すると、コマンドプロンプトが開き、ネットワークデバイスの情報が表示されます。私の環境では以下のようになりました。


1: NVIDIA nForce MCP Networking Controller Driver
     Device: \Device\NPF_{364F58E0-6984-43C5-A8C5-XXXXXXXXXXXX}
2: TAP VPN Adapter.
     Device: \Device\NPF_{336E96D7-1282-429E-A8A8-XXXXXXXXXXXX}

Example config for bochsrc:
ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=\Device\N
PF_{364F58E0-6984-43C5-A8C5-XXXXXXXXXXXX}

Press any key to continue



この出力の「ethdev=」の後の「\Device\NPF_{364F58E0-6984-43C5-A8C5-XXXXXXXXXXXX}」は 必要となるのでどっかにコピーして置いてください。

インストールディスクのダウンロード

Debianのインストール用ディスクをダウンロードします。 具体的にはここから、 rescue.bin, root.bin, driver-1.bin, driver-2.bin, driver-3.bin, driver-4.binをダウンロードします。 細かいところはWoodyのインストールのページをみてください。

ダウンロードしたのは以下のファイルです。

なお、これらのイメージはフロッピーに書き込み必要はありません。適当なフォルダ(c:\debianとします)においておきましょう。

ハードディスクイメージの用意

Bochs用のハードディスクを用意します。これはホストPC上のファイルで実現されます。

Bochsにはディスクイメージ作成用のツール(スタート→プログラム→Bochs 2.1.1→Disk Image Creation Tool)がついてきますので、 これを起動します(大きいイメージが作れないというバグがあるのでlinuxやcygwinなどでddコマンドが使える人はそっちの方がいいかもしれません)。

Disk Image Creation Tool

あとは、「hd」→「flat」→「2048」と入力します。最後のは作成するハードディスクイメージのサイズです。 私は2048MB(=2G)確保しました。本当は5GBぐらいを作りたかったのですが、 このツールにバグがあるようで2GB以上は出来ないみたいです(無理やり大きなハードディスクイメージを作ったのですが、 インストーラの起動時にエラーがでる等うまくいきませんでした。誰か良い方法を知っている人は教えてください)。

最後に、このディスクイメージのファイル名(ここではhdd0.imgとしました)を入力しておしまいです。 最後に重要なメッセージが出るのでメモっておきましょう(「ata0-master:」で始まる行のことです)。

Disk Image Creation Tool

作ったディスクイメージは、Bochsのフォルダ(C:\Program Files\Bochs-2.1.1)にできるので、 これをc:\debianに移動しておきます。 ついでに、そのフォルダにあるbochsrc-sample.txtをc:\debianにコピーして、debian.bxrcに名前を変えておきます。

Bochsの設定

c:\debianに作ったdebian.bxrcを右クリックして「Configure」を選択すると、 シンプルな設定メニューが表示されます。

========================================================================
                       Bochs x86 Emulator 2.1.1
                           February 08, 2004
========================================================================
00000000000i[     ] reading configuration from C:\debian\debian.bxrc
------------------------------
Bochs Configuration: Main Menu
------------------------------

This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate.  Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found.  When you are satisfied with the configuration, go
ahead and start the simulation.

You can also start bochs with the -q option to skip these menus.

1. Restore factory default configuration
2. Read options from...
3. Edit options
4. Save options to...
5. Begin simulation
6. Quit now

Please choose one: [5]

このメニューで「3」を入力してリターンを押してオプションの設定メニューに入ります。

------------------
Bochs Options Menu
------------------
0. Return to previous menu
1. Log file: bochsout.txt
2. Log prefix: %t%e%d
3. Debug log file: -
4. Log options for all devices
5. Log options for individual devices
6. Memory options
7. Interface options
8. Disk options
9. Serial or Parallel port options
10. Sound Blaster 16 options
11. NE2000 network card options
12. Keyboard options
13. Other options

Please choose one: [0]

変更する必要があるのは6〜13です。

Memory options (6)

変更するのはMemory Optionsの「1. Memory size in megabytes:」です。 「1」を入力して、必要なメモリサイズを入力します。私はホストPCのメモリに余裕があるので、「128」としました。

メモリサイズを変更したら「0」を入力して、上位のメニューに戻ります。

Interface options (7)

変更するのはInterface optionsの「5. Emurated instruction per second (IPS)」です。 デフォルトは「1000000」ですが、ホストPCがAthlon 650Mhzの場合は2000000〜2500000ぐらいが良いそうです。私は、「6000000」としました。

マウスが必要な人は「4. Enable the mouse」を「yes」に変更しておきましょう。

IPSとマウスを変更したら「0」を入力して、上位のメニューに戻ります。

Disk options (8)

このメニューは重要です。

------------------
Bochs Disk Options
------------------
0. Return to previous menu
1. Floppy Disk 0: /dev/fd0, size=1.44M, inserted
2. Floppy Disk 1: b.img, size=1.44M, inserted
3. ATA channel 0: enabled: yes, ioaddr1: 0x1f0, ioaddr2: 0x3f0, irq: 14
4. First HD/CD on channel 0: enabled: yes, type disk, path '30M.sample', mode fl
at, 615 cylinders, 6 heads, 17 sectors/track, model 'Generic 1234', biosdetect '
auto', translation 'auto'
5. (disabled)
6. ATA channel 1: enabled: no
7. (disabled)
8. (disabled)
9. ATA channel 2: enabled: no
10. (disabled)
11. (disabled)
12. ATA channel 3: enabled: no
13. (disabled)
14. (disabled)
15. New hard drive support: yes
16. Boot from: disk drive
17. Skip Floppy Boot Signature Check: no

Please choose one: [0]
1. Floppy Disk 0:

フロッピードライブ(A:)ドライブの設定です。 インストール時に、インストールディスクでブートするので、ここでは「rescue.bin」を指定します。 タイプは「1.44M」、状態は「inserted」です。

2. Floppy Disk 1:

フロッピードライブ(B:)ドライブの設定です。 普通は不要なので「none」を指定します。

3. ATA channel 0:

1台目のハードディスク用コントローラの設定です。 設定はデフォルトでOKです。

4. First HD/CD on channel 0:

1台目のハードディスクの設定です。ここで作成したディスクイメージを指定します。 「yes」→「disk」を入力し、ファイル名を入力するところで「hdd0.img」とします。 その次は「flat」でOKです。

この後に、「cylinders」「heads」「sectors per track」を入力します。 作成ツールのメッセージの値をそのまま正確に入力すればOKです。

次の「model name」は適当でOKです。 私は「Vertual Disk 2GB」としました。その後の質問はデフォルトのままでOKだと思います。

16. Boot from;

これはブートするディスクの指定です。 通常は「disk drive」ですが、フロッピーからインストールするので「floppy」に変更しておきます。 なお、フロッピーからインストール後にはこれを「disk」に戻します。

Serial or Parallel port options (9)

多分変更しなくて大丈夫です。

Sound Blaster 16 options (10)

興味がある人は、「Enable SB16 emulation:」をしてみてください。私はいまのところ使用していません。

NE2000 network card options (11)

これも重要です。まず、「Enable NE2K NIC emulation」を「yes」にします。 「yes」にすると、ネットワークデバイスのサブメニューが出ます。

------------------
NE2K Configuration
------------------
0. Return to previous menu
1. Enable NE2K NIC emulation: yes
2. NE2K I/O Address: 0x240
3. NE2K Interrupt: 9
4. MAC Address: fe:fd:de:ad:be:ef
5. Ethernet module: null
6. Ethernet device: xl0
7. Device configuration script: none

Please choose one: [0]

このサブメニューの「5. Ethernet module」を「win32」に変更します。

さらに「6. Ethernet device」を「ネットワークの情報収集」で取得した文字列に変更します。 正確に文字列を入力&ペーストしてください。私の例では「\Device\NPF_{364F58E0-6984-43C5-A8C5-XXXXXXXXXXXX}」を入力します。

また、このメニューに表示される「I/O Address」と「Interrupt」の数字はメモっておきましょう。

Keyboard options (12)

これは特にいじる必要がなさそうです。

Other options (13)

ここでは、「5. Clock parameters」を変更します。 Synchronisation methodを「realtime」に、「Initial CMOS time」で「1」を選択します。

以上が全て終わったら、一番最初のメニューまで戻って、 「4. Save option to...」を選んでセーブします(ファイル名を要求されるので「debian.bxrc」と入れればOK)。

セーブしたら「6」を選んで、一旦終了します。

設定ファイルの微修正

上記の操作でBochsの設定ファイルはカスタマイズできるのですが、残念ながら私の環境では問題がありました。 debian.bxrcファイルをテキストエディタで開いて、 「romimage:」と「vgaromimage:」で始まる行を以下のように修正してください(ファイル名を「"」でくくるだけです)。

romimage: file="C:\Program Files\Bochs-2.1.1/BIOS-bochs-latest", address=0xf0000
vgaromimage: "C:\Program Files\Bochs-2.1.1/VGABIOS-elpin-2.40"

設定のサンプルファイル

ここに私のdebian.bxrcをおいておきます。 必要な方はダウンロードしてください。ただし、ネットワークの設定まわりは環境に応じて修正する必要があると思います。

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送