【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

QEMUでNT4/MIPS

【追記】以前は2種類のQEMUを使い分ける複雑な手順を掲載していましたが、パッチによって0.13.0だけですべての作業が行えるようになったため、説明を修正しました。

Windows上のQEMUに、MIPS用のWindows NT 4.0 Workstationをインストールして動かしてみました。色々とハマりどころがあるので、手順をまとめておきます。

以下を参考にしました。

  1. MIPS!, Got it working!
  2. Installing Windows NT 4.0 on Qemu(MIPS)

準備

上記の参考1から setup.zip をダウンロードします。

以下からMIPS用の qemu-0.13.0 をダウンロードして展開します。NT4/MIPSが動くようにRTCやFDCにパッチを当てています。パッチやビルドの詳細については後でまとめます。

setup.zipから NTPROM.RAW を取り出して、名前を mipsel_bios.bin に変更して、qemuを展開したフォルダに入れます。

ディスクイメージの作成

Windows 7以降ではVHDがマウントできるため、ディスクイメージとして容量固定のVHDをお勧めします。VHDVirtual PCWindows 7の管理ツールで作成できます。

Windows 7でのVHD作成方法
  1. スタート→コンピュータを右クリック→管理
  2. 「コンピュータの管理」が表示されるので、左のツリーから「ディスクの管理」を選択
  3. 中央上欄のパーティション一覧を適当にクリック
    ※一度フォーカスを移さないとメニューが選択できないため
  4. 操作→VHDの作成
  5. 容量固定で512MB〜1GB程度のサイズで作成
  6. ディスク一覧に出てくるので右クリック→VHDの切断
    ※アタッチされたままだとアプリから操作できないため
QEMU付属ツールでの作成方法

Windows 7以外での方法として、QEMU付属ツールで1GB固定サイズのイメージを作成する方法を示します。

qemu-img create hda.img 1G

QEMUからの脱出方法

QEMUの画面をクリックするとマウスポインタが吸い込まれます。QEMUのウィンドウキャプションにも書いてありますが、[Alt]+[Ctrl]で抜けることができます。キーボードだけの操作ならマウスポインタを吸い込ませなくても可能です。

ファームウェアの初期設定

以下の引数でqemuを起動します。ディスクイメージやISOのファイル名は適宜修正してください。なお、上で配布している qemu-0.13.0 のアーカイブには、このコマンドを起動するためのバッチファイル(run-nt4mips.bat)が同梱されています。

qemu-system-mips64el -M magnum -localtime -L . -net nic -net user -hda hda.vhd -cdrom NTWKS40J1.ISO

NVRAMの警告が出ますが、何かキーを押して先に進みます。

ファームウェアのメニューが出ます。

初期設定を行います。カーソルキーと[Enter]で選択します。キャンセルは[Esc]です。

  • Run setup
    • Initialize system
      • Set default configuration
        • 解像度を選択します。
          ※NT 4では任意の解像度が選べますが、NT 3.5では1280×1024でないとうまくいかないようです。
        • それ以外はデフォルトのままで結構です。
      • Set ethernet address
        • ゼロだとネットワークがエラーになるため、適当な値を入力します。

以上の設定が完了して[Esc]でメニューを抜けると、解像度を変更した場合は再起動が掛かります。

ブートパーティションの作成

ファームウェアのトップメニューからCD内のarcinstを実行します。

  • Run a program
    • cd:\mips\arcinst
      ※US配列での入力となります。日本語キーボードを使っているときは、コロンは[Shift]+[;]、バックスラッシュ(円マーク)は ] で入力します。
      • Configure Partitions
        • Create System Partition

ブートローダを置くFATパーティションを作成します。NT本体もFATに置く場合は最大サイズで作成します。NT本体をNTFSにインストールする場合は、後でNTのインストール中にパーティションを作成するため、ブートローダを入れるFATは最低限の1MBのサイズでも大丈夫です。

ブートデバイスの指定

ハードディスクからのブートを指定します。

  • Run setup
    • Initialize system
      • Set default environment
        • すべてデフォルトで[Enter]

インストール(初回再起動まで)

