NetBSD/pc98(based on NetBSD 1.2) and later FAQ/良くある質問とその答え 最終更新 1998年 3月 19日 このドキュメントでは、NetBSD/pc98を使用する上で出てくるで あろうと思われる質問と、その答えについて書かれています。 1. 前置き/NetBSD/pc98に関する一般的な事 このドキュメントに出て来る"NetBSD"や"NetBSD/pc98"は、特に明記 していない限り、NetBSD/pc98(based on NetBSD 1.2)以降を表しています。 特定のバージョンを表す場合は、[1.0]などとして、バージョン番号を 表示しています。 なお、このドキュメントを運用した結果に関して、NetBSD/pc98 core teamは一切責任を負いません。 1-1. NetBSD/pc98 とは何ですか? NetBSD/pc98とは、Intel i386以降のプロセッサやIntel 互換CPUを 搭載した、PC-9801/PC-9821/EPSON PC98互換機上(以下、PC98と略)で 動く4.4BSD-liteベースのフリーなUN*X風オペレーティングシステムで す。特徴は、 ・完全マルチタスク環境 ・マルチユーザ環境 ・TCP/IPネットワークの装備 ・仮想記憶の装備 ・共有ライブラリ(shared library)の装備 ・C/C++コンパイラの装備 ・豊富なオンラインマニュアル など、さまざまな機能を標準で持っています。また、全てのソース コードが公開されているため、各自で変更を加える事も可能です。 NetBSD/pc98 は、IBM PC上のNetBSD(NetBSD/i386)というUN*X風 オペレーティングシステムを参考に、PC98にNetBSDを実装した物で す。NetBSDは、さまざまなアーキテクチャのマシンで動くOSであり、 その中のi386用に開発されたコードを中心に移植されています。 NetBSD/i386は、カリフォルニア大学バークレー分校(UCB)の、 Computer Systems Research Group(CSRG)で開発された4.4BSD-liteを IBM PC上で動くようにした物で、William Jolitz氏がUCBのNet/2から 作成した386BSDを元にしています。 また、NetBSD/pc98は、京大マイコンクラブ(KMC)が386BSDをPC98機 に移植した386BSD(98)-C2のコードも参考にしています。 1-2. NetBSD/pc98の開発思想はどのような物でしょうか? NetBSD/pc98は、NetBSD/i386よりも進んだデバイスサポートと、 より安定したOSを目指しています。NetBSD/pc98は、NetBSD/i386を 元にしていますが、内容はオリジナルに近い物となっています。PC98 固有のデバイスに対するサポートはもちろん、NetBSD/i386ではサポー トされていないデバイスへのサポート、そしてNetBSD/i386もしくは NetBSD 1.3.1に対するバグフィックスも含まれており、NetBSD/pc98は、 その他のアーキテクチャの開発者にとっても、有益な物となる事は間 違いないでしょう。 1-3. NetBSD/pc98はどうやったら入手できますか? NetBSD/pc98は、以下のサイトからAnonymous FTPによって入手する事 ができます。 ftp://egg.math.sci.hokudai.ac.jp/pub/NetBSD-pc98/1.3.1/ ftp://ftp.spec-j.co.jp/pub/os/NetBSD-pc98/1.3.1/ から、PC98関連のファイルを取得する事が出来ます。 この他に、NetBSD/i386のバイナリ/ソースコードが必要です。国内 では、 ftp://ftp.iij.ad.jp/pub/NetBSD/NetBSD-1.3.1/ ftp://netbsd.tohoku.ac.jp/pub/NetBSD/NetBSD-1.3.1/ などのFTP siteから、NetBSD/i386 1.3.1のバイナリ/ソースコードを入手 してください。 また、UNIX USER 付録CD-ROMに、NetBSDの全てのアーキテクチャ のソースコードとバイナリが収録される事があります。インストール する時点でこのようなCD-ROMがある場合、これを利用しても良いでしょ う。 1-4. NetBSD/pc98はどのような構成になっていますか? NetBSD/pc98は、NetBSD(i386用)のバイナリ/ソースコード一式 に、NetBSD/pc98用のバイナリ/ソースコードを加えた形で構成されま す。 1-5. NetBSD/pc98でNetBSD/i386用のプログラムを動かす事が出来ますか? 通常のプログラムであれば、NetBSD/i386用に作られたものをそ のまま動作させる事が出来ます。絶対に動かないプログラムは、 ・ハードウェアを直接参照するようなプログラム です。例えば、IBM PC用に作られたXFree86のサーバー等があげ られます。 これらは、X98 Core Team から、PC AT用のソースをPC98用に修正 してXFree86(98) という形で以前はリリースされていましたが、 XFree86-3.2以降は本家のソースにマージされましたので、NetBSD ディレクトリに入っている、PC98用のバイナリを使用すれば利用でき るようになっています。 1-6. 質問を受け付ける窓口はありますか? NetBSD/pc98 core teamとしては、質問の窓口は設置していません。 NetNewsのfj.os.bsd.netbsdや、パソコン通信などでNetBSD/pc98を扱っ ているところ、あるいはnetbsd98-users MLにお願いいたします。 NetBSD/pc98 users MLに参加する場合は、 majordomo@egg.math.sci.hokudai.ac.jp に、本文に subscribe netbsd98-users と書いたメールを送る事によって自動的に登録されます。MLから脱退 する場合は、 majordomo@egg.math.sci.hokudai.ac.jp に、本文に unsubscribe netbsd98-users と書いたメールを送って下さい。 また、NetBSDに関する一般的な事項については、NetNewsの fj.os.bsd.netbsd や、netbsd MLで扱っています。netbsd MLに参加 する場合は、 netbsd-request@soum.co.jp に、netbsd MLに参加したいという内容のメールを送る事によって参加 する事が出来ます(自動登録ではありませんのでご注意下さい)。 1-7. バグレポートや提案、バグフィックスを受け付ける窓口はありますか? バグレポートや提案、バグフィックスなどは歓迎します。以下のアドレ スに電子メールを送って下さい。 netbsd-98@njk.co.jp 1-8. NetBSD/pc98の開発計画を知る方法はありますか? NetBSD/pc98 core teamは、既にリリースされた物以外の公開時期 は一切知りません。いつ次のリリースを出すかという事は全くわかりませ ん。 1-9. NetBSD/pc98の移植のお手伝いをしたいのですが、どこに連絡を とれば良いでしょうか? 移植のお手伝いをしたいという方は大歓迎です。現在、NetBSD/pc98 core teamでは、Mailing List(ML)上で情報交換をしていますので 移植のお手伝いをしたいという方は、このML に入る事をお勧めします。 netbsd-98-request@njk.co.jp に、MLに登録してほしいという内容の メールを書いて送って下さい。 なお、このMLは手動登録ですので、"help"などの内容を送っても何も 出来ません。また、このMLはNetBSD/pc98を移植する作業に関する話題 のみを扱います。なお、使用言語は日本語ですので、御安心下さい。 1-10. NetBSD/pc98の話題を扱ったNews Groupはありますか? 現在、NetBSD/pc98に限定したNews Groupはありません。NetBSD一般の の話題は、fj.os.bsd.netbsdで扱っています。 2. ハードウェアについて 2-1. どのようなCPUおよびマシンが使えるのでしょうか? NetBSD/pc98 は、Intel i386/i486/Pentiumなどの、i386以降の アーキテクチャのCPUおよび、これらの互換CPUをサポートしていま す。 Cyrix 486SLC/DLC/5x86に関しては、ブート時に自動的にキャッ シュが有効になります。また、IBM486SLC2/SX3では、 options BLUELIGHTNING を指定する事によって、キャッシュコードが有効になります。詳し くは、config.txt を御覧下さい。 また、古いEPSON PC98互換機は、PC98シリーズと内部的な構造が 違う物があります。このようなマシンでは動作させる事が出来ませ んので、注意して下さい。 2-2. SASI HDDは使用できますか? SASI HDDはサポートしていません。ドライバーを作成された方が いましたら、NetBSD/pc98 core teamに連絡をお願い致します。 2-3. 256バイト/セクタでフォーマットされたHDDを使用できますか? NetBSD/pc98では、512バイト/セクタでフォーマットされたHDDしか 使用できませんので、512バイト/セクタでフォーマットし直して下さ い。また、256バイト/セクタしか扱えないHDDは使用できません。 2-4. MOは使えますか? リムーバブルディスクとして認識されます。なお、NetBSD/pc98では MOをHDD互換モードとして動作させる方法はサポートしていませんので、 MOにHDD互換モードのスイッチがあるような場合は、必ずMOモードに切 替えて下さい。 2-5. CD-ROMは使用できますか? SCSI CD-ROMおよびATAPI仕様のCD-ROMが使用できます。カーネルに options "CD9660" を記述し、また使用するデバイスの定義がされている必要があります。 また、例えば/cdromにマウントする場合は、 # mount -r -t cd9660 /dev/cd0a /cdrom (SCSI CD-ROMの場合) # mount -r -t cd9660 /dev/wcd0a /cdrom (ATAPI CD-ROMの場合) と実行して下さい。 2-6. SCSIテープドライブを使用する事は出来ますか? 使用する事が出来ます。SCSIテープドライブを使用する場合、カー ネルに、 st* at scsibus? target ? lun 0 flags 0x00000304 などと記述されている必要があります。 2-7. PDドライブを使用する事は出来ますか? 使用する事が出来ます。lun 0でリムーバブルディスクとして認識さ れ、lun 1でCD-ROMとして認識されるような場合、 cd* at scsibus? target ? lun ? flags 0x00000304 などと記述されている必要があります。 2-8. ハイレゾモードで使用する事は出来ますか? 使用する事が出来ません。ノーマルモードに切替えて下さい。 2-9. ネットワークボードは何が使用できますか? NetBSD/pc98では、PC-9801用バス(C-bus)のネットワークボード およびPCI bus用のネットワークボードのサポートコードが入って います。詳しくは「config.txt」を御覧下さい。 この他、PCMCIAカードについても、一部サポートされています。 PCMCIAカードについては、「pcmcia.txt」も御覧下さい。 なお、SIU-98に関しては、ボードをSICモードにする必要があ ります(具体的には、ボードについているインテリジェントボー ドを外して下さい)。 2-10. 数値演算コプロセッサは必要ですか? なくても大多数のプログラムは動きます。しかし、一部のプロ グラムにおいて、パフォーマンスが著しく低下したり、実行でき ないものがあります。したがって、装着する事を推奨します。 2-11. Pentium プロセッサのバグ対策は行っていますか? [浮動小数点演算のバグについて] いいえ。行っておりません。ソフトウェア作成時に十分注意 して下さい。 [F00Fのバグについて] # どうなんでしょう?確か実装されてたような.... 2-12. メモリを沢山積んでいるのですが問題がありますか? [16MB〜512MB積んでる場合] NetBSD/pc98 では、メモリを16MB以上積んでも全く問題ありま せん。 [512MB〜積んでる場合] # 一旦メモリを減らしてインストールした後、BOUNCE_BUFFER # オプションを外したカーネルを作って入れ換えてからメモリ # 追加して下さい。98だと512MB積める機種は限られますが.. 2-13. SCSI HDDの転送モードはどうしたら良いでしょう? 基本的にはDMA転送にして下さい。一部のボードではバスマスタ やSMIT方式での転送も可能ですが、NetBSD/pc98 core team内で 動作確認できているボード以外を使用する場合、DMA転送にする方 が良いかも知れません。 2-14. APM機能は使用できますか? NetBSD/pc98 では、APM(Advanced Power Management) をサポート しています。APMが使用可能な機種では、/sbin/vm86biosd ならびに /sbin/apmconfig コマンドを実行する事により、 apm0: version 0x111 funcs 0x7 apm0: code 0xfd80:0x209 data 0xd800:0 apm0: [A/C] on [1st pack] available [2nd pack] none のように表示され、APMを利用する事が出来ます。バッテリーの状態は apmctrl コマンドでも取得することができます。機種によっては、 apm0: version 0x112 funcs 0x7 apm0: code 0xfd80:0x209 data 0xd800:0 apm0: [A/C] on [1st pack] 97/100 [2nd pack] 100/100 の様にバッテリの残量を知る事ができるものもあります。 詳しい説明は「misc.txt」を御覧下さい。 2-15. PCI-busを持っていますが、大丈夫ですか? 全く問題ありません。NetBSD/pc98 では、NetBSD/i386などと 同様に、PCI-busを持っている機種の場合、 pci0 at mainbus0 bus 0: configuration mode 1 vendor NEC, unknown product 0xc (class bridge, subclass host, revision 0x00) at pci0 dev 0 function 0 not configured NEC PC98 graphic devices (class display, subclass miscellaneous, revision 0x01) at pci0 dev 2 function 0 not configured Trident Microsystems Cyber 9320 (class display, subclass VGA, revision 0xe3) at pci0 dev 3 function 0 not configured NEC PCI-CBus Bridge (class bridge, subclass miscellaneous, revision 0x02) at pci0 dev 5 function 0 not configured のように、PCI-busに接続されている機器の表示をする事が出来ます。 しかし、一部の9821NOTE(core teamの確認した範囲では、PC-9821Nd2 およびLt2等が該当します)では、接続していないdeviceも表示してしまう (具体的にはdevice 0から31まで表示してしまう)という不具合が生じる 場合があります。具体的な対策方法は、misc.txtを御覧下さい。 また、メッセージではnot supported という表示が出ていますが、動作に は全く関係ありませんので、無視して構いません。 2-16. プリンタを使用していますが、印刷が非常に遅いです。何故でしょうか? NetBSD/pc98では、パラレルデバイスとして、 /dev/lpt0 : 割り込みを使用するタイプ /dev/lpa0 : 割り込みを使用しないタイプ の2つを使用する事ができます。ただし、/dev/lpt0 を使う場合、 Ap2等より古い(Ap2も含む)世代のマシンでは、プリンタからの割り 込みを拾えないために遅くなります。Xs等より後の機種の場合は、 /dev/lpt0を使用するとpollingを使用しないために高速に印刷する 事が出来ます。従って、Ap2以前の旧機種では/dev/lpa0を、Xs以降 の新機種では/dev/lpt0を使用して下さい。 3. file systemについて 3-1. MSDOS領域のマウントは出来ますか? NetBSD/pc98(based on NetBSD 1.2)以降では、msdos mountをサポート していますが、これは実験段階です。各自の責任で使用してください。 また、fd driver で512 partial read block というものをサポートし たので、2HDのフロッピーディスクも使用できます。フロッピーディス クを使用する時の注意点は「floppy.txt」を御覧下さい。 HDDについては、fake disklabel という物を採用しているため、パー ティーション情報をdisklabelに書かなくてもマウントする事が出来ます。 例えば、MS-DOS パーティーションが2つあり、3番目のパーティー ションにNetBSD/pc98 をインストールし、wd0a, wd0eとNetBSD パーティー ションを作成したとすると、カーネルはブート時にパーティーションの 状態を調べ、MS-DOSの1番目のパーティーションをwd0f、2番目のパー ティーションをwd0g に自動的に割り当てます。 MS-DOS 領域をマウントする時は、 # mount -t msdos /dev/wd0f /dos とすれば、MS-DOSの1番目のパーティーションをマウントする事が 出来ます。 また、ufsのパーティーションがたくさんあって、fake labelが 生成されない場合は、vpd デバイスを使用してマウントする事も出来 ます。vpdデバイスに関しては、「vpd.txt」を御覧下さい。 3-2. MSDOSFSで、日本語ファイル名を扱う事が出来ますか? NetBSD/pc98では、MSDOSFSを拡張する事により、日本語 対応を実現しています。詳しくは、「msdosfs.txt」を御覧下さい。 FAT32に関してはNetBSD 1.3で対応している筈ですが、日本語ファイル 名に関してはどういう動作をするか確認出来ていません。 3-3. UNION FSは使用できますか? UNION FSは FreeBSDやNetBSD本家に比べても圧倒的に使えるように なっています。しかしこれでもまだbugがあります。union file system は、vnode のlocking によるdead lockという本質的な問題を抱えてい て、これは非常に厄介です。 通常の使用は問題ありませんが、けっしてunion file systemにむちゃ な事(例えば、わざと loopを作ったり、union mountを繰り返すなど) はしないでください。多重アクセスによるdead lock及び、.. lookup に よるdead lockは回避されていますので普通の使いかたなら問題ないと 思います。 例えば、カーネルをコンパイルする時は、 # mount -t union /usr/src.skel /usr/src と実行する事により、/usr/srcの上に/usr/src.skelがマウントされます。 3-4. MOのマウントはどうやるのでしょうか? 通常のufsのMO(パーティーション情報を書き込んだMO)なら、 # mount /dev/sd2a /mnt のようにしてマウントできます。また、MS-DOS 形式のMOなら、 ディスク全体を表す"d"パーティーションを使用して、 # mount -t msdos /dev/sd2d /mnt とやればマウントできます。 3-5. CD-ROMはどうやってマウントするのでしょうか? CD-ROMをマウントする場合は、例えば # mount -r -t cd9660 /dev/cd0a /cdrom (SCSI CD-ROMの場合) # mount -r -t cd9660 /dev/wcd0a /cdrom (ATAPI CD-ROMの場合) と実行して下さい。ただし、カーネルの再構築時に options "CD9660" および使用するデバイス(cd or wcd)の定義がされている必要があります。 4. さまざまなデバイスに関して 4-1. キーボードおよびコンソールに関して疑問があります。どこを 調べれば良いでしょう? コンソールとキーボードに関しては、「console.txt」にFAQが書かれて います。そちらを御覧下さい。 4-2. フロッピーデバイスに関して疑問があります。どこを調べれば 良いでしょう? フロッピーデバイスに関しては、「floppy.txt」を御覧下さい。 4-3. SCSI HDDに関して疑問があります。どこを調べれば良いでしょう? SCSIデバイス(主にbs driver)に関しては、「scsi.txt」を御覧下さい。 4-4. PCMCIAカードに関して疑問があります。どこを調べれば良いでしょう? PCMCIAカードに関しては、「pcmcia.txt」を御覧下さい。 4-5. シリアルポートに関して質問があります。どこを調べれば良いでしょう? シリアルポートに関しては、「serial.txt」を御覧下さい。 4-6. デフォルトのirq, drqから値を変更してデバイスを使用していますが、 大丈夫ですか? NetBSD/pc98では、magicデバイスによってデバイスのプローブ時に動的に irq, drq等を変更する事が出来ます。ブート時に magic0 と表示されたら、リターンキーを押して下さい。すると devices reconfiguration (hit CR): devname(ex. bs0) or exit: と表示され、デバイスのパラメータを変更する事が出来ます。例えば、 LGY-98のirqをirq 5に変更する例を示します。 devices reconfiguration (hit CR): devname(ex. bs0) or exit: ed0 ed0: port=0xd8 maddr=0xffffffff msize=0x0 irq=0x6 drq=0xffffffff dvcfg=0x200000 port(0xd8):0xd0 maddr(0xffffffff): msize(0x0): irq(0x6): 0x5 drq(0xffffffff): dvcfg(0x200000): 0x400000 ed0: port=0xd8 maddr=0xffffffff msize=0x0 irq=0x5 drq=0xffffffff dvcfg=0x400000 devname(ex. bs0) or exit:exit なお、使用できるflags(dvcfg)の値は「config.txt」を参照して下さい。 5. X Window Systemに関して 5-1. X Window Systemは使用できますか? 使用できます。XFree86をPC98用のUN*X風オペレーティングシステム に移植する作業は、X98 Core Teamによって行われております。 XFree86-3.1.2以降、PC98用のサーバーがXFree86 Inc. のソースコー ドにマージされましたので、今後のPC98用のリリースは、XFree86 Inc. からのリリースパッケージに含まれます。 '98 3/19現在では、XFree86-3.3.2が公開されており、この中のNetBSD ディレクトリに入っているPC98用のX サーバーを使用する事により、 X Window Systemを使用する事が出来ます。 5-2. XFree86を実行しようとしたら、``MIT-SHM extension disabled due to lack of kernel support''という表示がでました。なにか問 題があるでしょうか? これは、SYSV形式のShared Memoryがサポートされていないというメッ セージです。 options SYSVSHM options SYSVSEM options SYSVMSG を加えて、カーネルを再構築して下さい。 5-3. Aperture Driverは必要ですか? NetBSD/pc98 alpha3(based on NetBSD 1.0)では、Aperture Driver と呼ばれる、ビデオメモリのためのデバイスドライバを必要としていま したが、NetBSD/pc98(based on NetBSD 1.2)以降ではなくても動作します。 aperture driverは、使い方を誤ると非常に危険なため、NetBSD/pc98 core teamでは使用を推奨しません。 options INSECURE を定義してカーネルを再構築し、aperture driverを使用しないで下さ い。 5-4. 正しくXF86Config等の設定をしていると思うのですが、XF98_WABSが 起動しません。何故ですか? NetBSD/pc98 users MLにそのような報告があがっています。原因は 調査中ですので、しばらくお待ち下さい。 6. その他 6-1. カーネルの再構築時に、pcvt_ioctl.h がないと言われてコンパイルが ストップします。どうすればいいのですか? NetBSD/pc98(based on NetBSD 1.2)の最初のリリースでは、comp9812.tgz にpcvt_ioctl.h が含まれていないため、このようなトラブルが発生 します。NetBSD 1.2のソースを展開して、 # mount -t union /usr/src.skel /usr/src # cd /usr/src/include # make includes を実行するか、/usr/src/sys/arch/i386/isa/pcvt/pcvt_ioctl.h を /usr/include/machineに手動でコピーして下さい。 6-2. 私は古いPC9801NOTEを使用していますが、インストール後に HDDから起動させる事ができません。何故でしょうか? 1.44MB フロッピーディスクを使用できない機種では、kco12.fs ディスクのカーネルをインストールしますが、NetBSD/pc98(based on NetBSD 1.2)では、このカーネルにwdドライバが入っていないため です。NetBSD/pc98(based on NetBSD 1.3.1)を使用して下さい。 6-2. NetBSD/pc98の最新のドキュメントはどこで入手できますか? ドキュメントの最新版は、 http://www.nisoc.or.jp/~karl/netbsd-pc98/doc/ 以下から入手する事が出来ます。該当する質問がない場合、まずは このディレクトリを見てみる事をお勧めします。 なお、このドキュメントはFAQとしてはまだまだ内容が少ないで す。もしこのドキュメントに書かれていない内容についてのFAQを作 成された方は、netbsd-98@njk.co.jp までメールをお願い致します。 NetBSD/pc98 core team 連絡先 E-Mail:netbsd-98@njk.co.jp