The dosemu HOWTO Mike Deisher, Uwe Bonnes, David Hodges davidhodges@altavista.iname.com For dosemu-0.98.6, 24 April 1999 The Linux Japanese FAQ Project 14 June 1999 これは dosemu の FAQ/HOWTO ドキュメントです。この HOWTO の最新バージョ ンは http://www.dosemu.org で入手することができます。 ______________________________________________________________________ 目次 1. はじめに 1.1 とりあえず dosemu とは何なのですか? 1.2 dosemu を動かせるオペレーティングシステム 1.3 dosemu が動作する CPU 1.4 Alpha/Sparc/Motorola 等の非 Intel CPU を使っている場合 1.5 dosemu 使うには MS-DOS が必要か? 1.6 dosemu 上で Microsoft Windows は動作しますか? 1.7 dosemu や Wine 上で動作しないプログラムを動かしたいのですが 1.8 用語の意味 1.9 どのバージョンの dosemu を使うべきか? 1.10 dosemu の最新バージョンとその入手法は? 1.11 質問はどこですれば良いのでしょうか? 1.12 バグの報告や質問はどこですればよいでしょう? 1.13 dosemu 関連のドキュメントを紹介してください 1.14 EMUfailure リストに含まれていないプログラムの実行に失敗した場合 1.15 HOWTO に変更や追加をするにはどうすればいいでしょうか? 1.16 Greg からのメッセージ 2. dosemu のコンパイルとインストール 2.1 インストール手順の説明はどこですか? 2.2 コンパイルとインストールに失敗する原因のトップ 10 2.3 a.out 形式のバイナリの作り方 2.4 メモリの少ないマシンで dosemu をコンパイルするには? 2.5 "slang" に関係する変なエラーでコンパイルが失敗する 2.6 どんなオプション設定ができるのでしょう? 2.7 dosemu は root で実行しなければならないか? 2.8 dosemu へのパッチの当て方 2.9 dosemu で動作することが分かっている DOS のバージョン 3. ハードディスクの設定 3.1 ハードディスクを dosemu で使う方法 3.2 Linux から hdimage にアクセスする方法 3.3 Stacker/DoubleSpace/SuperStoreで圧縮されたディスクを使えるか? 3.4 独自の hdimage ファイルを作る 4. パラレルポート、シリアルポート、マウス 4.1 古いバージョンではポートが動作していたのに、新しいバージョンで動かなくなった! 4.2 古いバージョンの方がポートのアクセスが速かった! 4.3 (マイクロソフト互換の)マウスドライバはどこにあるの? 4.4 マウスドライバが動かないのですが? 4.5 dosemu が COM4 の設定を壊してしまいます 4.6 シリアルポート経由で dosemu を使うには? 4.7 どうすればシリアル回線上で dosemu とシェルを行き来できますか? 4.8 パラレルポートを動かすには? 5. マルチユーザと非インタラクティブなセッション 5.1 マルチユーザ環境で dosemu は使えるか? 5.2 非対話的に DOS コマンドを使うには? 6. dosemu と Netware 6.1 dosemu から Netware にアクセスするには? 7. dosemu と X Window System(97/2/9) 7.1 X が走っているときに、コンソールモードで dosemu を走らせることはできますか? 7.2 X-Window のウインドウの中で dosemu を動かせますか? 7.3 xdos が X のリモートのディスプレイで使えません! 7.4 xdos が VGA フォントを見つけられません 7.5 ディスプレイが高解像度なので VGA フォントが小さすぎます 7.6 X 関係のよくわからないエラーが発生して dosemu のコンパイルが失敗します! 7.7 ANSI エミュレーションはうまく動きますか? 8. dosemu と MS-Windows 3.1 8.1 dosemu の中で MS-Windows 3.1 を使用できますか? 8.2 winemu で 32ビット環境は使えますか? 8.3 vdtapi.386 ファイルが見つからないというエラーが dosemu 起動時に出ます 8.4 xdos 中での Windows 3.x 8.5 dosemu 内で Windows をインストールすることはできますか? 8.6 xdos 内の Windows 3.1 でマウスを使う際の注意点 8.7 プログラムマネージャからアイコンが消えてしまいます 9. ビデオとサウンド 9.1 32 ビットのゲームを dosemu の中で起動できますか? 9.2 dosemu を終了した時に、画面がゴミがいっぱいになります 9.3 私のサウンドカードは dosemu では使えないのですが? 10. ゲーム 10.1 Duke3d が動きません 11. 問題とその解決法 11.1 セキュリティ関連 11.2 一部のプログラムを実行すると dosemu が "ERROR: general protection" と出力して終了してしまいます 11.3 dosemu が起動時に死んでしまいます。Windows95 をインストールしています 11.4 dosemu がハングしてしまいました! どうやって止めれば良いでしょうか? 11.5 dosemu がクラッシュして、何も入力できない状態になりました 11.6 dosemu.conf の中で EMS メモリを有効にしたのに、うまく行きません 11.7 "disk change" メッセージを出さないようにできませんか? 11.8 コンソールモードで dosemu を終わると、次の起動ができません 11.9 端末では dosemu が動くのに、コンソールでは動きません 11.10 dosemu をもっと速くできませんか? 11.11 dosemu 内 で CD-ROM がうまく読めないことがあります 11.12 デバッグ用の出力を見るには、どうすればいいですか? 11.13 入力した文字が 2 回もエコーさされれまますす 11.14 dosemu で画面が乱れてしまいます 11.15 MS FoxPro 2.6 が動きません 12. dosemu プロジェクトへ貢献する 12.1 責任者は誰ですか? 12.2 協力したいと思います。誰に連絡すればよいでしょうか? 13. 日本語関連の情報 13.1 dosemu で DOS/V を使うための情報 13.2 日本語訳について ______________________________________________________________________ 1. はじめに 1.1. とりあえず dosemu とは何なのですか? マニュアルから引用しますと、「dosemu とは、 Linux カーネルと 80386 プ ロセッサの特殊な機能を使って、'DOS box'と呼ばれているものの上で MS- DOS/FreeDOS/DR-DOS を動作させる、ユーザーレベルのプログラム」です。 DOS box というのはハードとソフトのトリックを組み合わせたもので、次のよ うなことができます。 o 入出力と、プロセッサ制御命令を仮想化することができる。 o iAPX86 プロセッサファミリーの「リアルモード」のワードサイズや、アド レッシングモードを完全なプロテクトモード環境で使えるようにする。 o DOS/BIOS システムコールをすべてトラップして、必要な処理を高速にエ ミュレートする。 o (行儀の悪い)DOS プログラムによって直接制御されるハードウェア環境をシ ミュレートする。 o ネイティブの Linux サービスを通じて、MSDOS サービスを行う。例えば、 dosemu では仮想ハードディスクを使って Linux のファイルを操作することが できます。 1.2. dosemu を動かせるオペレーティングシステム dosemu は当初は Linux 上で作成されました。現在では NetBSD でも動作し、 たぶん FreeBSD でも動作します。しかし、NetBSD 上ではグラフィックスのエ ミュレーションは動作しないようです。つまり、グラフィックスモードを使う プログラム(ほとんどの DOS プログラム)は NetBSD 上では動作しないという ことです。 1.3. dosemu が動作する CPU dosemu は 80x86 プロセッサ(80386, 80486, Pentimu 等)上だけで動作しま す。 1.4. Alpha/Sparc/Motorola 等の非 Intel CPU を使っている場合 dosemu が動作するのは 80x86 プロセッサだけですが、選択肢は他にもありま す: Bochs (http://www.bochs.com) はオープンソースのシェアウェアである PC エミュレータで、大抵の Unix (と MS-Windows)上で動作します。他にも( フリーでない)選択肢はあります。それらについては、comp.emulators.misc FAQ をご覧ください。この FAQ は Usenet あるいは ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/emulators/misc/ で入手 できます。 1.5. dosemu 使うには MS-DOS が必要か? いいえ。何らかのバージョンの DOS は必要ですが、これは必ずしも MS-DOS でなくともかまいません。「dosemu で動作することが分かっている DOS の バージョン」の章をご覧ください。 1.6. dosemu 上で Microsoft Windows は動作しますか? 確実ではありません。Windows エミュレータである Wine (http://www.winehq.com) を使う方が良いでしょう。dosemu 上で windows を どうしても動かしたければ、 8 章(「dosemu と MS-Windows 3.1」)をご覧く ださい。 1.7. dosemu や Wine 上で動作しないプログラムを動かしたいのですが 1.4 節をご覧ください。 1.8. 用語の意味 (xx/yy/zz) は xx 年 yy 月 zz日を表します。 winemu は dosemu 上で動作している WinOS/2 を示します。 1.9. どのバージョンの dosemu を使うべきか? dosemu のバージョン番号の付け方はカーネルと同じです。2 番目の数字が奇 数のものは(おそらく)不安定な開発者向けバージョンで、偶数のものは安定 バージョンです。この文章を書いている時点では、0.98.6 が最新の安定バー ジョンで、0.99.10 が最新の開発バージョンです。したがって、dosemu を使 いたい人は安定バージョンを入手すると良いでしょう。 1.10. dosemu の最新バージョンとその入手法は? 現在(99/04/09)の dosemu の最新バージョンはdosemu0.98.6であり、以下の FTP サイトで入手することができます: ftp://ftp.dosemu.org/pub/dosemu/ dosemu はアルファ版のプログラムであることは絶対忘れないでください。つ まり、重大なバグが含まれているかももしれませんし、新しい機能に関する説 明の文書はほとんどありません。特に開発バージョンにはたくさんバグがある でしょう。ですから、開発バージョンは積極的に開発に参加しようと思ってい る方しか使わないでください。開発バージョンのバグは報告しないでくださ い。その代わりにバグを直してください。 1.11. 質問はどこですれば良いのでしょうか? インストールや実行について、ドキュメントを読んでも解決できない問題があ る場合、まず自分自身で解決する努力をしてください。あなたの質問はたぶん 既にどこかでなされており、回答も与えられています。このような情報をイン ターネットのサーチエンジンを使って探してみてください。例えば、次のエン ジンを使えば、あなたの質問のキーワードを含むネットニュースの最新記事が 検索できます。 http://www.dejanews.com このようにして自分で答えを探した方が、ネットニュースなどでありがちな質 問をするよりも解決は早いでしょう。また、くだらない質問への回答で開発者 の時間を割くこともなくなり、結果として dosemu の開発も進むことでしょ う。 1.12. バグの報告や質問はどこですればよいでしょう? dosemu に関する質問やバグの報告を行う場合には、linux-msdos-digest メー リングリストに参加すると良いでしょう。このメーリングリストに参加するに は、メールアドレス Majordomo@vger.rutgers.edu へ以下の内容のメールを送 ります: subscribe linux-msdos your_username@your.email.address メーリングリストから脱退するには、アドレスMajordomo@vger.rutgers.edu へ以下の内容のメールを送ります(95/8/11)。 unsubscribe linux-msdos your_username@your.email.address linux-msdos メーリングリストに参加したら、linux-msdos@vger.rutgers.edu 宛にメールを送ることでレポートを送ることができます。 linux- msdos@vger.rutgers.edu へメールを送るのと同時に linux.dev.msdos へ ニュース記事を投稿するゲートウェイがあります。お使いのプロバイダがこの ニュースグループを配送していない場合には、プロバイダへグループ追加を頼 んでください。質問の前には、この HOWTO を含む文書を全てしっかりと読ん でください。また、http://www.dosemu.org/mailinglist.html にあるメーリ ングリストのアーカイブを見て、あなたと同じ質問とそれに対する回答が既に なされていないかを確認してください。 1.13. dosemu 関連のドキュメントを紹介してください dosemu に文書が付属しています。主要ドキュメントである README.txt と README-tech.txt は dosemu に関する事実上ほとんどの話題を網羅しており、 この HOWTO よりも内容が新しいでしょう。 "dosemu Novice's Altering Guide" (略称 DANG) は dosemu の内部動作につ いての解説です。ソースコードを書き換えたい冒険好きの人のために書かれて います。DANG は Alistair MacDonald氏(alistair@slitesys.demon.co.uk) が メンテナンスしており、dosemu のソース内の doc ディレクトリに置かれてい ます。 EMU 非動作リスト(EMUfailure.txt)は、dosemu で動作しなかったプログラム のリストです。 もちろん、この dosemu FAQ/HOWTO もあります。もっともこの文章を読んでい る方はご存知ですよね? この文書はメイリングリストにときどきポストされま すし、doc ディレクトリにも置かれています。最新版は http://www.dosemu.org で入手することができます。 1.14. EMUfailure リストに含まれていないプログラムの実行に失敗した場合 まず最初に動作しなかった原因が dosemu の基本的な機能不足(EMUfailure に 書かれています)によるものかどうか確認します。その上で新しいものだと判 断した場合、 linux-msdos@vger.rutgers.edu 宛に報告してください。これは たぶん他の人達の役に立つことでしょう。カーネルと dosemu のバージョンや 発生したエラーなどやあなたの設定についての詳しい情報も提供してくださ い。xdos を使えば、カットアンドペーストを使ってエラーメッセージをメー ルに書き込むことができます。ただし、レポートはエンコードしていない可読 形式で送ってください。../etc/config.dist の内容はわかっているので、 dosemu.conf の有効な行だけを送ってください。デバッグ出力の一部または全 てを有効にして dosemu を実行し、デバッグ出力を一通り見て、関係があると あなたが判断した部分だけを送ってください。他人のためのデバッグをするた めに、メールに添付された長いデータをわざわざデコードして読む人はほとん どいません。しかし、詳細な部分を聞かれた場合のために、ログは捨てたりし てはなりません。 1.15. HOWTO に変更や追加をするにはどうすればいいでしょうか? 望ましい方法は、dosemu-HOWTO-xx.x.sgml を変更し、次のようなコマンドを 実行して差分ファイルを生成することです。 diff -uw original-file new-file それから、このファイルを davidhodges@altavista.iname.com 宛に送ってく ださい。SGML をご存じなくても結構です。変更や新しい情報はどんな形式で も受け付けています。diff ファイルで送って欲しいというのは、単に HOWTO のメンテナが楽をするためです :-) 1.16. Greg からのメッセージ 特に断りのない限り、Linux HOWTO ドキュメントは、それぞれの作者に著作権 があります。すべての複製にこの著作権表示が含まれていれば、物理的・電子 的な媒体を通じて、この文書の全体または一部分を複製して配布することを許 可します。商用の再配布も許可していますし、歓迎です。ただし、その前に著 者に一言断りがあることを希望します。 すべての Linux HOWTO ドキュメントに関する、翻訳や派生物やこれらをまと めたものなどは、この著作権表示に従わなければなりません。すなわち、配布 に関して新たな制限を加えたHOWTOの派生物などを作ることはできません。特 定の条件のもとにこの規則に例外を認ることもあります。以下のアドレスの Linux HOWTO 世話役に連絡してください。 まとめると、我々としてはできる限りたくさんの経路を通じてこの情報を普及 させたいのです。しかしながら、HOWTOドキュメントの著作権を保持しておき たいですし、HOWTOを再配布する場合には連絡してほしいのです。 質問があれば、Linux HOWTO 世話役の Greg Hankins (gregh@cc.gatech.edu) に連絡してください。 2. dosemu のコンパイルとインストール 2.1. インストール手順の説明はどこですか? インストール手順の説明は配布パッケージ中の "QuickStart" ファイルにあり ます。 2.2. コンパイルとインストールに失敗する原因のトップ 10 1. QuickStart ガイドを読まなかった。 2. (問題がある)古いバージョンの dosemu をコンパイルしようとした。 3. バージョン 2.0.28 か 2.1.15 以前のカーネルでコンパイルしようとし た。 4. /usr/src/linuxにあるカーネルのソースコードがおかしいか、 /usr/src/linux/include/version.hが無い。 5. IPC 機能を組み込んでいないカーネルで dosemu を使用した。 6. gcc のバージョンが 2.7.2 より古いか、libc のバージョンが 5.x.x より 古い。 7. /etc/dosemu.conf, /etc/dosemu.users, /var/lib/dosemu/global.conf を 編集するのを忘れた。 8. 既にマウントされているパーティションに対して、dosemu でパーティショ ンへのアクセスを行った。 9. 必要な権限(つまり root)でのインストールを行っていない。 10. /etc/dosemu.conf で dpmi を有効にしていないのに、DPMI を使用するプ ログラムを実行しようとした。 2.3. a.out 形式のバイナリの作り方 0.64.4 以降では a.out のサポートは打ち切られています。どうしても dosemu を使いたいのならば、0.64.3.1 を使わなければなりません。あなたの 標準的な設定をしていれば、configure スクリプトがこの辺りをうまく処理し てくれるはずです。 2.4. メモリの少ないマシンで dosemu をコンパイルするには? Marty Leisner さん(leisner@sdsp.mc.xerox.com)の報告があります。 スワップスペースを使い尽くしてしまう問題が起こるときには dpmi/Makefile の中の CFLAGS の定義の後ろに CFLAGS+=-fno-inline を加えるとよいでしょ う。ですがその前に、まずはスワップスペースが存在していることを確認して ください。スワップスペースが存在しないと Linux がクラッシュしてしまう ことがあります。 2.5. "slang" に関係する変なエラーでコンパイルが失敗する たぶん compiletime-settings ファイルで slangforce off と設定しているのでしょう。これを slangforce on に変更して再コンパイルしてください。 2.6. どんなオプション設定ができるのでしょう? コンパイル時に変更できるオプションの説明は compiletime-settings.help ファイルにあります。README.txt ファイルには実行時に変更できるオプショ ンについての説明があります。 2.7. dosemu は root で実行しなければならないか? いいえ。dosemu はできる限り root 権限を捨てようとしますが、それでも root では実行しない方が安全です。特に dosemu 上で DPMI 機能を使うプロ グラムを実行するときはそうです。通常の DOS アプリケーションの大部分は dosemu を root で実行しなくても(特に X 上で dosemu を実行している場合) 動作します。したがって root に suid した dosemu をユーザに実行させるの は極力避けるべきです。root に suid していないものだけを実行させましょ う。この設定は /etc/dosemu.users ファイルを使ってユーザ単位で行うこと ができます。 ハードウェアのポートへの直接アクセスが必要なプログラム(例: Linux や dosemu がサポートしていない何らかの特殊なデバイスと通信する場合)を実行 するには dosemu を root 権限で実行する必要がありますが、プリンタ、シリ アルポート、マウス、ビデオカード(近いうちには、サウンドもある程度使え るようになります)は dosemu がエミュレートするので、ユーザが直接ハード ウェアポートにアクセスする必要はありませんし、これらのデバイスを使うた めに root 権限で dosemu を実行する必要もありません。 2.8. dosemu へのパッチの当て方 dosemu にパッチを当てて、あるバージョンから他のバージョンにした場合に は、"make pristine;./configure; make" を実行してください。make pristine を実行していないと、少なくとも新しい実行ファイルのバージョン がおかしくなります(97/2/9)。 2.9. dosemu で動作することが分かっている DOS のバージョン dosemu ではどんなバージョンの DOS も動くはずですが、以下の注意点があり ます: FreeDOS (http://www.freedos.org) には(今のところ)動作するリダイレクタ がないので、FreeDOS 上では Linux のファイルシステムや Novell のネット ワークにはアクセスできません。 FreeDOS は信頼性が低いベータ版のソフト ウェアであり、予期せぬクラッシュをすることや、ファイルシステムが破損す ること等があり得る点にも注意してください。 DOS 4.01 そのものには問題があり、dosemu 上でも安定して動作しません。 MsDos-7(別名 Win95)を使う場合には、起動時に GUI シェルを起動させてはい けません。Windows のインストール時に作成したいわゆる「復旧ディスク」で hdimage を起動可能にした場合、正しい設定が得られます。通常の Win95 の インストールを行ってシステムファイルを転送した場合には、hdimage 上に書 き込まれた msdos.sys を調べ、[Options] セクションの設定を [Options] Logo=0 BootGUI=0 のように変更してください。 3. ハードディスクの設定 3.1. ハードディスクを dosemu で使う方法 まず、DOS のパーティションを Linux のサブディレクトリとしてマウントし ます。例えば、/dos (mkdir -m 755 /dos) のようなディレクトリを作り、 /etc/fstab に次の項目を追加します。 /dev/hda1 /dos msdos umask=022 (この例では、ハードディスクは読み出し専用でマウントされます。読み書き できるようにマウントするためには、"022"を"000"に置き換え、mkdir では -m 777 オプションを指定します。) 次に mount /dosを行います。 README.txt ファイルには以下のように書かれています: 必要なファイルが全て DOS の C: に含まれるような Linux のディレクトリ を単に用意してください。IO.SYS や MSDOS.SYS 等をそのディレクトリ (例: /var/lib/dosemu/bootdir)にコピーして、 $_hdimage = "bootdir" と /etc/dosemu.conf に書き込んで次に進みます。dosemu は lredir した ドライブをシステム外部のものとして扱い、そこから起動を行うことができ ます。dosemu を起動する前に、このディレクトリにある config.sys と autoexec.bat を編集することもできます。さらに、もっと洗練された設定 にすることができます。ネイティブの DOS を起動する時の通常の DOS ドラ イブを dosemu でも使いたいものとします。この場合には単に、DOS パーティ ションを Linux で(/dos 等に)マウントし、そのサブディレクトリへのリン クを起動ディレクトリに作ります。このようにして、dosemu でも見えるよ うにしなければならないファイル/ディレクトリや、dosemu とネィティブの DOS で区別しなければならないファイル/ディレクトリを決めることができ ます。以下に起動ディレクトリの設定の短くて不完全な例を示します: config.sys autoexec.bat command.com -> /dos/command.com io.sys -> /dos/io.sys msdos.sys -> /dos/msdos.sys dos -> /dos/dos bc -> /dos/bc windows -> /dos/windows ただし、この例には 1 つ問題があります。すなわち、この例では DosC カー ネル(FreeDos)は使えません。なぜなら、FreeDos ではリダイレクタがまだ 動作していないからです(将来的には使えるようになるでしょう)。 3.2. Linux から hdimage にアクセスする方法 mtools を使ってください。/etc/mtools.conf には以下の行を記述してくださ い。 drive n: file="/var/lib/dosemu/hdimage" MTOOLS_SKIP_CHECK=1 \ MTOOLS_LOWER_CASE=1 MTOOLS_NO_VFAT=1 partition=1 offset=128 こうすると mtools を使って "mdir n:" のようにして hdimage にアクセスで きます。"mcopy n:/config.emu /tmp" で hdimage 上の config.emu ファイル を /tmp/config.emu にコピーできます。そして、このファイルを編集してか ら hdimage へ書き戻すことができます。実際には使いやすいドライブレター を使ってください。"N:" は単なる例に過ぎません。 3.3. Stacker/DoubleSpace/SuperStoreで圧縮されたディスクを使えるか? 現在のところ、標準のカーネルではリダイレクタ(lredir や emufs)を経由で これらの圧縮ドライブにアクセスすることはできません。 "dmsdosfs" という 名前で圧縮ファイルをマウントできるようにするカーネルへのパッチがありま す。sunsite.unc.edu とそのミラーサイトで探してください。 http://sunsite.unc.edu:/pub/Linux/system/filesystems/dosfs/ 新しいバージョンを見つけるには http://sun- site.unc.edu:/pub/Linux/Incoming を探すと良いでしょう。古いバージョン の dosemu の "wholedisk" オプションは、新しいバージョンではもはや使え なくなっていますが、 $_hdimage = "/dev/hda1" と書けば動作するかもしれません。ただし、dosemu がクラッシュするとその パーティションのデータが全て壊れる危険性があります。 すでにDOSパーティションに書き込みが許可された状態で dosemu でパーティ ションやディスク全体にアクセスすると、dosemu は警告メッセージを表示し て異常終了します。これは、DOS と Linux が別々にディスクに書き込みを行 ない、DOS パーティションが破壊されるのを防ぐためです(95/8/11)。 --------------------- LILO がインストールされている場合には上記の方法ではうまくいきません。 しかし… Thomas Mockridge さんが(thomas@aztec.co.za) が次の方法を報告していま す(94/8/5)。 LILO と Stacker 4.0 の組み合わせで dosemu を起動するにはちょっとした工 夫が必要です… 1. ファイルに MBR をddします。(またはノートンユーティリティなどを使い ます。MBR は最初の 512バイトです。) 2. (emu ではなく、本物の)DOS をブートして、fdisk /mbr を実行します。 DOS の fdisk を使って DOS パーティションをアクティブにします。 3. 新しくできた MBR をファイルにコピーします。 4. オリジナルの MBR を置き換えます。 5. 3. で作った MBR を /var/lib/dosemu/partition.hda? (hda?は、DOS パーティションのあるところ) にコピーします。 6. dosemu.conf を次のように設定します。 disk {partition "/dev/hda? ?"} 7. dosemu を起動します。ほら、できた! LILO が無くても起動できました ね。 最近のバージョンの dosemu では disk {partition "/dev/hda? ?"} の行を $_hdimage = "/dev/hda1" のように変更する必要があります。 --------------------- Holger Schemel さんの(q99492@pbhrzx.uni-paderborn.de) 報告で す(94/2/10)。 dosemu の下で MS-DOS 6.0もうまく動作しました。問題がある場合に は、'DBLSPACE. INI' を手で修正して、ドライブ名を dosemu上でのドライブ 名に変更すればうまくいくでしょう。 --------------------- Darren J Moffat さん(moffatd@dcs.gla.ac.uk)の報告です(94/3/27)。 "…もし 6.2 を入手できるなら、それを使いましょう。LILO ブートディスク が手元にあることを確認しておいてください。DOS 6{.2}はブートディスクの MBR(Master Boot Record) を書き換えるからです。" 3.4. 独自の hdimage ファイルを作る 簡単な方法は mkdexe を使うことです。詳しくは README.txt を参照してくだ さい。古いやり方を以下に示します(これが必要となる理由は思い付きません が、使うときのために説明しておきます): mkfatimage16 という追加のユーティリティプログラムがあり、これを使うと hdimage ファイルのヘッダを作成することができます。詳しい説明は配布物に 入っているオンラインマニュアル(man/mkfatimage16.1)にあります。 32 メガバイトの実際のハードディスクに相当するハードディスクのイメージ ファイルを作成するには、以下のコマンドを実行します: mkfatimage16 -k 32768 > hdimage これは大抵の目的には十分な大きさです。もっと大きな容量が必要ならば、 ディスクリダイレクタの利用を考えてください。 普通はディスクイメージを作成した後にはフォーマットを行います。 4. パラレルポート、シリアルポート、マウス 4.1. 古いバージョンではポートが動作していたのに、新しいバージョンで動 かなくなった! /doc/README.txt と /etc/config.dist の port セクションを読んでくださ い。 4.2. 古いバージョンの方がポートのアクセスが速かった! ログポートアクセスをできるようにするため、デフォルトではポートへのアク セスは全て vm86モードの例外を発生させます。これにいくらか時間がかかり ます。ポートへのアクセスのログを取る必要がなければ、適切なポートに "fast" を設定します。 4.3. (マイクロソフト互換の)マウスドライバはどこにあるの? Tom Kimball さん(tk@pssparc2.oc.com)の報告です(93/11/24)。 いろいろな人がいろいろなマウスドライバを奨めていますが、私の場合には次 のドライバでうまく動作しています。 oak.oakland.edu:/pub/msdos/mouse/mouse701.zip (mscmouse) oak.oakland.edu:/pub/msdos/mouse/gmous102.zip (gmouse) 通常は dosemu の内部ドライバが使えるので、winemu 以外の dosemu ではマ ウスドライバを追加する必要はありません(97/2/10)。 4.4. マウスドライバが動かないのですが? Mark Rejhon さん(marky@ottawa.com)の報告です(95/4/7)。 マウスドライバを動かしてからすぐにハングアップする(実際には 30〜60 秒 くらい)場合や、マウスドライバが起動するまでに 1 分以上もかかるような場 合には、マウスドライバのコマンドラインで、マウスが接続されている COM ポートを指定してみるのがいいでしょう。 4.5. dosemu が COM4 の設定を壊してしまいます Rob Janssen さん(rob@pe1chl.ampr.org) の報告です(94/3/24)。 jmorriso@bogomips.ee.ubc.ca によれば、"dosemu は COM4 (0x2e8, IRQ 5) の設定を破壊してしまうようです。0x2e8 は設定の ports{} に入っていませ ん。dosemu から抜けたあとに、setserial /dev/cua3 irq 5 を実行しなけれ ばなりません。 これは、VGA BIOS が原因です。私は IO ポートトレースをイネーブルにし て、どこで設定が破壊されているのかを調べてわかりました。 設定で "allowvideoportaccess on" を無効にすればうまく動くはずです。こ の指定によってビデオ関係に問題が生じた場合には、選択可能な別の IO アド レスを指定してみてください(例えば 40-43)。 4.6. シリアルポート経由で dosemu を使うには? 4.7. どうすればシリアル回線上で dosemu とシェルを行き来できますか? John Taylor さん(taylor@pollux.cs.uga.edu)の報告です (94/5/25)。 私は Linux 1.1.13 を使っていますが、素晴らしい機能があることに気がつき ました。願わくばこの機能はなくならないでほしいものです。バージョン 52 で "screen" というプログラムを走らせることができました。screen 上で dos -D-a で DOS を起動することができます。何が素晴らしいかと言うと、 dosemu を起動した状態でも screen のコマンド(CTRL-A コマンド)が使えるの です。つまり、CTRL-A C と打てば UNIX シェルをもう1つ起動することができ ますし、DOS/UNIX のそれぞれの環境を行き来することもできます。この機能 のおかげで、シリアル回線経由でとてもうまく dosemu を使うことができてい ます。 4.8. パラレルポートを動かすには? dosemu.conf の終りの方に、プリンタを lpr やファイルにリダイレクトする ための設定があります。ハードウェアに直接アクセスしたい場合には、これら のエミュレーション設定の行をコメントアウトし、以下のような行を追加しま す: 「モニタカード」のプリンタポート(/dev/lp0 に対応)には $_ports { device /dev/lp0 fast range 0x3bc 0x3bf } # lpt0 を指定します。 LPT1 (/dev/lp1) には $_ports { device /dev/lp1 fast range 0x378 0x37f } # lpt1 を、LPT2 (/dev/lp2) には $_ports { device /dev/lp1 fast range 0x278 0x27f } # lpt2 を指定します(97/2/9)。 Hans Lermen さん (lermen@dosemu.org) の報告です: しかし注意してください。これらの行は単純に追加してはいけません。指定文 字列は以下のように繋げなければなりません。 $_ports = "...." $_ports = $_ports, " device /dev/lp0 fast range 0x3bc 0x3bf" = この空白が重要 5. マルチユーザと非インタラクティブなセッション 5.1. マルチユーザ環境で dosemu は使えるか? 使えます。dosemu はユーザ単位の設定ができます。詳しくは README.txt を 読んでください。 5.2. 非対話的に DOS コマンドを使うには? 以下のいずれかで行うことができます: 1. ファイルを dosemu の標準入力に リダイレクトする 2. dosemu 内で実際にコマンドが入力されたかのような動 作をさせるキーストロークを、キーストローク設定オプションと -I コマンド ラインオプションを用いて指定する(これらのオプションについては README.txt ファイルで説明されています)。 3. mkdexe プログラムを使って DEXE ファイルを作成する。これは小さな DOS ファイルシステムのイメージ で、実行したいプログラムだけが入っているものです。詳しくは README.txt ファイルをご覧ください。 他にも方法がいくつかあります: Daniel T. Schwager 氏(danny@dragon.s.bawue.de)の報告 (94/7/2): 異なる dosemu.conf (および異なる hd-boot-images, AUTOEXEC.BATファイル) を使って dosemu を起動するには以下のようにします。 $ dos -F my_quicken_q_exe_dosemu.conf --------------------- Dietmar Braun 氏(braun@math20.mathematik.uni-bielefeld.de) の報 告(94/7/4): dosemu のリダイレクト機能を使うと全く問題なく動作します。環境変数を 使って、(DOS の)ドライブ文字を linux のパスにリダイレクトすることがで きるのです。 筆者は以下のシェルスクリプトを"DOS"という名前で使っています。 mkdir /tmp/dos.$$ DOSTMP=/tmp/dos.$$; export DOSTMP そして次にくるのが、 "echo $* > $DOSTMP/startup.bat" なのですが、これ をうまく動作させるのにはちょっとした工夫が必要です(実は、小さな C プロ グラムなどでは、'/' を '\' に置き換えたり、行末を DOS 形式の CR/LF に 書き換えたり、ファイルの最後に ^Z を付け加えたりするものがあるからで す)。そしてスタートアップファイルを生成して、このディレクトリの中に必 要なリンクを張り、そして dosemu をスタートします。hdimage の中の "AUTOEXEC.BAT" の中では、ドライブ C: をこのテンポラリディレクト リ($HOMEや$PWDへのリンクがある)にリダイレクトしておきます。たとえ ば、8.3 形式に縮めたファイル名を見たいと思ったら、"DOS dir" とすればカ レントディレクトリのファイルを見ることができます。こうして、完全なマル チユーザー(私の場合、DOS パーティションは使っていません。また、Linux ファイルシステムへリダイレクトすることで、ユーザパーミッションも保存さ れます)、マルチタスクの DOS(それぞれの dosemu セッションは完全に独立し ています)を手に入れることができます。私はこの方法で DOS のプリンタドラ イバをうまく使うことができました。printcap ファイルの df に DOS プログ ラムを指定することができるのです。これによって、DOS の実行ファイルを lpr のフィルタとして使うことができます。 6. dosemu と Netware 6.1. dosemu から Netware にアクセスするには? 通常は Linux のファイルシステムを経由してアクセスすることが望ましいで す。Caldera の Netware ユーティリティか Volker Lendecke 氏のフリーの ncpfs ユーティリティ (ftp://ftp.gwdg.de:/pub/linux/misc/ncpfs) を使っ てNetware のドライブをマウントできます。もし直接 IPX アクセスを行う必 要がある場合(例えば Novell の "syscon" を使う場合) には、 /doc/NOVELL-HOWTO.txtを読んでください。現在は FreeDOS から Netware を 使うことはできないと思います。 7. dosemu と X Window System(97/2/9) 7.1. X が走っているときに、コンソールモードで dosemu を走らせることは できますか? Ronald Schalk さん(R.Schalk@uci.kun.nl)の報告(94/1/17): はい、問題ありません。仮想コンソールモードを移動するためには、 ctrl- alt- を使います。ここからどんな Linux アプリケーションでも起動する ことができます(dosemu も linux アプリケーションです)。私の場合、dos セッションでは ほとんどずっと WordPerfect 5.1 が走っています。 [注意: dosemuから X に戻るには ctrl-alt-F7 を使います。] 7.2. X-Window のウインドウの中で dosemu を動かせますか? X がインストールされていて、うまくコンパイルされた dosemu があり、それ が X Window System でない環境でうまく動作していれば、"xdos" または "dos -X"というコマンドで dosemu ウインドウを起動できるはずです。うまく いかない場合には、以下の項目をチェックしてください。 1. Dosemu のコンパイル時に X サポートが有効にされているか。この オプションはデフォルトで設定されているはずですが、 compiletime-settings ファイルで "x off" として dosemu をコンパイ ルすると X はサポートされません。したがって、compiletime-settings ファイルで "x off" を "x on" に変更し、その後に "make pristine; make; make install" を実行すると X をサポートした dosemu の実行ファイルが作られるはずです。ただし、/usr/X11R6 に X のライブラリが入っていなければなりません。 2. X のキーマップを設定しているか。xterm 上で xmodmap -e "keycode 22 = 0xff08" xmodmap -e "keycode 107 = 0xffff" を実行します。これらはそれぞれバックスペースとデリートキーの設定 を変更します。 3. /etc/dosemu.conf ファイルの中で X 関係の設定オプションがきちんと 設定されているか。 カラー版の xterm から dosemu を起動するという方法もありますが、あまり お勧めできません。カラー版 xterm の多くには、dosemu が必要とするような 複雑なテキスト表示の機能にバグがあるからです。この場合には dosemu のコ ンパイル時に X_SUPPORT は必要ありません。いずれにせよ、これを試したい 場合には次のような手順をふんでください(97/2/9)。 1. ansi_xterm をインストールする。お勧めのパッケージは次の場所にあ ります。 tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/Development/ansi-xterm-R6.tar.gz 2. X のキーマッピングを設定する。xterm 上で以下のコマンドを実行しま す。 xmodmap -e "keycode 22 = 0xff08" xmodmap -e "keycode 107 = 0xffff" これはバックスペースとデリートキーを修正する設定です。 3. /etc/dosemu.conf ファイルの端末関連(X 関係ではありません)の設定オ プションを設定する。 Marty Leisner さん(leisner@sdsp.mc.xerox.com) の報告 (95/3/31)です。 私は xrdb で次のようなリソースを設定しています。 dosxterm*Font: vga dosxterm*geometry: 80x25 dosxterm*saveLines: 25 または、 "dosxterm" を "term -fn vga -title dosxterm -geometry 80x25 -sl 25" のエイリアスにする方法もあります。 xrdb を使う方法では、単に "xterm -name dosxterm" を実行するだけです。 7.3. xdos が X のリモートのディスプレイで使えません! 今のところ、dosemu は MIT 共有メモリ拡張を使う設定になっています。とこ ろが、この拡張はローカルのディスプレイでしか利用できないのです。もし xdos をリモートディスプレイで使いたい場合には、 "make pristine" を実行 した後か、展開後の状態のソースツリーで compiletime-settings ファイルに "mitshm off" を設定して dosemu をコンパイルします(97/2/9)。 7.4. xdos が VGA フォントを見つけられません インストールした VGA フォントがフォントをインストールしたディレクトリ の font.dir ファイルに記述されているかどうか確認してください。 hertz:~> grep misc /usr/X11R6/lib/X11/XF86Config FontPath "/usr/X11R6/lib/X11/fonts/misc/" hertz:~> grep vga /usr/X11R6/lib/X11/fonts/misc/fonts.dir vga.pcf vga vga11x19.pcf vga11x19 hertz:~> ls /usr/X11R6/lib/X11/fonts/misc/vga* /usr/X11R6/lib/X11/fonts/misc/vga.pcf /usr/X11R6/lib/X11/fonts/misc/vga11x19.bdf /usr/X11R6/lib/X11/fonts/misc/vga11x19.pcf dosemu を X サポート有りでインストールしたときなど、新しい X 用フォン トをインストールしたときには "mkfontdir" と "xset fp rehash" を実行す る必要があります。dosemu をインストールすると "mkfontdir" が行われます し、"xset fp hehash" を実行するように注意書きも表示されます。これがう まく動作しない場合にはお知らせください(97/2/13)。 7.5. ディスプレイが高解像度なので VGA フォントが小さすぎます vga11x19 フォントを探してください。 (97/2/13) 7.6. X 関係のよくわからないエラーが発生して dosemu のコンパイルが失敗 します! 前にも書きましたが、dosemu はデフォルトで MIT 共有メモリ拡張を使いま す。XFree86 はバージョン 3.1.2 以上でないとこの拡張をサポートしていま せん。これより古いバージョンの XFree86 を使っている場合には、XFree86 をバージョンアップするか、この拡張を使わない設定で dosemu を設定してく ださい(方法については前の章を見てください)。(97/2/9) 7.7. ANSI エミュレーションはうまく動きますか? Marty Leisner さん(leisner@sdsp.mc.xerox.com) の報告 (95/3/31): はい。私の場合、X Window System 上で nnansi.com を使っています。少なく とも 25, 43, 50 行のモードはうまく動くことを確認しています。しかし、 1024x768 の画面では、50 行モードは使いづらいです。(もっと大きな画面 や、小さなフォントを使えば良いでしょう。43 行モードの場合には、xtermは ちゃんと 43行 にリサイズされます。) 8. dosemu と MS-Windows 3.1 8.1. dosemu の中で MS-Windows 3.1 を使用できますか? /doc/README.Windowsファイルにはこう書いてあります。 *************************************************************** * 注意!!注意!!注意!!注意!!注意!!注意!! * * * * 危険です!!この機能は完全にはサポートされていませんし、 * * 多くのバグがあります!!大きなソフトウェアはほとんど * * 動きません!!!以下の文章は、システムクラッシュを * * 覚悟した上で、実行して下さい!!! * * * * 注意!!注意!!注意!!注意!!注意!!注意!! * *************************************************************** さて、WINOS2(OS/2によって動かされる Windows 3.1)を dosemu の下で動かす ことができます。Lutz と Dong に感謝! しかし、Windows 3.1 と OS/2 両方のライセンスが必要です! また、多くの問題があることもわかっています。Windows がしばしばデータと 共にクラッシュする、大きなプログラムは起動もしない、等々…。多くのビデ オカードで問題が起こります。(真っ白なスクリーンが見られます。しかし、 xdos 内で Windows 3.1 を使う方法も見てください。)プログラムグループが 全て消える事もあります。基本的には、苦労するだけです。 詳しくは README.txt ファイルをご覧ください。 8.2. winemu で 32ビット環境は使えますか? 残念ながら、使えません。 win32s は ring 0 で実行する必要がありま す。Linux ではこんなことは許されません。 (97/04/27) 8.3. vdtapi.386 ファイルが見つからないというエラーが dosemu 起動時に 出ます 既に説明したように、winemu では 32ビット環境は使えません。〜.386 の名 前のドライバは全て 32ビットドライバです。したがって、winemu を実行する ためには、win.ini ファイル中で 〜.386ドライバを参照している部分を全て 削除しなければなりません。 (97/04/27) 8.4. xdos 中での Windows 3.x バージョン 0.64.3 の dosemu では xdos 中で Windows を実行することがで きます。もちろん、これも全く勧められないことです。しかし、どうしても実 行したいという場合には、コンソールで Windows 3.1 を実行するよりも安全 です。もしクラッシュした場合にも、キーボードが使えなくなったりしません し、画面がフリーズすることもないからです。 以下にヒントを挙げておきます: 1. dosemu と Linux のソースを入手する。 2. dosemu を展開する。 3. "./configure" を実行して、dosemu を configure する。(vm86plus はデ フォルトで有効になっています。) 4. Windows 用の Trident SVGA のドライバを入手する。tvgaw31a.zip か tvgaw31b.zip です。これらのファイルはホスト garbo.uwasa.fi の /windows/drivers ディレクトリにあります。(ミラーはあるでしょうか?) 5. OS2WIN31 で述べたものと同じ手順を行う。 6. xdos を実行する。 7. dosemu 内で windows ディレクトリに移動し、winemu を起動する。 8. 十字を切って祈る。 8.5. dosemu 内で Windows をインストールすることはできますか? できません。以下のようなエラーメッセージで止まるはずです: The XMS driver you have on your system is not compatible with Win- dows... Windows は DOS を使ってインストールする必要があります。Windows のディ レクトリを Linux のファイルシステムのどこかにコピーし、lredir を使って dos の時と同じ場所にあるように見せかけることもできます。 Windows は d:\windows にある d:\ は Linux で /dosc としてマウントされ ている Windows を Linux にコピーする例: "cp -a /dosd/windows /usr/share" dosemu 内でコピーしたディレクトリツリーを次のようにしてリ ダイレクトする lredir d: linux\fs\dosd dosemu は windows ディレクトリに手出しはできませんが、windows ディレク トリの変更も dosemu からは見えません。ドライブ c:> の Windows と同じに したい場合には、この FAQ に書かれている c:. にリダイレクトする方法を見 てください。 しかし、windows ディレクトリで "setup" コマンドを実行してドライバをイ ンストールしたり設定を変えることはできます。 (97/2/1497) 8.6. xdos 内の Windows 3.1 でマウスを使う際の注意点 1. マウスドライバは WinOS2 の "mouse.drv" を使います。 2. マウスをうまく使えるようにするためには、win.ini ファイルで以下の設 定を行う必要があります: [windows] MouseThreshold1=0 MouseThreshold2=0 MouseSpeed=0 3. マウスカーソルは X ではなく、Windows によって描画されます。従ってマ ウスの座標移動は問題ありませんが、表示の更新頻度はリフレッシュレートに 依存します。(実際には2つのカーソルがあることになります。ただし、 X の カーソルは DOS-box の中では表示されません。) 4. Windows に渡される座標は相対的なものとして処理されるので、カーソル の調整が必要です。これは DOS-box にカーソルが入るのと同時に自動的に行 われます。カーソルは強制的に座標(0,0)に動かされた後、正しい位置に戻さ れます。従って、カーソルの再調整を行いたい場合には、一度 DOS-box から カーソルを外に出した後、再び中に入れるだけです。 (97/2/10) 8.7. プログラムマネージャからアイコンが消えてしまいます MS-Windows と WinOS2 ではプログラムマネージャのグループの扱いが異なり ます。MS-Windows は設定を progman.ini に保存しますが、WinOS2 は system.ini に保存します。Todd T. Fries さんの(friest@acm.org) のテク ニックで対処できます。 cat progman.ini >> system.ini 使うのは '>>' ですよ。 :-) 9. ビデオとサウンド 9.1. 32 ビットのゲームを dosemu の中で起動できますか? Mark Rejhon さん(marky@ottawa.com)の報告(95/4/8): バージョン0.60 から入っている新しい DPMI 機能により、いくつかの 32 ビットゲームが動作するようになっています。もし、そのゲームが OS/2 の DOS boxで動作するなら、dosemu でも動作する可能性があります。(例として は、 Descent, Dark Forces, Mortal Kombat 2, Rise of the Triad 等です。 これらのゲームは、新しいバージョンの dosemu で動作する事が確認されてい ます。) ゲームを起動する前に、/etc/dosemu.conf の中でキーボードが raw モードに なっていて、VGA グラフィックスが有効になっている事を確認してください。 なお、この方法を使う場合にはゲームのサウンドを切らないといけません。 ( サウンドを使えるようにするには、誰かがサウンドボードのエミュレーション をするプログラムを書かなければなりません。Linux はマルチタスク OS で、 高い周波数のタイマをサポートしていませんので、ゲームの動作は少し遅いか もしれません。ゲームの速度は DOS 上で走る時の 5〜100% のスピードで動 く可能性があります。通常は最近の dosemu だとおよそ半分くらいのスピード で、これは将来さらに改善されると思われます。 あるプログラムが動くかどうかは、なかなかわからないものです。もしうまく 動かすことができなかった場合には、EMUfailure ファイルにそのプログラム が挙げられているかどうか、現在の dosemu ではおそらく動かないとされる種 類のプログラムであるかどうかをチェックしてください。その上で、あなたが EMUfailureに載せるべきだと判断した場合は、 linux-msdos@vger.rutgers.edu宛に報告を送ってください。 DMPI を有効にしていて、かつ dosemu を root に setuid している場合に は、 dosemu がセキュリティホールとなります(特に dos4gw ベースのゲーム を実行する場合)。この場合、クライアントはユーザ空間全体にアクセスでき るので、 dosemu 自体のコードを変更することができるので す。/etc/dosemu.conf の 'secure' オプションを利用して、これを無効にし てください。指定例を以下に示します: $_secure = "ngd" # secure for: n (normal users), g (guest), d (dexe) いずれにせよ、dosemu は root で実行するよりも X 上で通常ユーザとして実 行する方が安全です。 9.2. dosemu を終了した時に、画面がゴミがいっぱいになります (95/4/8) この現象が起こるのは、VGA テキスト画面におけるフォント情報が保存されて いないからです。svgalib パッケージを入手しましょう。最新のソースの入手 先は、 sunsite.unc.edu:/pub/Linux/libs/graphics/svgalib-1.3.1.tar.gz です。このライブラリはあなたの使っている Linux のパッケージ(Slackware 等)にバイナリ形式で含まれているかもしれません。savetextmode を使って、 現在のテキストモードとフォントを /tmp の下に保存してから dosemu を起動 してください。そして、dosemu を終了した後に textmode を使って設定を復 元します。 lermen@elserv.ffm.fgan.de さんによる補足(97/2/11): src/arch/linux/debugger/README.recover と README.dosdebug も参照してく ださい。dosdebug も復元に使えます。 9.3. 私のサウンドカードは dosemu では使えないのですが? dosemu には開発中の SoundBlaster エミュレータが含まれています。これは SBemu と呼ばれています。このドキュメントは現在、 http://www.slitesys.demon.co.uk/a.macdonald/dosemu/sound/ で入手できま す。SBemu は現在作業中であり、まだ完成していないので、サウンドを使う DOS ソフトウェアの大部分あるいはほとんどはまだ正しく動作しません。 10. ゲーム 10.1. Duke3d が動きません Hans Lermen さんの報告(97/2/16): duke3d を 動かすには、設定で 'キーボード+マウス' を選択しなければなりません。そ れ以外の設定では動作しません。 11. 問題とその解決法 11.1. セキュリティ関連 dosemu の全ての機能(例えばポートへのアクセス)を使うためには、root に suid する必要があります。ほとんどの DOS プログラムではこれは必要ありま せんので、X 上で dosemu を実行しているときには dosemu を root で実行す る必要は普通はありません。 dosemu は必要な時だけ "root" に setuid した 状態で動作し、それが終わるとすぐに権限を手放します。しかし DMPI を使う 時には、DOS クライアントプログラムはユーザ空間全体にアクセスできるの で、dosemu のコードそのものを変更することもできます。これを無効にする には /etc/dosemu.conf の 'secure' オプションを使ってくださ い。README.txt ファイルのセキュリティの章では、セキュリティで考えるべ き重要事項が他にもいくつか説明されています。 11.2. 一部のプログラムを実行すると dosemu が "ERROR: general protec- tion" と出力して終了してしまいます この現象は、DPMI を禁止している時に DPMI を使うプログラムを実行した時 に起こります。/etc/dosemu.conf ファイルの $_dpmi = (off) という行を $_dpmi = (nnnn) に変えてみてください。ここで nnnn は DOS プログラムに割り当てるメモリ の量(キロバイト単位)です(例えば Doom は約 4000 キロバイトを必要としま す)。これを設定した場合、 dos を root で実行してはなりません(「セキュ リティ関連」の章をご覧ください)。いずれにせよ、dosemu はできるかぎり root では実行しない方が良いでしょう。 その他によくある原因は、実行したプログラムが VCPI(詳しくは EMUfailure.txt を見てください)、またはプロテクトモードへの切替えを行う (DPMI 以外の)方法を使っている場合です。このような場合、プログラムは dosemu 上では動作しません。 これらのいずれでもない場合、1.14 節を参照してください。実行に失敗する けれど EMUfailure.txt にリストされていないプログラムということになりま す。 11.3. dosemu が起動時に死んでしまいます。Windows95 をインストールして います dosemu は hdimage と command.com を含むものとして割り当てるドライブで DOS のバージョンが同じであるものと信じます。これが同じでない場合に は、dosemu は遅かれ速かれクラッシュしてしまいます。デュアルブートオプ ションを使っていて、"Starting Win95"の文字が出ているときに F4, F5, F8 キーを押すと、Windows95 のドライブ側のバージョンが変わるかもしれませ ん。command.com には特に注意してください。config.emu のシェル変数が正 しい静的バージョンの command.com を指すようにします。例え ば、"shell=c:\win95\command.com c:\ /P /E:1024"のようになりま す(97/02/28)。 11.4. dosemu がハングしてしまいました! どうやって止めれば良いでしょう か? 他のコンソールに切替えて dosdebug を実行し、"kill" と入力してください (少し時間はかかることもありますが、結果的には動作します)。 11.5. dosemu がクラッシュして、何も入力できない状態になりました Daniel Barlow さん(jo95004@sable.ox.ac.uk)の報告(95/4/8): もし、ログインできる端末やネットワーク接続が無いなら、リセットボタンを 押さなければならないかもしれません。何とかシェルを起動できるなら、 "kbd_mode -a" を実行してキーボードをrawモードから切り替えるか、コン ソールで "stty sane" を実行して、入力した文字が表示されるようにしてく ださい。 dosemu をシェルスクリプトから起動し、dosemu の後に自動的に "kbd_mode -a" を実行させるのも有効な方法です。dosemu がクラッシュしてもスクリプ トは走り続け、"kbd_mode -a" を実行されるというわけです。 11.6. dosemu.conf の中で EMS メモリを有効にしたのに、うまく行きません Rob Janssen さん(rob@pe1chl.ampr.org)の報告(94/7/11): dosemu と一緒に配布されている ems.sys を config.sys の中で組込むことを 忘れないでください。 11.7. "disk change" メッセージを出さないようにできませんか? (94/8/11) klogd を手に入れて、インストールしてください。 klogd は以下の URL で入 手できます。 sunsite.unc.edu:/pub/Linux/system/Daemons/sysklogd1.2.tgz 11.8. コンソールモードで dosemu を終わると、次の起動ができません Aldy Hernandez さん(aldy@sauron.cc.andrews.edu)の報告 (94/7/8): ビデオか BIOS (あるいはその両方)のキャッシングを無効にしてください。 11.9. 端末では dosemu が動くのに、コンソールでは動きません JyiJiin Luo さん(jjluo@casbah.acns.nwu.edu)の報告(94/4/19): 私も以前に同じ問題に出会いました。AMI BIOS によるビデオメモリ領域の シャドウ化は全て無効にしないといけないようです。私のマシンではこれでう まく行っています。 11.10. dosemu をもっと速くできませんか? dosemu.conf ファイル内の HogThreshold 変数の値を変更するとうまくいくこ とがあります。 Daniel Barlow さん(jo95004@sable.ox.ac.uk) の報告(95/4/8): HogThreshold の値は、起動時に表示される BogoMips 値の大体半分に設定す るのがいいでしょう。 11.11. dosemu 内 で CD-ROM がうまく読めないことがあります Vinod G Kulkarni さん(vinod@cse.iitb.ernet.in)の報告 (94/4/7): CD-ROM が Linux 上でマウントされていて、なおかつ dosemu から(割り当て られたドライブとして) アクセスされた場合には、何らかの問題が起こるかも しれません。まず、カーネル内の CD-ROM ドライバ(ISO9660)がファイルの種 類(テキストかバイナリか等)を識別しようとします。もし、これができなけれ ば、ヒューリスティックを使ってファイルの種類を推測しようとします。ファ イルのほとんどの部分はテキストファイルでもバイナリとして扱われるべきで ある場合、この推測が失敗することがあります。(これが果してバグなのか、 それとも機能と呼ぶべきなのかは微妙なところです。) この結果、もし、このようなファイルを CD-ROM からコピーしようとした場合 (必ずしもdosemu 内だけでなく、Linux 内でも)、オリジナルよりファイルサ イズが大きくなります(^M や ^J の前にスペースが入ります)。このた め、dosemu 内のプログラムがエラーを出したりハングしたりします。これが dosemu の問題と誤解される事もあるでしょう。 Rob Janssen さん(pe1chl@rabo.nl) の報告(94/8/10): これを解決するには、この変換を止めてしまえばいいのです。 CD-ROM をマウ ントする時に、"-o conv=binary" オプションを付けるか、/etc/fstab に次の 行を追加します。 /dev/cdrom /cdrom iso9660 conv=binary,ro カーネルにパッチを当てる必要はありません。 11.12. デバッグ用の出力を見るには、どうすればいいですか? Daniel Barlow さん(jo95004@sable.ox.ac.uk)の報告(95/4/8): dosemu 0.60 では、デバッグ出力はコマンドラインで指定したファイルに書き 込まれます。/tmp/debug に全てのデバッグ情報を書き出すには、コマンド "dos -D+a -o /tmp/debug" を使います。標準エラー出力をリダイレクトする 必要は、もう無いはずです。 11.13. 入力した文字が 2 回もエコーさされれまますす Nick Holloway さん(alfie@dcs.warwick.ac.uk) の報告(94/2/22): stty の設定をいじってから dos を起動すると、入力文字が 2 回エコーされ るようになってしまいました。今こそ、その理由を明らかにしましょう! こうなってしまうのは、コンソールに 'istrip' が設定されている時だけで す。私が思うに、 'istrip' がキーボードの生のスキャンコードを変形させて しまうために、キーを離したというイベントがキーを押したというイベントと 同じになってしまうのでしょう。 ですから、コンソールで scancodes を使っている場合には、入力処理を行わ ないようにします。(tty 回線の場合にこれをやってはいけません。) 11.14. dosemu で画面が乱れてしまいます dosemu で完全にはサポートされていないグラフィックスカードを使ってい て、コンソールでグラフィックスを使えるようにしている場合には、dosemu がクラッシュすると画面が滅茶苦茶なままになってしまうことがあります。こ のような場合のために、Spudgun 氏 が次の解決 法を投稿してくれました。まずはコンソール上でレジスタの保存を行います。 ~> cat /usr/bin/savetextmode ~> restoretextmode -w /etc/textregs ~> restorefont -w /etc/fontdata それから、クラッシュしたときに次のスクリ プトを実行します。 restoretextmode -r /etc/textregs restorefont -r /etc/fontdata restorepalette これで直らなければ、どうしようもありません。私は X サーバがビデオカー ドのレジスタをおかしくしてしまったときにこのスクリプトを実行したら自体 が悪化したこともありました。これは X サーバを変えたことか仮想端末で savetextmode を実行したこと(あるいはその両方) のせいだと思いま す。(97/04/08) 11.15. MS FoxPro 2.6 が動きません FoxPro 2.6 はネットワークドライブ上では動作しません。Alexey Naidyonov さん がこの問題について説明しています。 おそらく、FoxPro のファイルが lredir した先のディスクにあるのだと思い ます。違いますか? 問題は FoxPro はこのようなディスクの上では動作しない ことです。しかし、/etc/dosemu.conf で disk { partition ... } を設定す ることでうまく動きました。 12. dosemu プロジェクトへ貢献する 12.1. 責任者は誰ですか? dosemu は Matthias Lautner さんと Robert Sanders さんの作業の上に成り 立っています。最新版のリリースの取りまとめについては、 Hans Lermen さ ん (lermen@dosemu.org) が責任を持っています。 dosemu の歴史 バージョン 日付 人物 ------------------------------------------------- 0.1 September 3, 1992 Matthias Lautner 0.2 September 13, 1992 Matthias Lautner 0.3 ??? Matthias Lautner 0.4 November 26, 1992 Matthias Lautner 0.47 January 27, 1993 Robert Sanders 0.47.7 February 5, 1993 Robert Sanders 0.48 February 16, 1993 Robert Sanders 0.48pl1 February 18, 1993 Robert Sanders 0.49 May 20, 1993 Robert Sanders 0.49pl2 November 18, 1993 James MacLean 0.49pl3 November 30, 1993 James MacLean 0.49pl3.3 December 3, 1993 James MacLean 0.50 March 4, 1994 James MacLean 0.50pl1 March 18, 1994 James MacLean 0.52 June 16, 1994 James MacLean 0.60 April 9, 1995 James MacLean 0.64.4 February 9,1997 Hans Lermen 0.66.3 April 20, 1997 Hans Lermen 0.98.1 December 9, 1998 Hans Lermen 0.98.6 March 21, 1999 Hans Lermen 12.2. 協力したいと思います。誰に連絡すればよいでしょうか? dosemu プロジェクトはチーム活動をしています。もし参加しようと思ったな らば、 DPR(dosemu Project Registry) を見てください。最新版は ../doc/DANG にあるはずです。 13. 日本語関連の情報 13.1. dosemu で DOS/V を使うための情報 以下に dosemu 上で DOS/V を動かすための参考になる URL を挙げておきま す。当然ながら、各ツールやパッチの作者の方々による動作保証やページ作者 の方々による内容の保証は一切ありません。各自の責任でご利用ください。 dosemu 日本語 Patch 曽根さんが作成された dosemu 0.60.3 を X 環境下で日本語化するパッ チをおおいわ@東大理情さんが dosemu 0.66.7 用に移植されたもので す。 Linux のお部屋 しょうちゃんさんのページです。dosemu の日本語化の実際の手順が詳 しくまとめられています。 Fep Bridge 田宮@富士通研さん作のアプリケーションです。これは dosemu 上で動 くアプリケーションではなく、dosemu をバックグラウンドで動作させ て DOS/V 用の日本語 FEP を Linux から利用するためのものです。最 新版は http://www.vector.co.jp/vpack/filearea/unix/writing/fep/ から 入手できます。 13.2. 日本語訳について 日本語訳は Linux Japanese FAQ プロジェクト(JF プロジェクト)が行いまし た。誤訳の指摘、質問、dosemu 関連情報については JF プロジェクト までお寄せください。また、藤原(fujiwara@linux.or.jp) 個人宛に送っていただいてもかまいません。 日本語訳の履歴 1999/4/12版 藤原輝嘉 1997/3/15版 藤原輝嘉 1995/8/11版 川島浩, 岡田雄木