Bochsをソースでダウンロードして、解凍する
Bochsのページ(http://bochs.sourceforge.net/)ヘアクセスして「SourceForge project page」のリンクをたどる。ここではbochs-2.6.2をインストールするため下の図の「bochs」のリンクをたどり、
「2.6.2」をたどり、
bochs-2.6.2.tar.gzをダウンロードする。
以下のように、ダウンロードしたファイルをホームディレクトリに解凍する($はプロンプト)
$ cd ~
$ gzip -dc ./Downloads/bochs-2.6.2.tar.gz | tar xf -
Bochsのビルドと環境変数の設定
解凍したディレクトリに移動し、$ cd ./bochs-2.6.2/
次の条件が満たされるように
- インストールがホームディレクトリのbochsディレクトリになされるよう(--prefix=$HOME/bochs)
- x86_64アーキテクチャをサポートするように(--enable-x86-64)
- Bochsがデバッグモードでビルドされるように(--enable-debugger --enable-disasm)
$ ./configure --prefix=$HOME/bochs --enable-x86-64 --enable-debugger --enable-disasm
その後、ビルドする。
$ make
しかし、「シンボルpthread_create@@GLIBC_2.1が見つからない」とエラーがでるので、Makefileの96行目
X_LIBS = -lX11 -lXrandr
を
X_LIBS = -lX11 -lXrandr -pthread
に変更して、再度ビルドする。
$ make
ビルドが終わったら、次でインストールが完了する。上のconfigureの--prefixオプションで指定したディレクトリにインストールされる。
$ make install
またBochsの動作を設定するためのファイル.bochsrcをホームディレクトリにコピーしておく。
$ cp ./.bochsrc ~/
Bochsの起動を簡単にするために.bashrcに次の追記をして環境変数を設定しておく
PATH=$PATH:$HOME/bochs/bin
export PATH
PATHをすぐに反映させるためには
$ source ~/.bashrc
を実行する。
FreeDOSをダウンロードして配置する
Bochsの実行を確認するためにFreeDOSというOSを使う。フロッピーディスクイメージでダウンロードしてBochsで動作させてみる。FreeDOSのページ(http://www.freedos.org/)から以下のようにリンクをたどってダウンロードする。下の方からフロッピーディスクイメージをダウンロードできる。ファイル名はfdboot.img
ダウンロード後、そのイメージファイルをホームディレクトリに配置すると実行まであともう少し。
$ cd ~/
$ cp ./Downloads/fdboot.img ~/
Bochsの設定ファイル.bochsrcを修正する
そのまま実行するとエラーがが出て実行が中断される。そこで設定ファイルを以下のように修正する。設定ファイル内に説明や設定の例があるので、それを参考に設定していけばよい。まずは、192,193行目の
cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0
を
#cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
#cpu: cpuid_limit_winnt=0
cpu: model=turion64_tyler
にしてcpuを変更(#はコメントアウト)。
先ほどホームディレクトリに配置したFreeDOSをフロッピーAに設定するため、435行目付近の
floppya: 1_44=/dev/fd0, status=inserted
を同様に#でコメントアウトし、その下の行に
floppya: 1_44=/home/username/fdboot.img, status=inserted
を追記。
ハードディスクを無しにするため、522行目付近の
ata0-master: type=disk, mode=flat, path="30M.sample"
を#でコメントアウト。
542,543行目付近の
#boot: floppy
boot: disk
を
boot: floppy
#boot: disk
に変更してフロッピーからOSが起動するようにした。
Bochsの実行
$ bochsでBochsを実行すると、
Please choose one: [6]
と尋ねられるので、Enterでbochsのシミュレーションをスタートさせる。bochsのシミュレーション用の画面が表示されたところでデバッグのブレイクがかかるので、コンソールでcを入力するとシミュレーションを続けられる。下の図はBochs上でFreeDOSが起動したところ。