NetBSD/emips と Microsoft Giano シミュレータ

2011年に出した NetBSD/emips のバグレポートに対して今になってとある指摘が来たのをきっかけに、再び動かしてみてデバッグした結果のまとめです
3
Izumi Tsutsui @tsutsuii

NetBSD/emips のための Microsoft Giano について調べていたら1日が終わってしまってので適当にメモします twitter.com/tsutsuii/statu…

2019-12-07 21:17:24
Izumi Tsutsui @tsutsuii

基本はこの小野寺さんのメモの通りでOK wiki.netbsd.org/users/ryoon/ho… 現状の Giano のダウンロードは microsoft.com/en-us/download… だけれど旧URLからリダイレクトされる。

2019-12-07 21:18:49
Izumi Tsutsui @tsutsuii

現状の NetBSD/emips のカーネルは起動しないので、公式の daily build やリリースの ISOはインストールには使用できない。Microsoft謹製の NetBSD 4.0.1 ベースの ISOがあるのでとりあえずそれを使えばOK "NetBSD for eMIPS" microsoft.com/en-us/download…

2019-12-07 21:25:24
Izumi Tsutsui @tsutsuii

シリアルコンソールに使う PuTTY は小野寺さんのマニュアルの通りで https に転送されるくらい。 chiark.greenend.org.uk/~sgtatham/putt… Windows10だと設定ウインドウのフォントがちょっと見づらい感じですが

2019-12-07 21:29:40
リンク www.chiark.greenend.org.uk Download PuTTY: latest release (0.73) 89 users 632
Izumi Tsutsui @tsutsuii

NetBSD/emips を動かすファイルについて、マニュアルでは手っ取り早く c:\Program Files\Microsoft Research\Microsoft Giano\tests\eMIPS から boot.emips Ml40x_2ace.plx Ml40x_bram.bin. をコピーとありますが、 Microsoft Giano のフォルダにある README.txt PostInstall.txt も見たほうがよいです

2019-12-07 21:33:47
Izumi Tsutsui @tsutsuii

eMIPS については c:\Program Files\Microsoft Research\Microsoft Giano\tests\README.txt も参照。 *.plx が設定ファイルで、 Ml40x_2ace.plx eMIPS running on Xilinx' ML401 board. Use this configuration to run NetBSD. という説明。

2019-12-07 21:35:42
Izumi Tsutsui @tsutsuii

c:\Program Files\Microsoft Research\Microsoft Giano\tests\README.txt に書いてありますが、実は giano には VAX や PPC G5 Mac をエミュレーションする機能もある。 VAXエミュは simh ベースとのことで NetBSD/vax も動くとのこと (未検証)

2019-12-07 21:37:33
Izumi Tsutsui @tsutsuii

eMIPS 設定に戻ると、 boot.emips は NetBSD/emips の /usr/mdec/netboot のネットワークブートローダー。これは公式バイナリのものと差し替えても動く。これのファイル名は設定ファイル Ml40x_2ace.plx の 146行目の FLASH デバイスの設定のところにある。Giano eMIPS エミュ起動後はこれが読まれる

2019-12-07 21:40:50
Izumi Tsutsui @tsutsuii

小野寺さんのマニュアルではディスクイメージの先頭に boot.emips をくっつける必要がある? のかどうか不明、とありますが、これは不要。前述の通り設定ファイルで指定された FLASHデバイス内の boot.emips が読まれる。

2019-12-07 21:42:34
Izumi Tsutsui @tsutsuii

ちなみに、 NetBSD/emips って installboot(8) の設定もあったから、ストレージデバイスのどこかからブートローダーを読む設定もあるんだよね? と思ってソースを確認したら、ダミーのルーチンしか入ってませんでした(だまされた……) nxr.netbsd.org/xref/src/usr.s…

2019-12-07 21:44:34
Izumi Tsutsui @tsutsuii

マニュアルでは ISO イメージのファイル名は emipscd.iso ストレージイメージのファイル名は emips3.img と指定されてますが、これも設定ファイルの Ml40x_2ace.plx で定義されている名前なので、そこを編集すれば変更可能。設定ファイルを複数用意すればイメージ使い分けできます

2019-12-07 21:49:17
Izumi Tsutsui @tsutsuii

起動についてもマニュアルに書いてあるとおりですが - Giano は起動後に \\.\pipe\usart0 のシリアルコンソール用パイプを開く - PuTTY は接続先の \\.\pipe\usart0 が存在しないとエラー終了して起動しない という関係になってしまっているので、ちょっと面倒な手順が必要

2019-12-07 21:51:58
Izumi Tsutsui @tsutsuii

- まず Giano を起動 → あえてそうしてあるのか、 "Access to a non-existent memory" の Giano のウインドウが出る - 上記ウインドウが出たところで PuTTY を起動して、PuTTYの設定ウインドウで \\.\pipe\usart0 に対して接続(2回目以降は設定LoadでOK) という手順を踏む必要がある。

2019-12-07 21:54:02
Izumi Tsutsui @tsutsuii

NetBSD/emips のブートローダー boot.emips も、この起動動作を想定した作りになっていて、最初はコンソール入力を待つようになっている nxr.netbsd.org/xref/src/sys/a… なので、操作の順番を間違えなければ急ぐ必要はない

2019-12-07 21:56:50
Izumi Tsutsui @tsutsuii

Microsoft配布の 4.0.1 ベースの iso を使えばインストールについては通常の NetBSD インストールと同じなのでここでは省略。デバイス名として ace0 がストレージ、 ace1 が CD-ROM というくらい。

2019-12-07 21:59:35

ネットワーク設定 (Win7以降は無理?)

Izumi Tsutsui @tsutsuii

ネットワークの問題。 WindowsXP では VirtualPC がインストールしてあればそのまま VirtualPC と同じ設定のネットワークが使えたのだけれど、試した限り Windows7 で VirtualPC を入れてネットワークが使える状態で Giano では Failed to open VirtualPC Network driver - not installed? と怒られた

2019-12-07 22:02:37
Izumi Tsutsui @tsutsuii

そもそも Windows10 では VirtualPC のダウンロードページから落としたインストーラが動かないのだけれど、実は Giano の PostInstall.txt に 「Gianoのインストールフォルダの distbin の中に VMNetSrv.msi が入ってるやで」 と書いてあったりする。 が、Win7, Win10 ではこれを入れてもダメな模様

2019-12-07 22:05:44
Izumi Tsutsui @tsutsuii

なお Microsoft の VirtualPC のフルインストーラのダウンロードページ microsoft.com/en-us/download… というのもあって、ここから落とした setup.exe は Win10 32bit の環境ではインストールまでできた。64bitでは未確認

2019-12-07 22:07:48
Izumi Tsutsui @tsutsuii

インストールはできるけれど VirtualPC のバイナリはエラーウインドウが出て起動しない。とはいえ、関連ドライバは入った状態担っていると思うのだけれど、この状態でも Giano ではネットワークは使えなかった。 何か別の設定があるのかもしれないけれど、今日はここまでで挫折

2019-12-07 22:08:58