ファームウェアからインストーラを起動します。

  • Run a program
    • cd:\mips\setupldr
      ※US配列での入力となります。日本語キーボードを使っているときは、コロンは[Shift]+[;]、バックスラッシュ(円マーク)は ] で入力します。

起動中に以下の画面で固まることがよくあります。これはインストール時だけでなく、インストール後にも発生します。

10秒以上待っても先に進まないようであれば、QEMUを強制終了(ウィンドウを[×]ボタンで閉じる)してください。再度QEMUを起動させて、setupldrの起動からやり直してください。何度もやっていると先に進みます。ファームウェアの設定はnvramというファイルに保存されて引き継がれるため、再設定する必要はありません。

無事にインストーラが起動すれば以下の画面が表示されます。これ以降はx86へのインストールと同じです。

パーティションの選択画面で「未使用の領域」を選択してNTFSでフォーマットしてください。CドライブをNTFSにすることはできません。

再起動を促す画面になったら、再起動してください。

インストール(2回目再起動まで)

再起動すると、ファームウェアのメニューにNTが追加されているので、それを起動してください。

先ほどと同じ場面で起動中に固まることがありますが、その場合はすぐに強制終了して再起動してください。何度もやっていれば先に進みます。

ネットワークの設定では検索して出てきたNICを追加して、DHCPを使用してください。QEMU独自のNATに隔離された環境となります。

再起動を促す画面になったら、再起動してください。

以上でインストールは終了です。

ログオン

再起動するとログオン画面まで進みます。

[Ctrl]+[Alt]+[Delete]を押してもホストのWindowsに取られるため入力できません。

[Ctrl]+[Alt]+[3]を押してmonitor consoleに入り、以下のコマンドを入力します。

sendkey ctrl-alt-delete

[Ctrl]+[Alt]+[1]を押すと元の画面に戻ります。ユーザー入力画面になっているはずです。

ログオンすればNT4/MIPSの世界が広がっています!

ネットワーク

前述のようにNATで隔離された環境からネットワークを使用することができます。

FTP

NATは外部からのアクセスをルーティングしないため、FTPのアクティブモードは使用できません。パッシブモードで使用してください。

NT4付属のFTPコマンドはパッシブモードに対応していないため、別のFTPクライアントが必要となります。NT4/MIPSでは16bitのx86コードが動くため、Windows 3.1用のFTPソフトが使用できます。たとえば以下には3.1用のWS_FTPが残っています。

共有フォルダへのアクセス

NATで隔離されているため、ワークグループ内のマシンを名前解決することができません。IPアドレスを指定すればアクセスできます。NTドメインについては未確認です。

ネットワークがうまくいかない場合は、QEMUを終了させた状態で、VHDをマウントしてファイルをやり取りすることもできます。インストールされているMIPSバイナリを抜き出して調査するにはこの方法がお勧めです。

IE2

IE2がバンドルされています。Yahooを開いてみましたが文字化けしました。エンコーディングを指定できないようです。

Googleは延々とリロードを繰り返して開きませんでした。F5攻撃と同様なため試さないでください。

IE2はHTTP/1.0しかサポートしていないため、バーチャルホストには接続できません。URLが合っているのに404になる場合は、ホストがバーチャルだと思われます。

IE1.5J

NT4の2枚目のCDには日本語版IE1.5が入っています。インストールしてYahooを開いてみましたが文字化けしました。レンダリング能力はIE2以下で、エンコーディングの指定もできないため、ほとんど使い物になりません。

IE2もIE1.5Jも使い物にならないため、Windows 3.1用のNetscapeをインストールした方が良いと思います。以下では32bitのNetscapeを動かす方法が紹介されていますが、Win32 x86 Emulation on RISC は既に入手不可能なので、残念ながら試すことができません。

【余談】この記事によればAlpha用の Win32 x86 Emulation on RISC が存在するようですが、これは有名な FX!32 とは別物のようです。性能の比較など詳しいことは不明です。

最後に

インストールレポートは以上です。

癖があってなかなかうまくいかなかったため、まとめるのに時間が掛かってしまいました。何度もインストールしましたが、ディスクアクセスはそれほど重くないという印象です。

昔から使っているWindows環境でMIPSの調査ができるという意味で、私にとっては面白い環境です。