FreeBSD(98) 2.0 and later よくある質問 FreeBSD(98) 移植チーム, FreeBSD@center.nitech.ac.jp Apr. 26, 1996 このドキュメントはFreeBSD(98) 2.0およびそれ以降のバージョンに関してよ く質問される事項のうち、PC98版に関係する項目を中心にまとめたものです。 FreeBSD一般およびIBM-PCに関する事項についてはFreeBSD.FAQを参照して下さ い。(FreeBSD(98) 1.Xは対象にしていません) 1.前置き このドキュメント``FreeBSD''や``FreeBSD(98)''とある場合は、特に明記して いない限り、バージョン2.0以降のすべてのバージョンを表しています。特定 のバージョンを表す場合は、[2.0]や[2.0.5]として、バージョン番号を表示し ています。 ドキュメント中でと表示された項目は、現在準備中のものです。 # このドキュメントを運用した結果に関しFreeBSD(98)移植関係者およびこの # ドキュメントの筆者は一切責任を負いません。この条件を承認できない場合は # 直ちにこのドキュメントを破棄して下さい。詳細についてはCopyright.98を # 参照して下さい。 1.1. FreeBSD(98)とは何ですか? FreeBSD(98)とは、i386/486[SX/DX]やPentiumプロセッサやその互換CPUを搭載 したPC-9801シリーズおよびその互換機上で動く4.4BSD-Liteベースのフリーな 保護モードで動作する32ビットのUN*X風オペレーティングシステムで、 o 完全マルチタスク環境 o マルチユーザ環境 o TCP/IPネットワーク(SLIP/PPP/NFS/NISも使えます) o 仮想記憶 o シェアードライブラリ o C/C++/Fortranコンパイラ o 豊富なオンラインマニュアル など、さまざまな機能が標準で使用できます。(新たに``マルチユーザパッケ ージ''や``開発環境パッケージ''のようなものを購入する必要はありませ ん)また、多くのコンパイル済みバイナリ(packages)が用意されています。さ らに、すべてのソースコードが公開されているので、各自で変更を加えること も可能です。 FreeBSD(98)は、IBM-PC上のFreeBSDというUN*X風オペレーティングシステムを PC98やその互換機に移植したものです。FreeBSDは、UCバークレーのCSRGによ る4.4BSD-liteをIBM-PC上で動くようにしたもので、間接的には、William Jolitzが、UCバークレーのNet/2から作成した386BSDももとにしています。 FreeBSD(98)は、さらに、京大マイコンクラブ(KMC)が386BSDをPC98およびその 互換機に移植した386bsd(98)-C2のコードを直接または間接的に使用していま す。 1.2. FreeBSD(98)はメーカーの製品ではないので動作が信用できないといわ れたのですが本当ですか? なんともいえません。なにをもって信用できる/できないと判断するかにより ます。ハングアップするかどうかといった``安定性''に関してであれば心配い りません。メーカーの商品でFreeBSD(98)より不安定なOSは存在します。ネッ トワークについても貧乏な日本の国立大学ではFreeBSD(98)を使ってインター ネットに接続している例がいくつもあります。インターネットにただ接続した だけでなく、ファイルサーバやメールサーバやNISサーバにして酷使している 例もあります。また、FreeBSD(98)で運用するFTPサーバもあります。 新しいバージョンが公開されると、新たなバグに対するパッチが出て対応が面 倒になる可能性を否定できません。しかし、これは考え方を変えれば、バグに 対する対応が速いということを表していて、バグを隠したりその対応が遅いこ ともあるメーカーの製品よりは信頼できることを意味していると思います。た だ、現在のところ、FreeBSDはそれほどひんぱんにバージョンアップをしてい ません。(一般公開用のバイナリと異なり、開発サイドでは毎日のように変更 があります。)しかし、フリーソフトであるので、メーカーのサポートのよう なものはありません。したがって、サポートを判断基準にするのであれば話は 別になります。たよりない回答ですが答えは、``あなた自身が使ってみてどう 思うかがその答''ということになります。 1.3. FreeBSD(98)の開発思想を教えて下さい。 FreeBSD(98)は、``できる限りオリジナルと同じにする''ことを基本コンセプ トにして移植作業を行なっています。そのため、使用方法はオリジナルのド キュメントや解説文を参考にすることができます。また、実行ファイルのほと んどはIBM-PC用のFreeBSDのものを使用することができます。(X Window Systemのサーバのように、ハードウェアに強く依存するものは流用できませ ん。) 1.4. FreeBSD(98)はどうやったら入手できますか? FreeBSD(98)は、以下のサイトからanonymous FTPで入手できます。 このほかに、IBM-PC用のバイナリーが必要になります。IBM用のFreeBSDの配布 物は、日本国内の以下のサイトからanonymous FTPで入手できます。 各ディレクトリの下にバージョン番号等がわかるようなディレクトリが存在し ます。 上記以外のサイトにも置いてある場合があるので負荷の分散に御協力下さい。 また、パソコン通信上で回覧が予定されているものもあります。 PC-VAN SPUNIX UNIX広場 NIFTY-Serve FEPSONX UNIX on EPSON-PC/PC98 で回覧の募集が行なわれています。 1.5. FreeBSD(98)はどのような構成になっていますか? FreeBSD(98)は、IBM-PC用のFreeBSDの配布物一式に98用ファイル群を加えたも ので構成されています。98用ファイル群は98で動かすために変更した実行ファ イルのほか、98用のドキュメント、98用に変更したソースファイルで構成され ています。詳しくはRelnote.98を参照して下さい。 1.6. FreeBSD(98) Mailing Listとはなんですか?参加するにはどうしたらよ いですか? FreeBSDユーザー向けのMailing Listがあります。加入希望者は majordomo@ibbsal.or.jp 宛に、 subscribe FreeBSD-user とだけ本文に書いたメールをお送り下さい。自動的に登録され、案内が送られ ます。このMailing Listでは、FreeBSDのインストールや使用方法についての 問題点を広く議論するためのものです。機種を限定せず、PC/AT互換機 とPC98互換機の両方の話題を取り扱います。使用言語は日本語です。 また、FreeBSD(98)の移植者およびテスター向けのMailing Listも運営してい ます。加入希望者は FreeBSD@center.nitech.ac.jp へ入会希望であることを明記し、簡単な自己紹介を書いたメールを送って下さ い。このアドレスはMailing Listそのものであり、また、このMailing Listは ``手動HELP/SUBSCRIBE応答システム''を採用しているので、``help''や ``subscribe''とだけ書かれたメールを送っても何もできません。このMailing ListはFreeBSDをPC98に移植する作業に関する話題のみを取り扱います。使用 言語は日本語です。 注意! NIFTY-ServeからMailing Listに参加する場合、NIFTY-Serve側のメー ルの最大受信数に厳しい制限があるので注意して下さい。制限を越えるメール はエラーメールとして発信者に返送されます。この種のエラーメールがある と、 Mailing Listの管理者に負担がかかります。制限を越えることの無いよ う十分な間隔でメールを読んで下さい。もし、NIFTY-Serve側に原因のあるエ ラーメールが増大した場合は、NIFTY-Serveからの参加を禁止しなければなら なくなります。 1.7. FreeBSD(98)の話題を扱ったNews Groupはありますか? 現在、FreeBSD(98)に限定したNews Groupはありません。FreeBSD(98)の話題 は、 AT互換機用のFreeBSDと一緒にfj.os.bsd.freebsdで扱っています。 [参考] IBM-PC上のFreeBSDに限ればfj.os.bsd.freebsdのほかに comp.unix.freebsd.misc があります。(使用言語は英語。PC98の話題は理解してくれません。) 1.8.いわゆるパソコン通信上の会議室等でFreeBSD(98)の話題を扱っていると ころはありますか? はい。以下のところではFreeBSD(98)のことが話し合われています。 o NIFTY-Serve: FEPSONX "UNIX on EPSON-PC/PC98 活用" o NIFTY-Serve: FEPSONX "UNIX on EPSON-PC/PC98 導入" o NIFTY-Serve: FUNIX "BSD ON PC'S" o PC-VAN: JSPUNIX このほかにもあると思います。いろいろ調べてみて下さい。 1.9.質問を受け付ける窓口はありますか? FreeBSD(98)移植チームとしては、質問の窓口は設置していません。一般的な 質問はできる限り、fj.os.bsd.freebsdやパソコン通信などで FreeBSD(98)の 話題を受け付けているところ(``FreeBSD(98)の話題を扱ったNews Groupはあり ますか?''および ``いわゆるパソコン通信上の会議室等でFreeBSD(98)の話題 を扱っているところはありますか?''参照)に質問してみて下さい。FreeBSD- user@ibbsal.or.jp に投稿しても返 事が得られるかどうかは保証できません。 ______________________________________________________________________ 質問を行なう前にまず、付属のドキュメント(PC98用のみではなく IBM-PC用も)や、オンラインマニュアルを読んでみて下さい。多くの 質問はそれで解決します。文学的要素の低い英文にめげないでくださ い。 ______________________________________________________________________ 1.10.バグレポート、提案、バグフィックスを受け付ける窓口はありますか? はい。バグレポート、提案、バグフィックスは歓迎します。以下のアドレスま で電子メールをお送り下さい。 FreeBSD@center.nitech.ac.jp 1.11.動作報告はどのように行なったら良いでしょうか? 付属のREPORT.98というファイルに必要な事項を書き込み、それを FreeBSD98-report@IBBSAL.OR.JP に送って下さい。書き方はREPORT.98のコメントを参考にして下さい。 1.12.ガーン。動作報告を間違えてfreebsd@center.nitech.ac.jpに送ってしま いました。どうしたらいいでしょうか? しかたないのでこちらで転送しておきます。 1.13. FreeBSDを使うとシステム管理の作業が必要になるのですが、これがよ くわかりません。参考になる文献があれば紹介して下さい。 まず、付属のドキュメント類をよく読んで下さい。また、オンラインマニュア ルも参照して下さい。英語のドキュメントも読んで下さい。とっつきにくいか もしれませんが、中学英語の知識でたいていわかります。専門用語はカタカナ にすれば多くは日本語になります。BSDのシステム管理はかなり系統的であ り、慣れてしまえば楽であると思います。附属のドキュメントとしては、 /usr/share/doc/smmに、 System Manager's Manual (SMM) の一部がありますので、必要に応じて参考にして下さい。印刷されたSMMは、 マニュアルページの8章とともに O'Reilly & Associatesから出版されていま す。(ISBN 1-56592-080-5)また、User Reference Manual (URM)、User Supplementary Documents (USD)、Programer Reference Manual (PRM)、 Programmer Supplementary Documents (PSD)そして、SMMの5冊セットのISBNコ ードは、1-56592-082-1です。ただし、章によっては内容がかなり古いものも あります。(中にはVersion 7のもあります。) 日本語でもさまざまな書籍が出版されていますので、書店で立ち読みでもし て、気に入ったものを購入して下さい。(立ち読みだけで済まそうとするのは ミスオペレーションの原因になる可能性があります)市販の書籍の中で参考に なりそうなものをいくつか列挙しますが、特定の書籍やその出版者を支持する ものではありません。 (思いついた順) 砂原ら (1994) プロフェッショナルBSD. pp.502, ASCII出版局. BSDIのBSD/386 Version 1.1をターゲットにしていますが、4.4BSD- LiteベースであるFreeBSDでもそのまま当てはまったり、わずかな変更 で応用できる内容がほとんどです。 Nemethら (1989) UNIXシステム管理入門. 井上監訳, pp. 480, ソフトバン ク. システム管理の参考書ですが、内容がかなり古くなっている部分もあり ます。それでも多くの部分は参考になります。 谷村 (1992) UNIX-LAN構築の実践技術. pp. 550, ソフト・リサーチ・セン ター. ネットワーク関連の参考になります。 水越 (1993) UNIXネットワークの日々. pp. 276, オーム. ネットワークの参考書ですが突っ込んだ内容は書かれていません。 Mui and Pearce (1994) X ウィンドウ・システム管理ガイド. 小幡監訳, pp. 329, ソフトバンク. X Windowの設定の参考書です。X11R5を対象にしていますがX11R6でも参 考になります。 Curry (1992) UNIXシステムセキュリティ. 小林訳, pp. 239, ソフトバン ク. セキュリティ関連の参考書です。 アスキー書籍編集部 (1995) 人に聞けないUNIXの使い方, pp. 215, アスキ ー出版局 宮嵜 (1995) FreeBSD入門キット. pp. 204, 秀和システム FreeBSD(98) 2.0.5R-ALPHAについて、とにかく動くようにするまでのこ とが書かれています。 1.14. FreeBSD(98) Snapshotとは何ですか? FreeBSD(98)移植チームは、ALPHA/BETAテストバージョンや正式リリースバー ジョンのFreeBSD(98)を、FreeBSDの正式リリースバージョンをもとに作成して います。これとは別に、``FreeBSD-current''や``FreeBSD Snapshot Release''から作成したバージョンを``FreeBSD(98) Snapshot''として公開す ることがあります。これは、次に公開される正式リリース版への移行作業途中 のものを、テストユーザを対象に公開するものです。FreeBSD(98) Snapshotは、正式リリースと似た形式で公開されていますが、 FreeBSD(98) Snapshotは正式リリースではありません。 正式リリースではないため、移行作業が間に合っていない機能や、新たな不具 合が発生している可能性があります。また、附属するドキュメントも移行作業 途中のものが公開されます。FreeBSD(98) Snapshotでは、多くの不具合が修正 されていることがありますが、決して バグフィックスバージョンではありません。 次のリリースで仕様が大きく変更される可能性があります。詳しくは、 snapshot.98というドキュメントに記載されています。 1.15. FreeBSD(98)-currentとは何ですか? FreeBSD(98)移植チームは、FreeBSD-currentベースのFreeBSD(98)を公開して います。これは、ftp.kawalab.dnj.ynu.ac.jp から入手することが可能です。 FTPのほか、ftp.kawalab.dnj.ynu.ac.jpでは、supにより変更した部分のみを 入手する手段を設けています。supの設定ファイルの例は、 ______________________________________________________________________ doc host=tkpc.kawalab.dnj.ynu.ac.jp hostbase=/usr3/ftp/FreeBSD/PC98-current/src base=/yourpath prefix=/yourpath/src delete old sys host=tkpc.kawalab.dnj.ynu.ac.jp hostbase=/usr3/ftp/FreeBSD/PC98-current/src base=/yourpath prefix=/yourpath/src delete old sbin host=tkpc.kawalab.dnj.ynu.ac.jp hostbase=/usr3/ftp/FreeBSD/PC98-current/sr c base=/yourpath prefix=/yourpath/src delete old usr.sbin host=tkpc.kawalab.dnj.ynu.ac.jp hostbase=/usr3/ftp/FreeBSD/PC98-curren t/src base=/yourpath prefix=/yourpath/src delete old tools98 host=tkpc.kawalab.dnj.ynu.ac.jp hostbase=/usr3/ftp/FreeBSD/PC98-current /src base=/yourpath prefix=/yourpath/src delete old ______________________________________________________________________ です。/yourpathの部分を実際の環境に合わせて変更して下さい。 1.16. FreeBSD(98)の開発計画を知るにはどこにたずねたらいいですか?(次 のバージョンがリリースされる時期を知るにはどうしたらいいですか?) FreeBSD(98)移植チームは、すでにリリースされたもの以外の公開時期をまっ たく知りません。いつまでに次のリリースを出すかといったことはまったくわ かりません。もちろん、常に最新版の公開に向けて作業を行なっていますが、 公開時期を事前に約束することはできません。完成した時が公開時期です。 2.ハードウェア 2.1. FreeBSD(98)を使うために新しくコンピュータを買いたいと思ってい て、ほかの人がどのような機械を使用しているのか知りたいと思います。参考 になるリストはありますか? Systems.98というドキュメントを参照して下さい。このドキュメントには動作 したという報告があった機種を報告通りに記載しています。また、不具合の あったハードウェアを、HW.TROUBLE.98というファイルに記載しています。公 開後に集まった情報をまとめて新たなSystems.98を作成 しfj.os.bsd.freebsdに公開する場合があります。公開する時期 は、Systems.98の担当者の気が向いた時です。 2.2. CyrixのCPUは使用できますか? はい。ただ、標準のカーネルではCyrixのキャッシュが無効になっています。 もし、キャッシュを有効にしたい場合は、付属のドキュメントを参考にしてカ ーネルを再構築して下さい。 2.3. IBM486SLC2/486SX3は使用できますか? はい。ただし、IBM486SLC2のコードはFreeBSD(98)上での動作確認が不十分で す。カーネルを"options IBM486"付きで再構築すると、 IBM486SLC2/486SX3の キャッシュが有効になります(config.98を参照して下さい)。 "options IBM486"付きでカーネルを再構築すると、 IBM486SLC2/486SX3を使用し た"CPUアクセラレータボード"を使用している場合、 o 内部キャッシュ有効 o 内部2倍速 になります。ただし、以下の制限があります。 o キャッシュ領域は0-640KBおよび、1MB境界-14MB境界のみ o CYRIX製数値演算コプロセッサ必須(コプロ無しやIntel製コプロにおける動 作確認はありません。 カーネルソースの/sys/pc98/i386/locore.sの825行目に、 movl $0x03000000,%eax # "3" means double-clock-mode. or set all-zero. ^ という部分があります。``^''の上の``3''という部分は、``0''で1倍クロッ ク、``3''で2倍クロックになります。I/OデータのPK-A486BL60/75に使用され ている BlueLightning (IBM486SX3)では、ここに``4''を設定することで3倍ク ロックになります。但し、DIP SW2をONにしてTurboモードにした場合、3倍ク ロックは使用できません。 2.4. SASIは使えますか? サポートしていません。もし、ドライバーを作成された方がいましたら、 FreeBSD@center.nitech.ac.jp まで御一報下さい。 2.5. 256バイト/セクタのフォーマットを使用できますか? いいえ。512バイト/セクタでフォーマットし直して下さい。ただし、ハード ディスクドライブの中には、256バイト/セクタでしか使用できないものがあり ます。そのようなハードディスクドライブは使用できません。 2.6. MOは使えますか? はい。リムーバブルディスクとして認識されます。(パッチを当てる必要はあ りません。) 2.7. CD-ROMは使用できますか? SCSI CD-ROMは使用できますが、IDE CD-ROMは使用できません。 SCSI CD-ROMを使用する場合、カーネルのconfigurationファイルに options "CD9660" device cd0 と記述されている必要があります。マウントする時は、 mount -t cd9660 /dev/cd0a /cdrom のように指定して下さい。 2.8. SCSIテープデバイスは使えますか? はい。SCSIテープデバイスを使用する場合、カーネルのconfigurationファイ ルに、 device st0 と記述されている必要があります。 [2.0] SCSIテープデバイスを2台使用する場合は、上記の他、 device st1 と記述されている必要があります。 2.9.ハイレゾモードで使用することはできますか? いいえ。ハイレゾモードには対応していません。 2.10.ネットワークボードは何が使用できますか? FreeBSD(98)がサポートするネットワークボードは次の通りです。 ``ed''ドライバー: o メルコ EGY-98シリーズ o メルコ LGY-98シリーズ o メルコ LGH-98シリーズ o ICM IF-2766ET/AD-ET2-T (2.0.5以降) ``si''ドライバー: o アライドテレシス SIC-98シリーズ o アライドテレシス SIU-98シリーズ ``fe''ドライバー: o アライドテレシス RE1000 (2.0.5以降) o アライドテレシス RE1000Plus (2.0.5以降) o アライドテレシス ME1500 (2.0.5以降) ``zp''ドライバー o 3Com 3c589B (PCMCIAカード) アライドテレシス SIU-98シリーズはボードをSICモードにする必要がありま す。 注意! ``fe''ドライバーはテスト中のバージョンです。初期化時にエラー メッセージが表示されます。2.0.5より前のバージョンのsiドライバーは、パ ケットフィルタとマルチキャストが使用できません。 2.11. i386/i486sx/i486SX2/Cx486を数値演算コプロセッサーなしで使用して いますが問題がありますか? 一般的にはありませんがパフォーマンスと精度が落ちます。とくにX-Windowを 使用して円弧を描く場合、著しく速度が低下します。また、標準の浮動小数点 エミュレータは完全に487コードをエミュレートしていないため、一部のアプ リケーションは実行できません。したがって、数値演算コプロセッサーを装着 することを強く推奨します。 2.12. Pentiumプロセッサーにバグがあると聞きました。対応策はありますか ? IntelのPentiumプロセッサの初期ロットにはバグがあります。32ビット浮動小 数点除算を行なう際、特定のビットパターンの場合、著しい桁落ちが発生する ことがあります。一部のOSではカーネルレベルで対応を行なっていますが、 FreeBSDではそのようなことは行なっていません。ソフトウェア作成時に十分 注意して下さい。 2.13. EPSON PC-486HXを使用していますが、CPUスイッチをLowにしなければ 動作しません。なんとかなりませんか? セカンドキャッシュがライトバック方式の機種では、CPUスイッチをLowにして インストールした後、カーネルのconfigurationファイルに options "WB_CACHE" という項目を追加して、カーネルを再構築して下さい。新たに作成したカーネ ルでは、CPUスイッチをHighにして使用することができます。カーネルの再構 築の方法については、config.98というファイルを参照して下さい。 3.インストール 3.1.インストールはオリジナルのドキュメントに従えば良いのですか? いいえ。インストール方法はほとんど同じですが、PC98固有の部分については 異なっています。重要なものとして、98用に変更したバイナリーのインストー ルが増えているということです。98用に変更したバイナリーのインストールを 忘れないようにする必要があります。詳しくは、 Install.98 を参照して下さい。もちろん、オリジナルのドキュメントも参考にして下さ い。 3.2.メモリーを32MB載せているのですが問題がありますか? いいえ。FreeBSD(98)はバウンスバッファという、16MBを越える領域へのアク セスを可能にする機能をもっているので、16MBを越えるメモリを搭載しても使 用可能です。 3.3.ハードディスクの転送モードはどのようにしたらよいですか? 基本的にはDMA転送モードにして下さい。バスマスターモードで使用している 例もありますが、動作しない場合もあります。PC-9801DAやPC-486GR以降の高 速DMA転送モードはI/Fボードが対応していれば動作します。FIFOモードは使用 できません。ただし、ボードによっては、FIFOモードに設定しておいて もDMA転送として使用することが可能なものもあります。さらに不思議なこと なのですが、DMA転送モードでは不安定なのにFIFOモードに設定して使用する と安定するI/Fボードもあります。 なお、/usr/src/sys/pc98/pc98/sbic55.c.newをsbic55.cに名前を変えるとバ スマスタ対応になります。しかし、このドライバは試験的なものであるので、 その点を理解して使用して下さい。再構築の際の設定方法はconfig.98に記載 してあります。 3.4. SCSI I/FをFIFOモードにした方が安定する場合があるということ は、FreeBSD(98)はFIFOモードをサポートしているということですか? いいえ。インターフェースボードの設定がFIFOモードであっても転送はDMAを 使って行ないます。これは、FreeBSD(98)に限ったことではなく、MS-DOSでも ハードディスクのパラメータを取得する時などは普通DMA転送で行われること があります。 3.5.全てのソースコードをインストールする必要がありますか? 一般的にはありません。しかし、最低でもPC98用のカーネルソースをインスト ールすることを推奨します。 3.6. srcdistからカーネルソースだけを取り出す方法はありますか? [2.0] はい。まず、srcdist.XXというファイルを適当なディレクトリにコピー してください。CD-ROMなど、一つのディレクトリにsrcdist.XXがあるファイル システムをマウントしてもかまいません。次に、srcdist.XXのあるディレクト リに移動し、以下のコマンドを実行して下さい。 # cat srcdist.* | (cd /; tar xzf - "/usr/src/sys/*") [2.0.5] FreeBSD 2.0.5では、ソースファイルは、/usr/srcの下のディレクト リごとに分割されています。ssys.XXを/usr/srcの下で展開すると、IBM用のカ ーネルソースが得られます。また、カーネルの再構築を行なう場 合、sincludeも展開されている必要があります。実際には、 # cd /usr/src # cat /hogehoge/sinclude.* | tar xzf - # cat /hogehoge/ssys.* | tar xzf - となります。 3.7. PC98用のカーネルソースはどう作ったらいいですか? まず、``srcdistからカーネルソースだけを取り出す方法はありますか?''に したがって、カーネルのソースコードを展開して下さい。そして、次のように してください。 # cd /usr/src/sys # tar xzf /hogehoge/kern98.tar.gz # ./patch98sys これで、PC98用のカーネルソースができあがります。 3.8. DES関係のファイルがないのですが? アメリカ合衆国におかれているDES関係のファイルは輸出禁止物品になってい ます。したがって、たとえftpサイトにあったとしてもアメリカ合衆国へDES関 係のファイルを転送してはなりません。もし、そのようなことを行なうと、当 該サイトの管理者は法的に困難な立場におかれてしまいます。FreeBSDのDES関 係ファイルと互換性のあるものが skeleton.mikom.csir.co.za/pub/FreeBSD/FreeBSD-current にあります。貴重な国際回線を有効に使用するため、国内サイトに置かれてい ないか確認して下さい。1995年3月14日の時点では、ソースコードしか用意さ れていません。したがって、/usr/src/bin/edおよび/usr/src/sbin/initのソ ースを展開して、/usr/src/secureをコンパイルする必要があります。 なお、FreeBSD 2.0以降では、標準で``MD5''という暗号化を行なっています。 3.9.配布ファイルの展開を行なう時、チェックサムの検査でエラーとなって先 に進めません。どうしてですか? 原因は2つ考えられます。一つは、配布ファイルを入手した時にすでに壊れて いた場合で、この場合は、入手し直す必要があります。もう一つは、DOS上で 展開する際、tarのオプションとして``a''を加えた場合です。この場合は、 tarをaオプション無しで再度実行して下さい。 3.10. newfsを実行する時にリブートしてしまうのですがどうしたらいいです か? SCSIハードディスクにインストールする場合、SCSIボードによっては、ハード ディスクのシリンダが実際と異なった値として認識される場合があります。そ れに起因して、インストールの過程でnewfsを実行した時にリブートがかかる ことがあります。そのような場合は、fdiskを実行する部分で、``G''を押し、 正しいハードディスクのパラメータを入力して下さい。正しいシリンダ数は、 DOSのformatコマンドで領域を確保しておくことによって確認することができ ます。シリンダ数が実際より多い場合はインストールできないので注意して下 さい。 *注意* DOSのformatコマンドで得られるシリンダ数は、ハードディスクドライブが SCSIコマンドの``mode sense''に対して答えるドライブパラメータ(page code 04; Rigid Disk Drive Geometry Page)の値と異なることがあります。 FreeBSD(98)は、DOSのformatコマンドで得られるドライブの諸元と同じもの (初期化時にBIOSによって設定されます)を使用し、ディスクドライブの返す値 は使用しません。必ず、実際に使用するハードディスクとI/Fボードの組合せ で、DOS上で確認して下さい。 4. 386BSD(98)からのバージョンアップ 4.1. 386BSD(98)からFreeBSD(98) 2.0以降にバージョンアップしたいのです が簡単に移行できますか? 残念ですが簡単ではありません。全てインストールし直した方が楽です。特に ルートパーティションの必要量が大きくなっています。386BSD(98)-C2の時に 8MBしかとっていない場合は不可能です。ルートパーティションのサイズが十 分であれば不可能ではありませんが、OS標準のバイナリーを入れ換えるだけで なく、ほとんど全てのアプリケーションをメイクし直す必要がありますので、 それなりの覚悟が必要です。しかし、FreeBSD(98) 2.0.5にすれば、 o 安定したカーネル(ほとんど落ちません) o 高速化されたファイルシステム o シェアードライブラリー o 改善された仮想メモリー o XFree86-3.1(98)でPWのメモリアクセス動作ができる o ローダブルカーネルモジュール o Over 16MB対応 o Copyright USLの恐怖からの解放 o NIS o その他の新機能や新コマンド o 豊富なコンパイル済みバイナリパッケージ が手にはいるので、苦労するだけの価値はあると思います。 386BSD(98)か らのバージョンアップを行なう場合は、インストールし直すことを強く推 奨します。たとえルートパーティションサイズが十分であったとしても、 不具合を発生させる危険があります。 4.2. 386BSD(98)を使っていたのですが、覚悟を決めてFreeBSD(98)をインス トールしました。ただ、アプリケーションソフトの使い回しをしようとしたの ですが、386BSD(98)のバイナリを実行すると、``syslog: /etc/spwd.db: Inappropiate file type or format''という表示が表れて、画面が乱れてしま います。どうしたらいいですか? これは、386BSDとFreeBSDで、データベースの構造が変わっているため、避け ることができません。解決するには、問題となるアプリケーションソフトをメ イクし直すしかありません。(メイクし直す前に、目的のものがバイナリパッ ケージにないか確認してみるとよいと思います。) 4.3. [2.0.5] 386BSD(98)からFreeBSD(98) 2.0.5にバージョンアップしたの ですが、386BSDのアプリケーションを実行すると、``Termcap entry too long''と表示されて、Segmentation faultを起こします。 libtermcapをリンクしている実行ファイルは作り直す必要があります。 5.旧バージョンのFreeBSD(98)からのバージョンアップ 5.1. FreeBSD(98) 1.1.5.1からバージョンアップしたいのですが簡単に移行 できますか? 原則として、バージョンアップは推奨しません。基本的にはインストールし直 して下さい。ただし、ルートパーティションが18MB以上あれば、移行そのもの は比較的楽に行なえます。基本的にはローカルな設定ファイルのバックアップ をとっておいてから、標準のバイナリーを上書きし、バックアップをとった設 定ファイルの内容を反映させれば可能です。ただ、一度2.0(というよりは、 4.4BSD)に移行してしまうと二度と1.1.5.1(というか4.3BSD)には戻れなくなり ます。システムコールは1.1.5.1と互換性のあるものが用意されていますが、 2.0において1.1.5.1でメイクしたさまざまなアプリケーションが正常に動作す るかどうかはわかりません。 boot.flpを使用し、標準の手順でインストールを行なうと、全てのパーティ ションに対してnewfsを実行するので、ハードディスクの内容は全て消去され ます。インストール時にnewfsを実行しないように指定することも可能です が、ルートパーティションだけはかならずnewfsが実行されますので注意して 下さい。これだけの情報で確実にバージョンアップができるという自信のある 方以外はインストールし直した方が無難です。注意すべき点は、一度バージョ ンアップ作業を始めたらもう戻れないことです。特に、fsck -c 2として、 ファイルシステムを4.4BSDの形式にコンバートすると二度と戻れなくなってし まいます。また、fsck -c 2としてから再起動する前に必ず2.0のブートブロッ クを書き込んでおく必要があります。これを忘れるとすべてインストールし直 しになります。 5.2.覚悟を決めてインストールし直す時、アプリケーションやデータのほ か、/etcディレクトリーの下の各種設定ファイルもバックアップをとろうと思 います。どのファイルのバックアップをとればいいですか? ``4.4BSD System Manager's Manual(SMM)''には、4.3BSDから4.4BSDに移行す る際、どのファイルのバックアップをとるべきか記されています。それによれ ば、 /etcの下の下記のファイルのバックアップをとる必要があるとされてい ます。 (4.3BSDから4.3BSD-Renoで変更のあったファイルは、SMMの記述を変更 しています) /root/.cshrc (1) /root/.login (1) /root/.profile (1) /root/.rhosts (1) /etc/disktab (2) /etc/fstab /etc/ftpuser (1) /etc/gettytab (2) /etc/group /etc/hosts (1) /etc/hosts.equiv (1) /etc/hosts.lpd (1) /etc/inetd.conf /etc/named (1) /etc/netstart (1) /etc/networks (1) /etc/passwd /etc/master.passwd /etc/printcap /etc/protocols (2) /etc/rc /etc/rc.local /etc/rc.serial /etc/remote (1) /etc/services (2) /etc/shells (2) /etc/syslog.conf /etc/ttys /etc/termcap /etc/aliases /etc/crontab /etc/sendmail.cf これらのファイルには、そのままFreeBSD(98) 2.0で使用できるものと、変更 を要するかあるいは、FreeBSD(98) 2.0のファイルにローカルな設定を反映さ せる必要があるものとがありますので注意して下さい。なお、このような手段 の安全性は確認していません。各自の責任において作業を行なって下さい。 (参考) 4.4BSD SMMによると、上記リストでファイルの後に(1)と書かれたファイル は、 4.3BSDのものを4.4BSDで使用することが可能であるとされています。ま た、 (2)と書かれたものは、ローカルの設定を4.4BSDのファイルに反映させる 必要があるとされています。(無印は、``特別な作業を必要とする''とされて いるファイルですが、FreeBSD 1.1.5.1は、4.3BSDではなく、より新し い、4.3BSD-Renoに相当するため、上記のファイルにはすでに4.4BSDと同じに なっているものがあります。したがって、無印でも実際には(2)や(1)と変わり ないものが多くあると思います。同様に、(2)のファイルの中には、(1)のよう にそのまま使用できるファイルもあると思います。また、(1)と書かれていて も、実際には、ローカルな設定をFreeBSD(98) 2.0のファイルに反映させた方 がよいばあいもあります。/etc/netstartがその例です。) 5.3. FreeBSD(98) 2.0をフロッピーディスクから起動し てFreeBSD(98)1.1.5.1のハードディスクをマウントしました。しかし、バー ジョンアップするつもりが無いので終了しました。その後でFreeBSD(98) 1.1.5.1 を起動したらfsckのところから先に進まなくなってしまいました。ど うしたらいいのでしょうか? これは、4.3BSDと4.4BSDのファイルシステムの取り扱いが変更になっているの が原因です。FreeBSD(98) 2.0では、unmountしたディスクにFreeBSD(98) 1.1.5.1が理解できないフラグをスーパーブロックに書き込みます。そのた め、 FreeBSD(98) 1.1.5.1では、スーパーブロックが壊れていると認識し上記 の症状が発生します。この場合は、シングルユーザモードで起動し、手動 でfsckを実行して下さい。本来は、表示内容を吟味した上で``y''また は``n''と答えるべきですが、全ての質問に``y''と答えると修復できる場合が ほとんどです。(fsckを実行する時に``-y''オプションを指定すれば、全ての 質問に``y''と答えたことになります。ただし、重大な障害を引き起こす危険 性を否定できないのでこのような使用は極力避けて下さい。) 5.4. FreeBSD(98) 2.0上で動作する FreeBSD(98) 1.1.5.1のアプリケーショ ンを教えて下さい。 FreeBSD(98) 1.1.5.1からFreeBSD(98) 2.0へのバージョンアップではもとにな るオペレーティングシステムを4.3BSD-Reno(Network Release 2)から 4.4BSD-Liteに変更しています。その結果システムコールが大幅に変更されま した。古い形式と互換性のあるシステムコールが用意されてはいますが、本当 に実行できるかどうかは各アプリケーションによります。したがって、完全に 動作することを保証できるアプリケーションはありません。ただ、大部分のア プリケーションは問題なく使用できているようです。 5.5. FreeBSD(98) 1.1.5.1のアプリケーションを実行しようとした ら``.so''のついたファイルがないと表示されて実行できません。 バージョンアップにともないシェアードライブラリーが変更になりました。 FreeBSD(98) 1.1.5.1で使用していた lib*.so.1.1などをすべて/usr/libの下 にコピーして下さい。FreeBSD 1.1.5.1のシェアードライブラリーがない場合 は、``compat1xdist''をインストールして下さい。内容はlib*.so.1.1です。 5.6. FreeBSD(98) 1.1.5.1からFreeBSD(98) 2.0にバージョンアップしたらプ リンターが使用できなくなりました。どうしてですか? これは、プリンタデバイスファイルがlpaからlptに変更になったためです。そ のため、/etc/printcapの/dev/lpa0となっている部分を /dev/lpt0に書き直す ことにより、1.1.5.1のprintcapを使用することができます。 5.7. FreeBSD(98) 2.0からFreeBSD(98) 2.0.5へバージョンアップするにはど うしたらいいですか? 原則として、バージョンアップは推奨しません。基本的にはインストールし直 して下さい。まず、最悪の自体に備えてバックアップをとって下さい。また、 /etcの中身を取り出しやすい場所(例えば/etc.OLD/)にコピーしておいて下さ い。そしてシングルユーザモードで起動して、bin等のIBM用の配布物を展開し て下さい。次に、98binを展開して下さい。その後、/usr/mdecに移動してブー トコードを書き換えて下さい。このままでは、/etcの設定ファイルが上書きさ れてしまうので、あらかじめコピーしておいてファイルから/etcにコピーした り、ローカルの設定を新しいファイルに反映させて下さい。/etcの下のファイ ル内容はバージョン2.0と微妙に変わっていますので注意して下さい。多くの 設定が/etc/sysconfigというファイルにまとめられています。古いファイルを 使用することは可能ですが、今後、パッチ等が公開された時に合わなくなる可 能性がありますので、新しいファイルを使用することを推奨します。また、 WIDE版sendmailを使用している場合は、/usr/sbin/sendmailがWIDE版sendmail になるように変更して下さい。これを忘れるとsendmail.cfの内容が正しく実 行されないことがあります。 5.8. [2.0.5] FreeBSD(98) 2.0.5Rにバージョンアップした ら、386BSDやFreeBSD 1.Xで作成したバイナリを実行した時に``Termcap entry too long''と表示され、Segmantation faultを起こします。 libtermcapをリンクしているバイナリは、コンパイルし直して下さい。 6. FreeBSD(98)の使用 6.1.起動したら``add net 224.0.0.0: gateway hostname''と表示されまし た。こんなアドレスを設定した覚えはないのですがどうしたらいいですか? これは、IPマルチキャストルーティングの設定を/etc/netstart内で行なって いるために表示されます。 [2.0] /etc/netstartを見ると route add 224.0.0.0 -netmask 0xf0000000 -interface $hostname という部分があります。IPマルチキャストルーティングを使用しない場合はコ メントアウトしてかまいません。 [2.0.5] /etc/sysconfigを見ると、 static_routes="multicast loopback" route_multicast="224.0.0.0 -netmask 0xf0000000 -interface ${hostname}" route_loopback="${hostname} localhost" という部分があります。IPマルチキャストルーティングを使用しない場合は、 static_routes="loopback" としてかまいません。 6.2.ときどき"pc98 strayintr 7"と表示されます。これはなんですか? 本体と拡張ボードの組合せによっては発生することがあります。特に速い機種 と緑電子の554 SCSI I/Fや、エレコムのEIF-98AW SCSI I/Fの組合せでよく起 こるという報告があります。多くの場合は、発生頻度が低いので無視してかま わないのですが、頻繁に発生し使用に耐えない場合はI/Fを別の機種に替える 必要があります。 6.3. MS-DOSのディスクを使用できますか?。 はい。ただし、FreeBSD(98)では、msdosfsが不安定で、大きなファイルの移動 を行なったり、複数のプロセスで同時にアクセスした時に、msdosfsを使用し ているプロセスがハングアップすることがあり、ディスクを破壊する危険があ ります。また、圧縮されたファイルシステムは巨大なファイルがあるだけで、 使用できません。 6.4. DOSのパーティションしか無いハードディスクをマウントしたいのです がどうしたらいいですか? <2.0>カーネルの方で自動的にパーティション割り付けを行ないます。以前の バージョンのようにダミーのdisklabelを作成する必要がありません。例え ば、 領域1 MS-DOS 80MB 領域2 MS-DOS 120MB というように領域確保が行なわれていたとします。このようなディスクをマウ ントしようとした時点で、 sd#e 領域1 80MB sd#f 領域2 120MB と当てはめられます。したがって、領域1をマウントする場合は、 # mount -t msdos /dev/sd#e /dos の様にします。ただし、 sd#e 領域1 sd#f 領域2 sd#g 領域3 sd#h 領域4 というように、最大で4つの領域しか使用できません。 <2.0.5>ハードディスクの領域は、 sd#s1 領域1 sd#s2 領域2 sd#s3 領域3 sd#s4 領域4 sd#s5 領域5 sd#s6 領域6 sd#s7 領域7 sd#s8 領域8 というデバイスが表します。したがって、 領域1 MS-DOS 80MB 領域2 MS-DOS 120MB という状態で領域1をマウントする場合は、 # mount -t msdos /dev/sd0s1 と実行して下さい。 6.5. RS-232Cを使用したいのですがうまく動きません。 FreeBSDは標準でRS-232CのCD(carrier detected)を監視するモードになってい て、CDがアクティブになるまで回線を使用することができません。CDを監視し ないモードにするため、 [2.0の場合] stty -f /dev/ttyi00 clocal [2.0.5の場合] stty -f /dev/ttyid0 clocal を直接実行するか、/etc/rc.serialに記述してからリブートして下さい。 6.6. "GPL_MATH_EMULATE"を指定してカーネルを再構築したのに X を使うと 浮動小数点演算のエラーが出るのはどうしてですか? GPL_MATH_EMULATEを指定する時は、MATH_EMULATEを消すかコメントアウトして 下さい。同時に指定するとMATH_EMULATEを指定した時と同じ浮動小数点エミュ レータが使用されます。また、アプリケーションソフトウェアによっては、 GPL_MATH_EMULATEを指定しても実行できないものがあります。できる限り数値 演算コプロセッサを使用して下さい。 6.7. MOを使うと起動時に止まってしまいます。どうしたらいいですか? PC98用のMOドライブの中には、PC98モードとIBMモードやMacモードなどを切替 えるようになっている場合があります。そのようなドライブをPC98モードで使 用すると使用できない場合があります。ディップスイッチなどでIBMモードや Macモードなどに切替えて使用して下さい。また、SCSIボードの設定で転送モ ードをバスマスタにしていると起動時に止まることがあります。そのような場 合には、DMA転送モードで使用して下さい。(DMA転送モード以外は正式にはサ ポートしていません) 6.8. ALTキーやENTERキーはどこにありますか? ありません。一般に、IBMの``ALTキー''は、``GRPH''キーで代用します。ま た、 ENTERとしてはリターンキー(ひんまがった矢印の書いてあるキー)を用い ます。 6.9.仮想コンソールはどうやって使うのですか? CTRLキーとGRPHキーを押しながらファンクションキーを押して下さい。画面が 切り替わります。 6.10.リターンキーを押してもコマンドが実行できません。 カーソルが一段下がるだけで左端に移動しない場合は、リターンキーの代わり にCtrl-Jを使用して下さい。もし、これでうまくいったのであれば、 reset として端末の設定を直して下さい。 6.11.ハングアップしてしまいました。助けて下さい。 まず、落ち着いて下さい。決して``暴走即リセット''ということをしてはいけ ません。とりあえず、Ctrl-CやCtrl-DあるいはCtrl-\などのプログラム終了に アサインされている機能キーを押してみて下さい。それでもダメなら仮想コン ソールを切替えてログインするかネットワーク経由でログインしてみて下さ い。もし、ログインできたらpsコマンドを用いて問題を起こしているプロセス のPIDを調べて、いろいろなシグナルを送ってみてください。たとえば、 kill -INT kill -HUP kill -QUIT kill -TERM とやってダメなら kill -KILL とやってプロセスを殺して下さい。ただ、拡張ボードの設定ミスなどでカーネ ル自体がハングアップしている場合があります。それを調べるには、キーボー ドのCAPSやカナキーを押してみて下さい。もし、カーネル自体がお亡くなりに なっている時はLEDが点滅しません。その時はリセットするしかありません。 6.12. timedをスレーブモードで使用したらいきなり時刻が9時間進んでしま いました。どうしたらいいですか? 内蔵時計をJSTにして、インストール時の時刻設定で、内蔵時計が地方時を表 すようにした場合、このような現象が発生します。簡単な対策は、内蔵時計が UTCを表すようにすることです。rootになり、tzsetupを起動します。すると、 Is 10:11:57, Fri Jan 20 1995 the correct current date and time [yn]? (n) の様に表示されますので、nと答えて下さい。続いてメニューが表示されるの で、98と入力し、``Select CMOS time status (UTC or local)''を選択しま す。すると、 Do you want a local CMOS clock [yn]? (y) と表示されるので、nと入力して下さい。再びメニューが表示されたら、4と入 力し、``Asia and Middle East''を選択します。すると、都市のリストが表示 されるので、Tokyoと入力して下さい。すると、 I think the time in Tokyo is: Fri Jan 20 19:16:26 JST 1995 Is this what you wanted [yn]? (y) と表示されるので、正しい地方時であればyと答えて下さい。再びメニューに 戻ったら、99と入力して終了して下さい。ただし、内蔵時計をUTCにすると、 DOSを起動した時にもUTCになります。 6.13. MOをマウントするにはどうしたらいいのですか? ディスクのパーティション情報を書き込んだファイルシステムであれば、 mount /dev/sd2a /mnt のようにして、マウントできます。すべての領域をFreeBSD(98)にしている場 合や、MS-DOSのMOの場合は、FreeBSD(98)のバージョンにより異なっていま す。 [2.0] ``ディスク全体''は、dパーティションが表します。したがって、 (全 体がFreeBSDの場合) mount /dev/sd2d /mnt (MS-DOSのMOの場合) mount -t msdos /dev/sd2d /mnt となります。 [2.0.5] FreeBSD(98) 2.0.5では、ディスクの領域の取り扱いが変更になりま した。``sd#''のような、アルファベットのつかないファイルがディスク全体 を表すようになります。したがって、 (全体がFreeBSDの場合) mount /dev/sd2 /mnt (MS-DOSのMOの場合) mount -t msdos /dev/sd2 /mnt となります。 6.14. UFSのMOをマウントしたのですが、なぜか認識されません。mountコマ ンドではマウントされているように見えるのですが、umountを実行してもマウ ントされていないことにされてしまい、取り出すこともできません。 UFSのMOを書き込み禁止にしてマウントするとこのような現象が発生します。 システムを再起動してMOディスクをとりだし、書き込み可能にしてからマウン トして下さい。 6.15. 486SXを使用しているのに起動時には486DXと表示されますが問題ない でしょうか? CPUクラスの表示の際、486SXと486DXの区別を行なわずに、486DXと決め打ちし ています。動作には支障ありません。 6.16. FreeBSD(98)を``ディスクレス''で使用することはできますか? [2.0]いいえ。netbootは移植されていません。 [2.0.5] FreeBSD(98) 2.0.5R-RELEASEには、netbootのコードが入っていま す。ただし、まだ完全なものではなく、さらに使用できるネットワークカード が限られています。 6.17. MS-DOS上からFreeBSD(98)を起動することはできますか? いいえ。現在のところdosブートは移植できていません。 6.18.カレントディレクトリのa.outを実行しようとしたのですが、``Command- not found''と表示されるのはどうしてですか? サーチパスにカレントディレクトリが含まれていないからで す。``./a.out''のように実行して下さい。サーチパスにカレントディレクト リを示す``.''を入れると、セキュリティホールになる可能性があるので注意 して下さい。スタンドアロンで、一人だけで使用しているのであればそれほ ど、問題ないのですが、そうでない場合は、サーチパスにカレントディレクト リを入れることは極力避けた方がよいでしょう。特に、特権ユーザは含めない べきです。 6.19.起動時にいつも``WARNING: / was not properly dismounted''と表示さ れてしまうのはなぜですか? これは、前回の終了時にルートパーティションのマウントを正しくはずしてい ないことを示すメッセージです。FreeBSDでは、システムの終了時にすべての ファイルシステムのマウントを解除します。このとき、各ファイルシステムの スーパーブロックに``clean flag''というフラグを立てます。起動時に行なわ れるファイルシステムのチェックでは、このフラグが立っていれば、正常にマ ウントが解除されたファイルシステムであるとして何もしません。質問にある ようなメッセージが出る原因としてもっとも可能性が高いのは、 正しい終了手順を行なっていないこと です。FreeBSDを終了させる場合は、shutdown(8)やhalt(8)を使用します。例 えば、 shutdown -h now システムを直ちに終了させます。(operatorグループに属す るユーザが行なえます。) halt 同じ。ただし、rootしか実行できない。 shutdown -r now システムを再起動します。 reboot 同じ。ただし、rootしか実行できない。 という使い方があります。前2者の場合、終了処理が行なわれた後、 The operating system has halted. Please press any key to reboot. と表示されます。この表示が出てから電源やリセットボタンを操作して下さ い。絶対に、 いきなり電源ブチッ暴走即リセット ということを行なってはいけません。 6.20.終了手順を踏まなければならないことは理解しているのですが、どうし てもリセットを行なわなければならない事態に陥ってしまいました。何か注意 することはありますか? いきなり電源を切ってはいけません。 ちゃんと、お祈りしてから切りましょう。 リセットしなければならないと思ってから、しばらく放置して下さい。どれく らいの時間放置すればよいのかはっきりしたことはわかりませんが、1分程度 待って下さい(これが十分かどうかはわかりません)。運がよければこの間にま だファイルシステムに書かれていなかったデータがディスクに書き込まれま す。すると、ファイルシステムの整合性を損なうことがなくなるので、起動時 には ``clean flag''が立っていないこと以外は正常である可能性が高くなり ます。 6.21. fsckを実行すると``CLEAN FLAG NOT SET IN SUPERBLOCK''と表示され るのはどうしてですか? 使用中のファイルシステムに対してfsckを実行するとこのメッセージが表示さ れます。``CLEAN FLAG''は正常にマウントを外すことができた時に、ファイル システムのスーパブロックにセットされるフラグです。ファイルシステムを使 用している間はこのフラグがセットされていないため必ず上記のメッセージが 表示されます。基本的にfsckは使用されていないファイルシステムに対しての み実行して下さい。 6.22.カーネルを再構築する時、DRQやIRQの設定を間違えてしまいました。ど うしたらいいですか? このまま起動すると、デバイスによっては正しい値を取得できない場合があ り、ハングアップしたり、再起動したりすることがあります。起動時に、 Boot: と表示された時に、 kernel -c と入力して下さい。すると、 config> と表示されます。ここで、 list と入力すると、 Device port irq drq iomem ... fdc0 0x90 11 2 0x0 ... sbic0 0xcc0 5 0 0x0 ... のように、カーネルに組み込まれているデバイスとI/Oポート、割り込み番号 等が表示されます。詳しくはhelpと入力すると表示されます。 すべての設定が終ったら、 quit と入力して下さい。FreeBSD(98)が起動します。 6.23. [2.0.5] 正常にインストールができたと思ったのですが、CD-ROMを入 れないとシングルユーザモードに落ちてしまうのはなぜですか? インストーラの仕様により、CD-ROMを用いてインストールすると、/etc/fstab に登録されてしまい、CD-ROMにアクセスできない場合エラーになります。 /etc/fstabを見ると、 /dev/cd0a /cdrom cd9660 ro 1 1 という項目があるので、削除すれば正常に起動できるようになります。 6.24. IDEハードディスクとSCSIハードディスクを使用し、SCSIハードディス クにFreeBSD(98)をインストールした場合、FreeBSD(98)を起動するにはどうし たらいいですか? FreeBSD(98)用に領域を確保(DOSで行なったかインストーラのみで行なったか は関係ありません)してある場合は、ハードディスク起動メニューを用いて装 置を変更すればFreeBSDの領域が現れるので、カーソルキーで選択してリター ンキーを押すことによりFreeBSD(98)を起動することができます。もし、イン ストール時にハードディスクをすべてFreeBSD(98)で使用する設定にした場合 (領域を確保せず、``Entire Disk''を用いた場合)は、この方法が使えないの で、フリーソフトのHSB.EXEのような再起動ツールを用いる必要がありま す。HSB Version 3.5であれば、DOS上で HSB S と実行すればSCSIハードディスクから起動します。このとき、ID番号のもっと も若い装置が選択されるので注意して下さい。 * HSBはMasao氏の作成したソフトウェアです。 6.25.一般ユーザでログインすると、画面が乱れたりSHIFT+Eが入力できませ ん。でもrootでログインすると正しく動作します。どうしたらいいですか? インストーラのメニューの``Add User''を用いて一般ユーザを登録した場合、 画面が乱れたり、キーボード入力の一部が期待していない文字になったりする ことがあります。そのような場合は、rootでログインし、当該ユーザのホーム ディレクトリ中の.loginをviなどで編集し、 stty status '^T' crt -tostop を stty crt erase ^H のように(rootと同じ)変更するか、削除して下さい。 7.アプリケーション 7.1. Xは使えますか? はい。XFree86-3.1.2をPC98用に移植したXFree86-3.1.2(98)があります。 FreeBSD(98)とは別のグループが行なっています。対象機種やインストール方 法などはXFree86-3.1.2(98)に附属しているドキュメントを参照して下さい。 問い合わせ先は PC-VAN JUNIX 386BSD会議室 x98@mech.titech.ac.jp になっています。できるだけPC-VANのほうに連絡して下さい。 7.2. Nemacs/Mule-1.0をメイクしたら、失敗しました。DYNAMICがどうのこう のというエラーメッセージが出ていました。これは何ですか? temacsは、実行後メモリーの中身をダンプしてそれを実行ファイルの出来上が りにします。したがって、シェアードライブラリーを使う形式にすることがで きません。configファイルのパッチがかつてfjにながれたそうです。 Mule-2.0以降は標準でFreeBSDをサポートしているのでドキュメントにした がって作成すれば問題ありません。CONFIGURATION-NAMEはi386-freebsdとして ください。 7.3. portsはどうやって使うのですか? portsは/usr/portsの下におかれることを前提に作成されています。目的のア プリケーションのディレクトリに移動して``make一発''で作成できます。この 時、 /usr/ports/distfilesにアーカイブ等がない場合、ftpで自動的に取って きます。ただし、ほとんどの場合海外にアクセスすることになるので、できる 限り同じものをネットワーク的に近いサイトから取得しておいてください。必 要に応じ、/usr/share/FAQの下のports.FAQや、/usr/share/mk/bsd.port.mkを 参照して下さい。 7.4. portsの下のアプリケーションをftpサイトからとってきました。展開し てREADME.FREEBSDを読むとメイク一発のように書いてあったのですが何故か異 常終了してしまいます。何が悪いのですか? portsの下のアプリケーションは、FreeBSDに付属のmake(通称ucb make)を使用 することが前提になっています。そのため、GNU makeを使うと異常終了してし まうことがあります。 7.5.付属のmakeではアプリケーションが作成できません。どうしたらいいので すか? アプリケーションソフトの中には、GNU makeを使用することを前提にしている ものが多くあります。GNU makeをインストールして下さい。詳しくは、GNU makeに付属のドキュメントを参考にして下さい。 7.6.アプリケーションやFreeBSDのドキュメント中に``ps(1)を実行しろ''とい うような表現がありました。そこで、``ps(1) ''とタイプしたら``Badly placed ()'s''と表示され実行できません。どうしてですか? この表現は、``マニュアルの1章にあるpsというコマンドを実行しろ''という ことです。したがって、''ps(1) ''ではなく``ps ''とタイプしなけ ればいけません。 一般にxxx(#)という記述は、マニュアルページの#章に書かれているxxxという コマンドという意味で用いられます。実際にマニュアルページを参照したい場 合は、''man # xxx''と実行します。これは、time(1)というコマンド とtime(3)というライブラリ関数のように、同じ項目が複数の章にあるのを区 別するためです。 7.7. FreeBSD(98)用のバイナリーキットはありますか? はい。FreeBSD(98)専用というわけではなく、FreeBSD用のバイナリー を``FreeBSD(98)はどうやったら入手できますか?''で示したftpサイトの中に は置いてあるところがあります。FreeBSDのディレクトリの中 に、``packages''あるいは、``packages-2.0''のようなディレクトリがありま す。その中にFreeBSD用のバイナリーキットがあります。また、 packages-1.1やpackages-1.1.5というディレクトリの中には、FreeBSD 1.1や FreeBSD 1.1.5.1のために作成されたバイナリーキットがあります。さらに、 packages-1.1jというディレクトリの中には、日本で作成されたバイナリー キットがあります。これらのバイナリーキットは、pkg_addというコマンドで インストールすることができます。また、pkg_infoというコマンドで、パッケ ージの概要を知ることができます。もし、pkg_addでインストールしたバイナ リーを削除したいときは、pkg_deleteで消去することができま す。packages-1.*を使用する場合は、compat1xdistがインストールされている 必要があります。 7.8. XFree86(98)を実行しようとしたら、``MIT-SHM extension disabled due to lack of kernel support''という表示がでました。なにか問題がある でしょうか? XFree86のREADME.FreeBSDに書かれているように、カーネル のconfigurationファイルに、 options SYSVSHM # System V shared memory options SYSVSEM # System V semaphores options SYSVMSG # System V message queues を加えて、カーネルを再構築して下さい。(再構築しなくても多くのバイナリ は実行できますが、表示は消えません。) 7.9. Wnn-4.2がよく落ちます。 原因は不明です。次のバージョンを待ちましょう。 7.10.アプリケーションをコンパイルする時に注意することはありますか? 4.3BSDから4.4BSDの変更点として、ファイルのオフセットが64bitになったこ とがあります。その影響をまともに受けるのがlseek(2)システムコールです。 4.4BSDに対応していないアプリケーションでは、lseekの第2引数をlongにして いる場合があります。lseekの第2引数を``off_t''でキャストして下さい。ま た、 sys_errlistが変更になっています。外部変数の宣言をしている部分を、 extern const char* const sys_errlist[]; と変更して下さい。 7.11. XFree86(98)で端末エミュレータやMuleなど、いろいろ開いて使用して います。あるウィンドウから別なウィンドウに移動して作業を行なったり、 ウィンドウを移動させると頻繁にディスクにアクセスし、止まったようになる のはどうしてですか? 多量のメモリを消費し、スワップが発生しています。FreeBSDは、実際に搭載 したメモリのほか、ハードディスクを``メモリの代用''として使用していま す。メモリが足らなくなると、使われていないメモリの内容をハードディスク に書きだし、必要になった時に再びメモリに読み込みます。このような現象が 頻繁に発生すると、この質問のように、一瞬またはしばらく止まったように見 えます。メモリを増設するとこの現象が少なくなります。 7.12. ktermでマウスをドラッグしてメニューを表示させたのですが、項目を 選択できないのですがどうしたらいいですか? キーボードのCAPSが有効になっていないか確認して下さい。CAPSがONの状態で はメニューの項目を選択することができません。 7.13. printf文を使用したアプリケーションの出力で、符号が含まれている 場合に、精度で指定した桁数よりもすくなく表示されるのですが、どうしたら いいですか? これは、libcのvfprintf.cのバグです。以下の非公式パッチによりISO/ANSI/ JISに適合した出力になります。まず、/usr/src/lib/libc以下が展開されてい る必要があります。/usr/src/lib/libc/stdio.cで以下のパッチを当てて下さ い。そして、/usr/src/lib/libcでmakeしてください。次に、シングルユーザ モードに移り、make installしてください。マルチユーザモードでインストー ルするとハングアップすることがあります。また、/binや/sbinのバイナリの ように、静的リンクされた実行ファイルはコンパイルし直さない限り、変更の 影響は受けません。(変更の必要があればコンパイルし直して下さい。) ______________________________________________________________________ ---------- ここから ---------- *** vfprintf.c.orig Tue Nov 7 19:10:58 1995 --- vfprintf.c Tue Nov 7 19:12:48 1995 *************** *** 302,308 **** u_quad_t uqval; /* %q integers */ int base; /* base for [diouxX] conversion */ int dprec; /* a copy of prec if [diouxX], 0 otherwise */ - int fieldsz; /* field size expanded by sign, etc */ int realsz; /* field size expanded by dprec */ int size; /* size of converted field or string */ char *xdigs; /* digits for [xX] conversion */ --- 302,307 ---- *************** *** 695,706 **** * Compute actual size, so we know how much to pad. * fieldsz excludes decimal prec; realsz includes it. */ ! fieldsz = size; if (sign) ! fieldsz++; else if (flags & HEXPREFIX) ! fieldsz += 2; ! realsz = dprec > fieldsz ? dprec : fieldsz; /* right-adjusting blank padding */ if ((flags & (LADJUST|ZEROPAD)) == 0) --- 694,704 ---- * Compute actual size, so we know how much to pad. * fieldsz excludes decimal prec; realsz includes it. */ ! realsz = dprec > size ? dprec : size; if (sign) ! realsz++; else if (flags & HEXPREFIX) ! realsz += 2; /* right-adjusting blank padding */ if ((flags & (LADJUST|ZEROPAD)) == 0) *************** *** 720,726 **** PAD(width - realsz, zeroes); /* leading zeroes from decimal precision */ ! PAD(dprec - fieldsz, zeroes); /* the string or number proper */ #ifdef FLOATING_POINT --- 718,724 ---- PAD(width - realsz, zeroes); /* leading zeroes from decimal precision */ ! PAD(dprec - size, zeroes); /* the string or number proper */ #ifdef FLOATING_POINT ---------- ここまで ---------- ______________________________________________________________________ 7.14. f2cやg77で浮動小数点数の表示がおかしくなるのはどうしてですか? libcのバグの影響が考えられます。``printf文を使用したアプリケーションの 出力で、符号が含まれている場合に、精度で指定した桁数よりもすくなく表示 されるのですが、どうしたらいいですか?''を参考にして下さい。 8.ネットワーク 8.1. FreeBSD(98)からイーサネットを用いてインターネットに接続すること は可能ですか? はい。このFAQの``ネットワークボードは何が使用できますか?''に記載され ているイーサネットボード(LANボード)を使用すればFreeBSD(98) 2.0/2.0.5を 使ってIP接続することができます。 FreeBSD(98)は、標準の配布物でファイル サーバ、メールサーバ、ネームサーバとして使用することも可能です。また、 パッケージには、popperがあり、 popサーバにもなります。 8.2. FreeBSD(98)でIP接続する手順がよくわからないので教えて下さい。 基本的にBSDネットワーキングの設定と全く同じです。ただし、一部に FreeBSD(98)固有の事項があります。FreeBSD(98)配布物の中に、 network.98 というドキュメントがあります。この中にIP接続までの手順が解説してありま す。ただし、FreeBSD(98)に依存する部分に重点がおかれていますので、一般 的なことについては、マニュアルページや市販の解説書などを参考にして下さ い。 8.3. NFSは使えますか? はい。FreeBSD(98)は4.4BSD-Liteをベースにしているので、NFSはUDPとTCPの いずれのプロトコルでも使用できます。ただ、exportsの書き方がSunのものと は異なっていますので、注意する必要があります。簡単な解説がnetwork.98に 書いてあります。 8.4. NISは使えますか? [2.0] はい。クライアントにはなれます。しかし、ypserv等がないため、サー バにはなれません。 [2.0.5以降] はい。クライアントにもサーバにもなることができます。 8.5. SLIPは使えますか? はい、標準でサポートしています。ただし、カーネルのconfigurationファイ ルに pseudo-device sl 1 と記述されている必要があります。 8.6. PPPは使えますか? はい、標準でpppdがついてきます。ただし、カーネルのconfigurationファイ ルに pseudo-device ppp 1 と記述されている必要があります。 [2.0.5以降] FreeBSD-2.1からIIJ-PPPを標準でサポートしていま す。IIJ-PPPを使用する場合は、カーネルのconfigurationファイルに pseudo-device tun 1 と記述しておく必要があります。 8.7. WIDE版sendmailを使いたいのですが、FreeBSD用のWIDE版Makefileがあ りません。どうしたらいいですか? sendmail 8.7.1+2.6Wbeta4なら、修正を行なわずにドキュメントにしたがって 作成することが可能です。また、sendmail 8.6.12+2.4Wが以下のパッチで動作 しています。ただし、以下のパッチは非公式なものであり、使用を推奨するも のではありません。また、WIDE版sendmailの開発元とは一切無関係です。 ______________________________________________________________________ ---- cut here ---- cut here ---- cut here ---- cut here ---- diff -arcN ../src.orig/Makefile.WIDE.BSDI ./Makefile.WIDE.BSDI *** ../src.orig/Makefile.WIDE.BSDI Sat Jan 21 01:56:01 1995 --- ./Makefile.WIDE.BSDI Sat Jan 21 03:16:17 1995 *************** *** 72,79 **** OBJADD= ################### end of user configuration flags ###################### ! ! CFLAGS= -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF} SRCS= alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \ deliver.c domain.c envelope.c err.c headers.c macro.c main.c \ --- 72,81 ---- OBJADD= ################### end of user configuration flags ###################### ! ## unofficail patch for FreeBSD 2.0 ! ## by KATO T. ! ## FreeBSD 2.0 has uname ! CFLAGS= -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF} -DUSEUNAME -DMIME -DBSD4_4 SRCS= alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \ deliver.c domain.c envelope.c err.c headers.c macro.c main.c \ diff -arcN ../src.orig/conf.c ./conf.c *** ../src.orig/conf.c Sat Jan 21 01:55:50 1995 --- ./conf.c Sat Jan 21 03:15:45 1995 *************** *** 1034,1039 **** --- 1034,1047 ---- # endif #endif + /* unofficial patch for FreeBSD 2.0 + * by KATO T. + */ + #if defined(__FreeBSD__) && defined(BSD4_4) + # undef PS_STRINGS /* FreeBSD 2.0 doesn't do PS_STRINGS as we expect */ + # define PROCTITLEPAD '\0' + #endif + #ifndef PROCTITLEPAD # define PROCTITLEPAD ' ' #endif ---- cut here ---- cut here ---- cut here ---- cut here ---- ______________________________________________________________________ バージョンによりoffsetがでたり、当たらないかも知れません。 8.8.嘘つきネームサーバの対策を行なおうとして、libcをSUNSECUREを定義し てコンパイルしました。しかし、逆引きの後の正引きを行なってくれないのは どうしてですか? それは、SUNSECUREを定義しても、それを使っているところがどこにもないか らです。gethostbyaddrはIPアドレスから引いた値を無条件で返すことしかで きません。BIND-4.9.3を参考にして作成した、以下のパッチをあてることで、 SUNSECUREの定義が有効になります。なお、このパッチは非公式なものであ り、使用を推奨するものではありません。また、ネットワークの名前が取得で きなくなることがあります。 ______________________________________________________________________ ---- cut here ---- cut here ---- cut here ---- cut here ---- *** lib/libc/Makefile.orig Mon May 8 23:56:11 1995 --- lib/libc/Makefile Tue May 9 15:05:09 1995 *************** *** 8,14 **** LIB=c SHLIB_MAJOR= 2 SHLIB_MINOR= 1 ! CFLAGS+=-DLIBC_RCS -DSYSLIBC_RCS AINC= -I${.CURDIR}/${MACHINE} CLEANFILES+=tags INSTALL_PIC_ARCHIVE= yes --- 8,14 ---- LIB=c SHLIB_MAJOR= 2 SHLIB_MINOR= 1 ! CFLAGS+=-DLIBC_RCS -DSYSLIBC_RCS -DSUNSECURITY AINC= -I${.CURDIR}/${MACHINE} CLEANFILES+=tags INSTALL_PIC_ARCHIVE= yes *** lib/libc/net/gethostnamadr.c.orig Mon May 8 23:41:11 1995 --- lib/libc/net/gethostnamadr.c Tue May 9 17:24:10 1995 *************** *** 37,42 **** --- 37,46 ---- #include #include #include + #ifdef SUNSECURITY + #include + #include + #endif extern struct hostent * _gethostbyhtname __P((const char *)); extern struct hostent * _gethostbydnsname __P((const char *)); *************** *** 156,161 **** --- 160,171 ---- { struct hostent *hp = 0; int nserv = 0; + #ifdef SUNSECURITY + struct hostent *rhp = 0; + char **haddr; + char hname2[MAXDNAME+1]; + char *addr2; + #endif if (!service_done) init_services(); *************** *** 176,181 **** --- 186,213 ---- } nserv++; } + #ifdef SUNSECURITY + /* + * turn off search as the name should be absolute, + * 'localhost' should be matched by defnames + */ + strncpy(hname2, hp->h_name, MAXDNAME); + hname2[MAXDNAME] = '\0'; + if (!(rhp = gethostbyname(hname2))) { + syslog(LOG_NOTICE|LOG_AUTH, + "gethostbyaddr: No A record for %s (verifying [%s])", + hname2, inet_ntoa(*((struct in_addr *)addr))); + return (NULL); + } + for (haddr = rhp->h_addr_list; *haddr; haddr++) + if (memcmp(*haddr, + addr, INADDRSZ)== 0) + return hp; + syslog(LOG_NOTICE|LOG_AUTH, + "gethostbyaddr: A record of %s != PTR record [%s]", + hname2, inet_ntoa(*((struct in_addr *)addr))); + return (NULL); + #endif return hp; } *** lib/libresolv/Makefile.orig Tue May 9 00:48:56 1995 --- lib/libresolv/Makefile Tue May 9 00:49:19 1995 *************** *** 1,7 **** # @(#)Makefile 8.1 (Berkeley) 6/4/93 LIB=resolv ! CFLAGS+=-DDEBUG -DLIBC_SCCS .PATH: ${.CURDIR}/../libc/net --- 1,7 ---- # @(#)Makefile 8.1 (Berkeley) 6/4/93 LIB=resolv ! CFLAGS+=-DDEBUG -DLIBC_SCCS -DSUNSECURITY .PATH: ${.CURDIR}/../libc/net ---- cut here ---- cut here ---- cut here ---- cut here ---- ______________________________________________________________________ 8.9. FreeBSD(98)をディスクレスで使用することはできますか? [2.0]いいえ。netbootは移植されていません。 [2.0.5] FreeBSD(98) 2.0.5R-RELEASEには、netbootのコードが入っていま す。ただし、まだ完全なものではなく、さらに使用できるネットワークカード が限られています。 9.シリアルコンソール [2.0.5] 9.1.シリアルコンソールとは何ですか? RS-232Cポートに接続したダム端末をディスプレーやキーボードのかわりに使 用する機能です。FreeBSD(98)をファイルサーバー/メールサーバーなどとして キーボードやモニタを接続しないで使用することが可能になります。 9.2.シリアルコンソールを使用するにはどうしたらいいですか? まず、ブートブロックをシリアルブート対応にする必要があります。そのため に、まずカーネルソースの/usr/src/sys/pc98/boot/biosboot/Makefileを編集 します。 #CFLAGS+= -DUSECOMCONSOLE という部分のコメントをはずし、 CFLAGS+= -DUSECOMCONSOLE としてください。そして、 # make; make install と実行して下さい。次にconfig.98にしたがって、ブートブロックを起動ディ スクに書き込んで下さい。 例) # cd /usr/src/sys/pc98/boot/biosboot # vi Makefile # make; make install # disklabel -B -b boot1 -s boot2 sd0 これで準備ができました。これでキーボードを取り外してFreeBSD(98)を起動 すると、RS-232Cがコンソールのかわりになります。 9.3.キーボードを接続しているのにシリアルコンソールが実行される場合があ るのはどうしてですか? 原因は2つ考えられます。まず、旧型キーボードが接続されている場合です。 ブートコードでは、BIOSパラメータブロックを調べてキーボードの接続状況を 検査していますが、旧型キーボード(CAPSが機械式のキーボード)が接続されて いる場合との区別ができません。もう一つは、起動時に何らかの理由でキーボ ードを認識できなかった場合です。一部機種でFreeBSD(98)を再起動した時に キーボードが認識されないことがあります。このような時もシリアルコンソー ルが実行されます。 このようなことがあるため、標準ではシリアルコンソールをサポートしないブ ートブロックがインストールされるようにしてあります。シリアルコンソール 対応にする場合は、これらのことに注意して下さい。 10.謝辞 もし、このFAQに問題がある場合または、新たなエントリーを提出したい場合 は、電子メールを>に送って下さい。我々は皆さん の反応に感謝します。皆さんの助けがなければFAQをよりよいものにすること はできません。 FreeBSD(98) 移植チーム