bochs」タグアーカイブ

bochs

Raspberry Piでbochsを動かしてみました

< x86 on ARM >
とりあえずDOSをRaspberry Pi上のDebian wheezyで動かしてみます。
( Windows95も動くとは思いますがかなり遅いと思うので )

< “bochs” のインストール >
チョー簡単です。
こんな感じです。

root@myhost:~# apt-get install bochs bochs-x bochs-sdl bochs-svga

< ハードディスクイメージの生成 >
Raspberry Pi上で “bximage” を実行します。
非rootユーザでの実行を推奨します。
bochsを使用する予定のユーザで実行することをお勧めします。
こちらが自分が2GBで作成したときのサンプルです。

$ bximage
========================================================================
                                bximage
                  Disk Image Creation Tool for Bochs
        $Id: bximage.c,v 1.34 2009/04/14 09:45:22 sshwarts Exp $
========================================================================
Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd]
What kind of image should I create?
Please type flat, sparse or growing. [flat]
Enter the hard disk size in megabytes, between 1 and 129023
[10] 
2048
I will create a ‘flat’ hard disk image with
  cyl=4161
  heads=16
  sectors per track=63
  total sectors=4194288
  total size=2047.99 megabytes
What should I name the image?
[c.img] 
msdoshdd.img
Writing: [] Done.
I wrote 2147475456 bytes to msdoshdd.img.
The following line should appear in your bochsrc:
  
ata0-master: type=disk, path=”msdoshdd.img”, mode=flat, cylinders=4161, heads=16, spt=63

“bximage” によると 「 “
ata0-master: type=disk, path=”msdoshdd.img”, mode=flat, cylinders=4161, heads=16, spt=63” を “.bochsrc” に追加してね 」 とのことです。

< MS-DOS用の”.bochsrc”を作成 >
ホームディレクトリへ移動します。
私の場合テキストエディタにはnanoを使用しています。

$ cd /home/username
$ nano .bochsrc

私の”.bochsrc”はこんな感じです。

megs: 64
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
display_library: sdl
ata0-master: type=disk, path=/home/username/msdoshdd.img, mode=flat, cylinders=4161, heads=16, spt=63
ata0-slave: type=cdrom, path=/home/username/MS-DOS-6.22.iso, status=inserted
boot: cdrom, disk
#keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map
log: bochsout.txt
clock: sync=realtime, time0=local

“MS-DOS-6.22.iso”は私が使用したMS-DOSの起動イメージファイルです。これをあなたが持っている他のブータブルISOファイルに書き換えてください。私の場合”.bochsrc”ではマウスは未設定です。 マウスを使用したい場合はググるなりして”.bochsrc”を編集してください。

< VNCのインストール >
HDMIディスプレイを使用する場合はこのステップは関係ありません。
ディスプレイを使用しない場合はRaspberry Pi上のXへリモートログインするためにVNC serverをインストールする必要があります。
以下のコマンドをrootで実行してください。

root@myhost:~# apt-get install tightvncserver

以下のコマンドをbochsを使用するユーザで実行してください。

$ vncserver :1 -geometry 1024×768 -depth 24
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? 
n
New ‘X’ desktop is myhost:1

“:1″ はポート “5901″ を意味し、
“-geometry 1024×768″ は解像度を意味し、
“-depth 24″ は色数のビット指定を意味します。

< bochsの実装 >
Raspberry Pi上のVNC serverに接続します。 ( ディスプレイを使用の場合は “startx” を実行してください )
ターミナルを起動します。 ( 例. LXTerminal )
ターミナルでbochsを実行します。

$ bochs

bochsがときどきこんな感じで確認してくるかもしれません。

A PANIC has occurred.  Do you want to:
  cont       – continue execution
  alwayscont – continue execution, and don’t ask again.
               This affects only PANIC events from device [MEM0 ]
  die        – stop execution now
  abort      – dump core
  debug      – hand control to gdb

私はいつも “alwayscont” と答えています。

< 正直なところ >
Windows95をインストールしようとしましたが、DOSの起動ディスクやWindows3.1のディスクが必要でした。( 自分のWindows95がアップグレードバージョンだったため ) さすがに面倒だったためDOSインストールまででやめてしまったというわけです。