--- [管理番号 1] (最終更新 1999/02/17 23:58:45) Q. FAQ って何ですか? A. Frequently Asked Questions の略で、よくある質問とその答をまとめたも のです。質問をする前に見ておかないと罰が当たることがあります。 --- [管理番号 2] (最終更新 2004/04/09 05:06:00) Q. この QandA は どうやったら手に入りますか。 A. Web、anonymous FTP で入手可能です。質問する時には入手して一通り眺めて から行動するようにしましょう。また、登録件数が多いので、探すのが面倒な 場合は、 検索するとよいで しょう (手元にある場合は grep や Namazu を使うという方法もあります)。 [Webから入手] を参照してください。 [anonymous FTPで入手] から入手できます。 また、上記サイトのミラーサイトとして、 からも入手できます。 --- [管理番号 4] (最終更新 2004/04/09 05:05:34) Q. FreeBSD に関する Web 上の情報源を教えてください。 A. FreeBSD プロジェクトの Web ページは 英語版 日本語訳 日本のミラーサイトは、 英語版 日本語訳 です。 日本語訳は、英語版に追いついていない場合があるので、最新の情報について は英語版も確認した方がよいかもしれません。 それ以外の、FreeBSD 友の会による日本独自の情報は にあります。 メーリングリストの紹介、メーリングリストや NetNews の過去メール検索、 daily Snapshots、watcher、QandA、その他が公開されています。 --- [管理番号 6] (最終更新 1999/02/17 23:58:45) Q. 困った時にはどうしたらいいですか? A. メーカの作る商用 OS ではありませんのでサポートダイヤルは存在しません。 まずは過去メールなどを検索してみましょう。 の 「ハンドブックと日本語のメーリングリストの検索」 をクリック。 その後で FreeBSD-users-jp というメーリングリストや NetNews などで質問 してみましょう。ただし 質問は 問題点だけでなく どういう境遇なのかわかる ように書きましょう。 を必ず 読んでください。 --- [管理番号 7] (最終更新 2004/04/09 05:05:18) Q. ML に参加したら、自己紹介をしないといけないのでしょうか? A. jp.FreeBSD.org が運営する ML では、自己紹介は不要です。 その他の ML については、 を参照してください。特に明記されていない場合は、自己紹介 のみのメールは送らない方がよいと思います。 --- [管理番号 8] (最終更新 1999/02/17 23:58:45) Q. 質問に答えてもらったら、お礼のメールを送った方が良いのでしょうか? A. 「ありがとうございます」だけのメールなら、ML全員宛に送る必要はあり ません。FreeBSD-users-jpだと、3000人以上に配送されることを考えてみましょ う。それよりは、まとめを作ることが期待されています。Q&A型式にまとめて あると、FAQリストに組み込んで、大勢の役に立つようになります。 --- [管理番号 9] (最終更新 2000/11/08 02:05:18) Q. 質問をしたら返事を頂きました。せっかくですのでこれを QandA に 追加したいと思います。どこに連絡したらいいでしょうか? A. QandA@jp.FreeBSD.org に内容をメールしてください。NetNews や ML には書かなくても結構です。書式については [管理番号 477] や を 参考にしてください。 --- [管理番号 10] (最終更新 1999/02/17 23:58:45) Q. FreeBSD についての公式な情報 (VersionUP などのお知らせ) が知りたい。 A. 本家には announce@FreeBSD.org という公式な連絡が流れるメーリング リストがありますが、日本にも announce-jp@jp.FreeBSD.org という メーリングリストが用意されています。前者に流れるメールは 後者にも 流れますので、日本で FreeBSD を使っている人は後者に参加して おけばいいでしょう。 参加方法は To: majordomo@jp.FreeBSD.org 本文に subscribe announce-jp というメールを出すと追加されます。 詳しくは を見てください。 --- [管理番号 11] (最終更新 1999/08/08 00:22:25) Q. jp.FreeBSD.org が運営するメーリングリストの過去メールを読みたい のですが。 A. いくつか方法がありますが、処理が軽い物から紹介します。 ここでは FreeBSD-users-jp を例にとりますが、他のメーリングリスト でも同じ方法で過去メールを見ることができます。 A1. Webで見る方法、その1 http://home.jp.FreeBSD.org/cgi-bin/showmail/users-jp/ の最後にメール番号を付けた URL にアクセスしてください。 例えば [FreeBSD-users-jp 1000] なら になります。 A2. Webで見る方法 各メーリングリストの紹介をしている から「一通毎」をたどると、 を見ることができます。メーリングリストサーバに届いた時点で更新されて います。月ごとに 1つのファイルになってますのでかなり巨大です。ここから 探すのはあまり得策ではないでしょう。また、この仕組みが動き出したのは 1997年5月 からなので それより以前のメールは入っていません。 A3. 過去メールをリクエストメールで取り寄せる方法 宛先 majordomo@jp.FreeBSD.org Subject なし 本文1行目に get freebsd-users-jp <メール番号> というメールを送ってください. To: majordomo@jp.FreeBSD.org Subject: -- get freebsd-users-jp 12345 こんな感じですね。 ** 決して FreeBSD-users-jp@jp.FreeBSD.org には送らないでください。** ただし、この方法は そのメーリングリストに参加しているメンバしか できません。数十通、数百通単位で取り寄せる場合は、FTP経由で取得して 下さい。 A4. 過去メールをFTPで取り寄せる方法 に 100通ごと圧縮したアーカイブが置いてあります。たまに抜けているメールが ありますが、それは変なメールがループして異常増殖したために、メーリングリスト サーバがダウンしてしまったものだと思ってください。実際にはその番号のメールは 誰にも配達されていませんので ご安心を。 --- [管理番号 12] (最終更新 2001/10/14 11:51:13) Q. 「どすぶぃ」で FreeBSD が動きますか? A. DOS/V というのはソフトウェア的に日本語を使えるようにした PC DOS または MS-DOS の変種のことで、ハードウェアのアーキテクチャを指す単語では ありません。ハードウェアの上で動く OS のことです。 FreeBSD は PC/AT 互換機もしくは NEC PC-98x1 上で動く独立した OS ですから DOS/V という OS の上で動くものではありません。 いわゆる「どすぶぃ」が動く i386 以降の CPU を搭載した IBM PC/AT 互換機なら、 FreeBSD が動く場合が多いです。 などが参考になるでしょう。 --- [管理番号 13] (最終更新 2000/11/08 02:05:46) Q. NEC PC-9801/9821 シリーズで FreeBSD が動きますか? A. FreeBSD を NEC PC9801/9821 用に移植した FreeBSD(98) が動きます。 いわゆる EPSON の98互換機でも動きます。 --- [管理番号 15] (最終更新 1999/02/17 23:58:45) Q. Linux と FreeBSD のどちらがいいでしょうか? A. どちらでも似たような仕事ができます。どちらを選ぶかはかなり趣味の問 題です。 NEC の PC-9801/9821 シリーズで使いたい場合 FreeBSDがいいでしょう。 Linux/98の開発が再開されましたが、FreeBSD の方が情報や実績の面で有利だと思います。 PC/AT 互換機で使いたい場合 友人や同僚に詳しい人が入れば、その人の趣味にあわせるのが良いでしょ う。周囲に詳しい人がいなければ、せっかくですからこの際 FreeBSD にし てみませんか? --- [管理番号 16] (最終更新 1999/02/17 23:58:45) Q. FreeBSD を作ってくれた人々にお礼がしたい。 A. FreeBSD project では圧倒的に人手が不足しています。あなたの貢献を求 めています。まずは を読んでみましょう。 また QandA [管理番号 554] を送ってくれるのも、貢献方法の一つと思います。 --- [管理番号 17] (最終更新 1999/02/17 23:58:45) Q. free BSD って何ですか? A. フリーな(自由にコピーできる、無料の) BSD は、FreeBSD の他に 4.4BSD-Lite や NetBSD や OpenBSD などがあります。「FreeBSD」のことを指 しているのか、これらの BSD の総称を指しているのか大変まぎらわしいので、 「free BSD」という表記を使うのは避けましょう。 --- [管理番号 18] (最終更新 2003/11/17 02:28:48) Q. 「X ウインドウズ」や「X Window」というものは存在しないと言われました。 どうして? A. X Window System は「X Windows System」ではないので、「X ウインドウズ」 は明らかに誤りです。 では「X ウィンドウ」や「X Window」ならいいかというと、それもまた不適切 です。man X には以下のように書かれています。 The X Consortium requests that the following names be used when referring to this software: X X Window System X Version 11 X Window System, Version 11 X11 X Window System is a trademark of X Consortium, Inc. つまり、X Consortium ではこのいずれかを名称として使うよう求めています。 固有名詞は正しく表記しなければ大変失礼になりますので、略して書きたい 場合は「X」や「X11」と表記することをお薦めします。 --- [管理番号 19] (最終更新 2003/11/17 02:28:48) Q. バグを発見したのですが、どうやったら早く直してもらえるでしょうか? また、私の提案を FreeBSD に反映してもらうにはどうすれば良いのでしょう? A. send-pr(1) コマンドを使って FreeBSD の開発チームに *英語で* 報告するのが 最も迅速な対応を得る方法です。もっとも、ports/packages の場合は、 必ずしも FreeBSD チームの責任ではないので対応は遅れるかもしれません。 send-pr については manpage (send-pr(1)) Handbook 「貢献の仕方」-「バグ報告と一般的な論評」 Articlies などに、より詳しい情報があります。 WWW 経由で PR (Problem Report、障害報告) を送ることも可能ですが、2003/10 現在、休止中です。 送られた PR は障害報告データベース で参照できます。 また、技術的な提案をしたい場合は、まず FreeBSD-tech-jp@jp.FreeBSD.org 相談してみるのもひとつの手でしょう。 --- [管理番号 20] (最終更新 1999/02/17 23:58:45) Q. メーリングリストで半角かなを使ってはいけないと言われたんですが。 A. インターネット経由で日本語のメールを送る場合、ISO-2022-JP (いわゆる JIS) 以外のコードを使ったり、半角カナを使うことはルール違反です。そう いうものは「存在しない」という前提でシステムが組まれていますから、ルー ル違反のメールがどこでどんな問題を起こすか分かったものではありません。 Windows の IME には、カタカナを優先的に半角カナに変換するものがありま す。使っているフォントによっては、句読点や括弧が半角カナになっているこ とに気付きにくい場合がありますので注意してください。 --- [管理番号 21] (最終更新 1999/02/17 23:58:45) Q. メーリングリストで全角英数字(ABC..)は読みにくいと言われたんで すが。 A. メールで全角英数字を使うことはルール違反ではありません。しかし、後 でメールを検索することを考えると全角英数字と ASCII 文字が混在している ことは障害になりますので、できれば ASCII 文字に統一することを推奨しま す。 --- [管理番号 22] (最終更新 2000/11/08 01:59:13) Q. FreeBSD では MO, PD, DVD-RAM は使えますか? A. FreeBSD のバージョンによってサポートされているレベルが異なりますが、もち ろん使用できます。サポートしているドライバは、2.2 系では od(4) ドライバ、 3.0 以降は da(4) ドライバが対応しています。da トライバは HDD などの Fixed Direct Access メディアと Removable メディアの共用になっています。 od ドライバは 3.0R で SCSI サブシステムが CAM に移行する際、開発が中断さ れシステムから削除されてしまいました。 注意していただきたいのは 3.0R から 3.3R まで、これらのシステムには /dev/od0* が存在していますが、実体は /dev/da* 即ち一番目の HDD を指して います。このため、MO の boot block をクリアしようとして、間違えて HDD の disk slice を破壊した人は多いようです。また、2.2 系からアップグレードし たシステムでは、sd(4), od(4) から da(4) に統一されるため、SCSI ID の割り 当てによっては更に注意が必要でしょう。3.4R では /dev/od0* は作成されない ようになっていますが、アップグレードした場合などは残ったままになりますの で、この危険を未然に防ぎたければ rm /dev/od* すべきでしょう。 da ドライバの問題点として 512 bytes/sector にしか対応していない点が挙げ られます。そのため 640MB 及び 1.2GB MO や DVD-RAM は使えません。また、そ れ以外でも色々細かな問題が報告されています。 これらの点をふまえ、3.3R 以降、od ドライバが秋山さんによって公開されまし た。これは現状では FreeBSD の標準ではなく、別途パッケージからインストー ルする必要があります。まずは以下の URL をご覧ください。 マスターサイト 動作実績については以下の URL を参照してください。 また、PAO3 CVS リポジトリに上記パッケージはマージ済みで、3.3R 用の PAO3-19991220 からは od ドライバを含みます。 それ以前の古いリリースについての事情は以下のようになっています。 PC/AT互換機版の場合 ・2.1.0-RELEASE 以前ではサポートされていません。この際ですから 3.4R 以降 に移行することをお勧めします。 ・2.1.5-RELEASE & 2.1.6-RELEASE の場合事前にカーネルの再構築が必要です。 CONFIG ファイルに "device od0" を追加すると 512 bytes/sector のタイプ (128MB, 230MB, 540MB) が使えます。 ・2.2.x-RELEASE 系は 標準で含まれており、512 bytes/sector のタイプが使え ます。さらに 2048 bytes/sector タイプのものが使いたければ、 をインストールしてください。これは 2.2.8R にも対応しています。 PC-9801/PC-9821用の場合 2.1.x 系では正式にサポートされていません。2.2.x 系以降では PC/AT 互換 機用と同一です。 --- [管理番号 24] (最終更新 2003/01/22 21:13:31) Q. FreeBSD では PC Card (PCMCIA) が使えますか? A. FreeBSD 4.x をお使いの場合、PC/AT互換機(i386版)では 4.0-RELEASE から、 FreeBSD(98) では 4.1.1R-Rev01 からほぼ問題なく使えるようになりました。 ただし、一部の機種・カードで動作しないものがありますので、リリースノート などのドキュメントをよくお読み下さい。 使用できると思われるカードについては [管理番号 2132] も参照してください。 それに対して 32-bit CardBus PC Card については、5.0-RELEASE 以降に含 まれる NEWCARD という機能を使うことで利用できるものもあります。 FreeBSD 2.2.x や FreeBSD 3.x では、FreeBSD 標準では PC Card サポート が貧弱ですから、 PAO や、 PAO98 を使ってください。 --- [管理番号 26] (最終更新 2000/12/07 02:36:36) Q. FreeBSD が動いた実績のあるマシンのリストはありますか? A. 以下のサイトに情報があります。 `FreeBSD POWERED hardwares' … PC 一般・周辺機器 `Laptop Survey / FreeBSD' … ラップトップ・ノート PC --- [管理番号 27] (最終更新 1999/02/17 23:58:45) Q. XFree86の設定ファイル、XF86Config の設定集はありませんか? A. XFree86 Config file DataBase の WebPage が、以下の URL にあります。 また XFree86 Config file DataBase では、XFree86 の設定ファイルの収 集を行っています。登録をお願いします。 --- [管理番号 31] (最終更新 2003/11/17 02:28:48) Q. Ports というお気楽インストール法があると聞きましたが、どういうもの ですか。 A. インターネット上で配布されている UNIX用 ソフトウェアはバイナリでは なく ソースコードで配布されるのが一般的です。 各 OS 毎にコンパイルして利用しますが 場合によっては各 OS 毎の修正が必 要なときもあります。 Ports とは FreeBSD の上で誰でも簡単にすぐにコンパイルできるように修正 分を集めた物です。ports を手にいれて make コマンドを実行するだけでソー スを入手し FreeBSD に合わせた修正をしコンパイルしてくれます。 詳しい説明は や、FreeBSD handbook の解説 また、ports(7) manpage を御覧下さい。 また、packages としてインストールするだけのコンパイル済みバイナリも配 布されています。これについては [管理番号 32] を御覧下さい。 --- [管理番号 32] (最終更新 2000/06/25 02:29:57) Q. packages ってなに? A. FreeBSD では各種ソフトウェアを簡単にインストールできるように ports という仕組みがあります。packages はそれを元に作成して配布されている make 済みのバイナリキットで、pkg_add コマンドを用いて簡単にインストー ルできます。 詳しくは pkg_add(1)、pkg_delete(1)、pkg_info(1) 等の man を見て下さい。 また、ports については [管理番号: 31] を御覧下さい。 --- [管理番号 33] (最終更新 1999/08/08 00:22:36) Q. インストーラのメッセージが英語なんですが、日本語のはありませんか? A. 日本語などの表示が可能な多国語化インストールブートフロッピーがあります。 適切なディスクイメージファイルをダウンロードして、 を参考に、フロッピーディスクにコピーしてください。 --- [管理番号 35] (最終更新 1999/02/17 23:58:45) Q. NAT, IP Masquerade ってどんなものですか? A. インターネット接続において、限られたグローバルアドレス資源をローカ ルアドレス側から有効に活用できるようにするために考えられた方法です。 両者は外見上は同様の機能に見えますが、実装の内容に違いがあり、これが 両者相互のメリット/デメリットとなっています。実際の運用では、これらへ の配慮に基づいた計画的な設計が必要です。 では、リモートルータ RT100i での NAT と IP Masquerade の実装の 説明を通して、両者の違いをきわめて詳細に解説しています。 --- [管理番号 36] (最終更新 1999/08/26 00:24:04) Q. FreeBSDで NAT、IP masquerade のような IPアドレス・ポート変換が できますか? A. モデムや ISDN を使ったダイアルアップ環境での NAT、LAN カードを 使った常時接続での NAT、どちらもできます。 LAN環境: BSD 系全般で共通の IP_Filter を使う方法と FreeBSD 固有の natd を 使う方法があります。 IP_Filter はいわばカーネルモードで変換を行います。 以下のURL が参考になるでしょう。 FreeBSD の中に IP_Filter のインストールページがあります。 natd はユーザモードで変換を行います。FreeBSD に標準で用意されています。 マニュアルの情報で簡単に設定できるでしょう。(natd、ipfw) ダイアルアップ環境: ppp コマンドの -alias オプションにより、PacketAliasing 機能を 使うことができます。HTTP、FTP、SMTP などが利用可能になります。 しかし、archie、rlogin、RealAudio、Diablo、X プロトコル、 CU-SeeMe などのプロトコルは使うことができません。 その場合、ppp に NAT patch を当てる必要があります。 これは、PacketAliasing 機能の拡張ではなく、全く別の NAT 機能を 追加するパッチです。 --- [管理番号 37] (最終更新 2001/10/25 21:20:55) Q. packages のように、バイナリ形式で公開されているコマンドを実行しようと したら、 ld.so failed: Can't find shared library "lib*.so.x.y" とか、 /usr/libexec/ld-elf.so.1: Shared object "lib*.so.x" not found と言われて動きません。 A. 違うバージョンの FreeBSD 用に作られた、ダイナミックリンクされたバイナリ を実行しようとした場合に表示されるエラーメッセージです。1番目のエラーは a.out(5) 形式、2番目のエラーは elf(5) 形式のバイナリを実行しようとした 場合です。 対策方法はもちろん FreeBSD のバージョンに合ったものをインストール仕直す のが一番良いのですが、なんらかの事情で OS より古いバイナリを実行したい 場合は、FreeBSD の配布ファイルから compat{1x,20,21,22,3x,4x} など、互換 ライブラリを導入すれば解決できます。どの互換ライブラリをインストールす れば良いか分からなければ、配布メディアが /cdrom/ にあるとして、 # fgrep libc.so.3 /cdrom/compat*/*.mtree とします。ここでは例として libc.so.3 を探すとしますが、このコマンドの 実行結果次のように表示されます。 /cdrom/compat22/compat22.mtree: libc.so.3.1 size=427501 \ /cdrom/compat3x/compat3x.mtree: libc.so.3 size=521297 \ これで、compat3x が必要なことが分かりましたから、次のコマンドでシステム へ追加インストールします。 # cd /cdrom/compat3x # sh install.sh そのほか目安として、新しい shared library の方が大きい数字を用いていま す。また、packages の依存関係を無視して強制的に pkg_add(1) したときにも 同様のことが起り得ます。 一方、OS より新しいバイナリである場合には、そのバイナリを使用しないのが 賢明です。自分が使っている FreeBSD 用のバイナリを入手するか、ports を使 うなどして自分でコンパイルし直しましょう。 「shared library だけ新しい物を持って来る」 「今 持っている shared library を copy して番号だけをごまかす」 など無理なことをするのは、コマンドの誤動作を引き起こし、非常に危険です から絶対にやめましょう。 --- [管理番号 38] (最終更新 2001/10/19 21:29:42) Q. FreeBSD の設定について勉強したいのですが、お勧めの書籍はないでしょうか? A. 正にそのために「FreeBSD/Unix の良書を紹介しよう」というプロジェクト、 GoodBooks Project があるのですが、現在公開を停止しています。 早めの再開を期待しましょう。 --- [管理番号 39] (最終更新 2003/11/17 02:28:48) Q. マニュアルが英語なんですが 日本語のマニュアルはありませんか。 A. マニュアルと言っても、いろいろあります。 o FreeBSD 自体のマニュアル (/usr/share/man 以下にあるもの) o X Window Systemのマニュアル (/usr/X11R6/man 以下にあるもの) o ports/packages でインストールしたプログラムのマニュアル (/usr/local/man 以下にあるもの) FreeBSD 自体のマニュアル FreeBSD 自体の翻訳は jpman プロジェクトが行なっています。 ja-man と ja-man-doc を ports/packages からインストールしてください。 インストールし終わったら % setenv LANG ja_JP.EUC % setenv PAGER jless % jman ls で日本語マニュアルが出るはずです。LANG を ja_JP.EUC にすると、色々問題が 出ることがありますので、 % alias jman env LANG=ja_JP.EUC jman とするのも一つの手です。 ただし、この方法でインストールされたマニュアルファイルの内容の一部が 英語マニュアルと一致してない場合があります。この問題の修正方法については、 を参照して下さい。 日本語マニュアルを常に最新に保つための方法は [管理番号 1864] にあります。 また、この日本語マニュアルを web上から見ることもできます。 X Window System のマニュアル XFree86(1)、xterm(1)、xmodmap(1) など、X Window System 関連のマニュアルは 直接 FreeBSD とは関係ありませんので、上記の jpman には含まれていません。 こちらは X Japanese Documentation Project が翻訳作業を行っています。 ja-xjman という ports/packages をインストールして下さい。 % jman XFree86 で日本語マニュアルが表示されるはずです。 ports/packages でインストールしたプログラムのマニュアル これについては、日本語マニュアルを扱う仕組みは用意されていません。 有名なプログラムなら誰かが翻訳している可能性がありますので、探して みてください。 和訳のマニュアルページを見つけたら、/usr/local/man/ja/man? (? には、 書き込むマニュアルファイルの拡張子の数字を合わせる) にそのファイルを (EUC コードに変換して) コピーを置いて下さい。以後、jman コマンドでそ のファイルを見ることができます。例えば、foo.1 というマニュアルファイ ルを見つけたら、それを /usr/local/man/ja/man1/foo.1 にコピーすれば いいです。 --- [管理番号 43] (最終更新 1999/02/17 23:58:45) Q. 一般ユーザで su を実行すると su: you are not in the correct group to su root. と言われてスーパーユーザになれません。root で login はできます。 A. gid が 0 の wheelというグループにあなたが属していないからです。 たとえば、あなたのログイン名を foo とすると、/etc/group の最初の行を、 wheel:*:0:root,foo としてください。 adduserコマンドや /stand/sysinstall から新しいユーザを追加する時に wheelグループに入れてしまいたい場合には Login groupを聞かれたところでは 適当なグループ名を入れ、その次の Invite hogehoge into other groups: [guset no]: と聞かれたところで wheel と打てば、 groupファイルに追加してくれます。 --- [管理番号 45] (最終更新 2001/03/07 02:08:45) Q. 家から PPP でインターネットに接続しているとお金かかるのですが、必要 なとき (データが流れるとき) だけ自動的に PPP 接続するように出来ませんか? A. ppp(8) の -auto モードや -ddial モードを使えばできます。詳しくは、日本 語マニュアルの (もちろん英語でも構いませんが)、`DIAL ON DEMAND' を読ん でください。具体的な設定が、/usr/share/examples/ppp/ppp.conf.sample の pmdemand や PAPorCHAPpmdemand セクションにあるので参考にしてください。 --- [管理番号 46] (最終更新 1999/02/17 23:58:45) Q. 最近液晶ディスプレーが安くなってきました。FreeBSD で(正確には XFree86 で) 液晶ディスプレーを使えるのでしょうか。 A. 液晶ディスプレーには次の二種類あります。 1) 普通のディスプレーのように RGB 入力のもの。 2) 専用のビデオカードを使い特殊なケーブルで接続するもの。 1) の場合には、普通のディスプレーのように XFree86 でサポートしている ビデオカードを使っていれば問題なく使えるはずです。 2) の場合には、専用のビデオカードに使われているチップの名前を調べ、そ れが XFree86 でサポートされているか調べる必要があります。サポートされ ていればもちろん使えるはずです。この辺は、ノート型でどんなチップが使え ているか参考にしてください。 私(nosuzuki@e-mail.ne.jp)は、MELCO の FTD-ST12P を使っています。これ は2) のタイプで S3 Aurora64+ というチップを使っています。XFree86 3.3 からこのチップがサポートされています。セットアップするときに S3 Aurora64+ があらわれませんが、S3 Trio64V+ を選択することで問題なく使え ています。 --- [管理番号 47] (最終更新 2002/10/21 05:19:40) Q. NEC PC-9801/9821シリーズでハードディスク起動メニューから、FreeBSD(98) の領域を選んだのですが boot できません。 A. FreeBSD(98) はハードディスク起動メニューの種類により、起動できない ことがあります。もしこのような状態なら、DOS 標準の起動メニューを 入れ替える必要があります。 安全かつ確実な方法は、DOS 付属の format コマンドで初期化することです (この時は、ディスクの中身が全て消えますのでバックアップを忘れずに)。 しかし「フォーマットするのは面倒だ」と思われる方には次の方法があります。 1.起動メニューから選べなくてもよく、DOS から起動できればいい。 ---> HSB (Ver3.7 以降) を使用すれば、起動できる可能性があります。 2.起動メニューから選べなくては嫌だ、多少のリスクを負ってもよいので 起動メニューを入れ替えたい。 ---> HDU を使えば、起動メニューの入れ替えが行えます。 ただし、付属のドキュメントを十分読んだ上作業してください。 3.FreeBSD(98) 4.1R-Rev01 以降では、pc98 アーキテクチャ用の ブートマネージャ(boot0, boot0.5) が追加されました。boot98cfg(8) を 使って HDD に書き込んだり、ブートマネージャの設定を変更したりできます。 HD 起動メニューが壊れた場合など、NEC 製 の HD 起動メニューの 代わりに使用できます。使用方法は Instal98.txt を参照してください。 HSB、HDU は Masao氏が、公開されているフリーソフトです。 また、えらー15氏が HSB を PC-9821Ra で使用するための差分を公開して います。同じ R-Mate シリーズである PC-9821Rv20 にて FreeBSD(98) の起動に 成功したという報告があります。 「えらー15の小屋」 から、「ツール」を辿ってください。 --- [管理番号 48] (最終更新 1999/02/17 23:58:45) Q. FreeBSD(98)で XF86Setup は動かないのですか? A. XFree86 3.3.2 で PC/AT 互換機版の XF86Setup に相当する XF98Setupが リリースされましたが、それより前の XFree86 に付属の XF86Setup は、 FreeBSD(98) では動きません。 ・XFree86 3.3.2 より前の XFree86 を使用している場合 /usr/X11R6/lib/X11/XF86Config.98 をコピーし適宜編集して XF86Config を作ってください。 ・XFree86 3.3.2 以降の場合 XF98Setup を使用するためには、XF98_NEC480 または XF98_EGC(-egc オプションを付けて起動)のサーバが必要です。 なお、3.3.2 の Cards98 には不備があり、XF98Setup の最後に目的の サーバーを立ち上げるところでハングアップする場合があります。 /usr/X11R6/lib/X11 にある Cards98 ファイルを、以下の URL にある 最新版の Cards98 に置き換えてから実行するようにして下さい。 --- [管理番号 49] (最終更新 2004/04/09 05:04:55) Q. FreeBSD カーネルがお亡くなりになるのですが、これを開発者に伝えたいの ですが A. カーネルが吐き出すメッセージを記録するとき,何に注目したらよいか 「どんなメッセージを記録すべきか?」 「カーネルパニックを最大限に利用する」 「Kernel Debugging」 などを参考にしてください。 --- [管理番号 50] (最終更新 1999/02/17 23:58:45) Q. FreeBSD の CD-ROM (Walnut Creek版)を国内で入手できるお店を教えてくだ さい。 A. Walnut Creek の CD-ROM を入手できるお店の情報 を見てね。 --- [管理番号 54] (最終更新 2003/10/16 23:20:15) Q. IBM のパソコンを使っているんですが、Mwave という内蔵モデムは FreeBSD で 使えますか? A. モデルによっては使えます。 ThinkPad 600/700 シリーズに内蔵の Mwave モデムに関しては、mwavem と いう loadable kernel module 形式のデバイスドライバが用意されていま す。ports になっていますので、対応機種をお持ちの方はどうぞ。 --- [管理番号 55] (最終更新 1999/05/07 00:51:01) Q. IDE と SCSI のハードディスクにそれぞれ DOS, FreeBSD を入れて OS-BS で切り換えて使おうとしたんですが OS-BS のメニューで FreeBSD を選択する と "No operating system" と叱られてしまいます。 A. これはオリジナルの FAQ にもありま す(When I boot FreeBSD I get ``Missing Operating System''.)が、基本的に FreeBSD と DOSその他の OS とのディスクジオメトリの考え方が矛盾する場合に生じます。 これの対処法もオリジナルの FAQ にあります(Which geometry should I use for a disk drive?)が、SCSIディスクの場合 そのジオメトリは使用するコン トローラが拡張変換をサポートしているかどうかに依ります(これはしばしば "support for DOS disks >1GB" みたいな SCSI/BIOS の設定項目で切り換えら れます)。 1) 拡張変換のサポート OFF のとき、 N/64/32(cylinders/heads/sectors per track) としてください。 ただし N はディスク容量を MB 単位で表わした数です。 2) 拡張変換のサポート ON でかつ 1GB を超えるとき M/255/63(cylinders/heads/sectors per track) としてください。ただし Mはディスク容量を MB 単位で表わした数を 7.844238 で割った数です。 で、再インストールする前にとりあえずSCSI/BIOS の "support for DOS disks >1GB" の設定を切り換えてください。うまくいけばちゃんと認識し てくれるはずです。 --- [管理番号 56] (最終更新 2000/04/19 21:39:33) Q. HDD に Windows 95 と FreeBSD が同居していました。この前、Win95 を再 インストールしたら FreeBSD が起動できなくなりました。 A. 1つの HDD に複数の OS が同居している場合、ブートマネージャと呼ばれ るプログラムを使って起動する OS を選択することが出来ます。ブートマ ネージャは HDD の先頭、マスターブートレコード (Master Boot Record: 省略形 MBR) に書き込まれていますが、Win95 は問答無用で MBR を Microsoft 標準のものに上書きしてしまうため、次からは Win95 しか起動 できなくなります。 FreeBSD は標準で boot0 (2.2 系以前は BOOTEASY) と呼ばれるブートマネー ジャを採用していますので、もう一度ブートマネージャをインストール仕 直してやれば直ります。再インストールの方法は [管理番号 57] を参照し てください。 --- [管理番号 57] (最終更新 2000/04/19 21:39:51) Q. ブートマネージャを再インストールする簡単な方法は? A. FreeBSD のバージョンに関わらず使える方法として、ブートフロッピーを使う 方法があります。まずブートフロッピーから起動して、インストーラのメニュー から「Custom」-->「Partition」で、ブートマネージャをインストールする HDD を選択し、パーティションエディタの画面で「W」だけ押して(パーティショ ンはいじらない)、ブートマネージャ選択メニューで「BootMgr」を選択すれば、 ブートマネージャだけ MBR に書き込むことができます。 この他の方法として、FreeBSD の配布ファイルに含まれる bootinst.exe と boot.bin を使う方法がありますが、この方法で書き込まれるブートマネージャ は BOOTEASY と呼ばれる汎用のもので、2.2 系までの FreeBSD では標準採用 されていましたが、3.0R 以降は FreeBSD 内部で開発された boot0 に変更さ れています。実行手順は DOS を起動して、配布ファイルの tools/ ディレク トリに移動し、上記の二つのファイルが存在することを確認した上で、 > bootinst boot.bin と実行します。しかし、この方法では boot0 は入れる事ができませんので 注意してください。 3.0R 以降では当然 boot0 も FreeBSD のバージョンごとに変更される可能性 がありますが、単に make world しただけでは MBR までは更新されません。 この様な場合 boot0cfg(8) を使えば簡単に最新の boot0 に入れ替えることが できますが、実行に際しては良くマニュアルを読んでからにしてください。 (実行例: SCSI デバイス 1 台目から起動していた場合) # boot0cfg -Bv -b /boot/boot0 -f /boot/backup.mbr /dev/rda0 --- [管理番号 58] (最終更新 2002/04/11 03:59:26) Q. FreeBSD で使える 100M Fast Ethernet のカードを教えてください。 A. FreeBSD のリリースノートにまず目を通せば、チップセットや主なカードの 名称はすぐ分かるでしょう。一般的には新しいリリースのものほどサポート しているカードの種類は増えていると思われます。 次に実際の動作報告をメーリングリストのログや、Web ページなどから調べ れば良いでしょう。国内の情報源として代表的な次のページを紹介しておき ます。 また、次のページに、各カードの性能を比較した情報があります。 --- [管理番号 61] (最終更新 2003/11/17 02:28:48) Q. kernel を再構築している途中で signal 11 と表示され止まってしまう。 A. メモリに不良がある、もしくは CPU の cache アクセス、write back などの タイミングの問題です。 を読んでみてください。また Linux LDP の GCC-SIG11-FAQ も参考になります。 --- [管理番号 62] (最終更新 1999/02/17 23:58:45) Q. 起動時にLANカードを認識しているのに ed0: at 0x300-0x31f irq 5 on isa ed0: address 00:c0:6c:00:01:02, type NE2000 (16bit) コンソールに 時々 ed0: device timeout というメッセージが表示されます。 A. LANボードのIRQと FreeBSDが思っているIRQの値が異なっています。 FreeBSDでは起動時に デバイスの存在を FreeBSDが思っている I/Oアドレス、 IRQなどを元にチェックしますが、IRQについては厳密にチェックすることが 出来ません。たまたまタイミングよく他の割り込み(IRQ)が発生すると 誤認することがあります。 また ケーブルが接続されていない場合にもこのメッセージが出ます。 ボードに 10BASE-Tと 10BASE-2の口がある場合に自動選択がうまくいっていないと 結果的にケーブルが接続されていないのと同じ状態になりこのメッセージが出ます。 --- [管理番号 63] (最終更新 1999/02/17 23:58:45) Q. Windows95等では時間が合っているのに、FreeBSDでは時間が9時間ずれてし まいます。 A. FreeBSD では 2.0 からマシンの時計 (いわゆる RTC) が UTC (JST より 9 時間遅い)をさしているものと仮定しています。通常は、インストール時にタ イムゾーンの選択のところで、RTC を UTC に合わせて使うか と聞いて来ます。 Yesだと 自機の時計を UTCだと思います。 No だと 自機の時計が 現地時間だと思います。 ここでもし間違えて UTC に合わせることを選んでしまったのならば、 # touch /etc/wall_cmos_clock としてやることで、ローカルタイムに RTC が合わせてあるマシンでも正常に 使用できるようになります。 --- [管理番号 64] (最終更新 1999/07/24 15:05:03) Q. FreeBSD のファイルをマックからアクセスしたいのですが。 A. CAP を使う方法と、Netatalk を使う方法があります。CAP については、 を、Netatalk については、 をご覧ください。 --- [管理番号 65] (最終更新 2001/02/18 15:26:53) Q. I18N、L10N、M17N って何ですか? A. I18N は InternationalizatioN の略です。I と N の間に 18 文字 挟まれているのでこう呼びます。国際化と訳されます。多くの言語に 対応できるようなフレームワークを作ったり、アプリケーションで モードを切り替えることで多言語を扱えるようにすることを指します。 例えば Netscape Navigator/Communicator は、文字コードセットを 切り替えて多言語を表示できるので I18N と言えます。 L10N は LocalizatioN の略で、地域化と訳されます。例えば アプリケーションを日本語を扱えるようにすることを指します。 ASCII しか表示できないアプリケーションにパッチを当てて、 日本語を表示可能にするのは L10N です。 M17N は MultilingualizatioN の略で、多言語化と訳されます。 1つのアプリケーションで多言語を同時に扱えるようにすることを 指します。mule は日本語・ハングルなどを同時に扱えるので M17N と言えます。 --- [管理番号 67] (最終更新 2004/04/09 05:05:18) Q. RFC の和訳 (日本語訳) はありますか? A. RFC ならびに Internet Draft を和訳するプロジェクトが複数存在します。 それぞれ扱う分野が違うので、適切に参照しましょう。 RFC 日本語訳へのリンク集 --- [管理番号 68] (最終更新 1999/02/17 23:58:45) Q. MO や PD などの光ディスクメディアに FreeBSD をインストールし、そこ からブートさせることは可能ですか? A. できます。2.2.5-RELEASE からは od-driver パッケージを利用してください。 これは、 から入手可能です。 2.2.1/2.2.2-RELEASE 用のパッチは [FreeBSD-users-jp 14664] [FreeBSD-users-jp 14708] として投稿されています。14664 は FreeBSD(98)-2.2.1 用のもので、 14708 は FreeBSD 2.2.1-RELEASE 用の 14664 への追加ファイルです。 したがって NEC PC-9801/9821 の場合は 14664 のみを、AT 互換機の 場合は 14664, 14708 を入手して下さい。14708 は FreeBSD 2.2.1-RELEASE 用 となっていますが、2.2.2-RELEASE でも利用可能です。 ちなみに、ブートさせたい MO や PD を BIOS 的に認識させることが必要です。 --- [管理番号 69] (最終更新 1999/02/17 23:58:45) Q. FreeBSDをインストールしようと思うのですが 買ったマシンには最初から Windows95が入ってまして、しかもDiskの全容量を確保しています。 これを前半に縮小して 空いた後半に FreeBSDをインストールしたいのですが。 A. AT互換機の場合は FIPS.EXE もしくは 市販の Partition Magicなどのソフ トを使って内容を消すことなく sliceの大きさを縮小することが出来ます。 NEC PC98の場合はこういうソフトが存在しないようです。 --- [管理番号 70] (最終更新 2000/11/08 02:00:24) Q. kern.flp 及び mfsroot.flp の size が 1,474,560B あります。 これだと 1.44MB の FD には収まらないのではないですか? A. 1.44MB == 1440KB == 1440 * 1024B == 1474560B なのでちょうど収まります。 なお、boot.flp は 2.88MB FDD, LS-120 用、または CD-ROM からの ブートイメージとして使います。 --- [管理番号 71] (最終更新 2003/01/22 21:13:32) Q. DOS/Windows 上で、kern.flp 及び mfsroot.flp をフロッピーに コピーしたのですが、「ディスクの空き領域が足りません」で 書き込めません。 A. "copy" コマンドでコピーするのではありません。 圧縮してコピーするのでもありません。 1. PC/AT 互換機の場合は a) tools/fdimage.exe を使ってください。詳しくはリリースに付属する FLOPPIES.TXT を読んでください。 例えば 4.6-RELEASE なら、fdimage.exe は に、kern.flp と mfsroot.flp は にあります。CD-ROM の場合も、同様のディレクトリ構成になっています。 同じディレクトリに3つのファイルを置いて、 C:> cd ファイルを置いたディレクトリ名 (1枚目のフロッピーを挿入) C:> fdimage kern.flp a: (フロッピーを抜いて、2枚目のフロッピーを挿入) C:> fdimage mfsroot.flp a: とするのがよいでしょう。 b) GUI な tool ならば rawwritewin というものがあります。 ペンギンさんのアイコンの GPL なソフトウエアです。 2. NEC PC98 系の場合は tools98/dostools 以下の rawrite.exe と、 floppy98 以下の kern.flp や kern144.flp などと mfsroot.flp を使います。 必ずリリースに付属する 98readme/Instal98.txt をよく読んでください。 [管理番号 72] に参考情報があります。 --- [管理番号 72] (最終更新 2002/10/21 05:19:40) Q. PC-9801/PC-9821で ブート用のフロッピーディスクを作ろうとしたのです が、rawrite で書き込みできません。 A. PC-9801/PC-9821系用の rawrite.exe を使っているか確認してください。 tools98 にある rawrite.exe を使いましょう。 FreeBSD(98)2.2.6R-Rev01 以降の場合、ブートディスクには 1.21MBタイプ のものと 1.44MBタイプの 2種類があります。 1.21MBタイプは容量の関係で 一部の機能が制限されますので、1.44MBで起動可能な場合は 1.44MBタイプで 作ることをお勧めします。 1.21MB用のブートディスクの場合、フロッピーが 2HCフォーマットでない と書き込めませんので MS-DOS上または DOSprompt上で下記の様にしてフォー マットしてください。 format /5 <ドライブ番号> (NEC MS-DOSの場合) format /e <ドライブ番号> (EPSON MS-DOSの場合) 補足 1.21MBタイプの場合 PC/AT互換機で(PC/AT互換機用の rawrite.exe を使っ て) 5.25inchドライブ(3.5inchドライブでは不可) に書き込んで作成すること も出来ます。 1.44MBタイプの場合 PC/AT互換機で(PC/AT互換機用の rawrite.exe を使っ て) 3.5inchドライブ(5.25inchドライブでは不可) に書き込んで作成すること も出来ます。 --- [管理番号 74] (最終更新 1999/02/17 23:58:45) Q. インストールフロッピーで起動するときに いらないデバイスを全部 disableにしたらその先が起動しません。 A. disableしてはいけないデバイスというのもあります。 sc0 (syscons driver)とか npx0は消さないでください。 sc0をdisableすると、一切コンソールが使えなくなります。disableしないで ください。(この部分情報求む) --- [管理番号 75] (最終更新 1999/02/17 23:58:45) Q. boot.flpで uncompressing kernelした後に、booting the kernel... のまま先に進まず、ハードウェアチェックも始まりません。 A. まずはBIOSの設定をいちばん安定して動くように、メモリアクセスなどが 遅くなるよう変更して起動してみます。2次cacheのスピードを遅くしたりOff にするとかCPU内 cacheを Offにすると起動する場合があります。それでも同 じ症状ならば、クロック数を下げてみましょう。 --- [管理番号 76] (最終更新 2000/03/04 08:15:14) Q. ダウンロードしてきた package がうまくインストールできなかったり、アー カイヴファイル (.gz、.tgz、.bz2 .lzh .zip など) がうまく展開できません。 また、その為か ports/packages のインストールに失敗することがあります。 例えば、以下のようなエラーが出ます。 gzip: test.tar.gz: invalid compressed data--format violated bunzip2: test.tar.bz2: data integrity (CRC) error in data You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. gzip: stdin: invalid compressed data--format violated tar: Unexpected EOF on archive file tar: child returned status 1 ports の場合だと、 >> Checksum mismatch for xxx.tar.gz. というエラーで止まってしまうことがあります。 A. 転送時にファイルが壊れた可能性があります。 ・ブラウザなどを使ってファイルを get した場合、ファイルの転送がうまく いかないことがあるようです。 バイナリデータをきちんと転送できるようにして再度 get し直してみるか、 (WWW ブラウザではなく) FTP client でファイルを転送してみて下さい。 ・FTPクライアントを用いた場合、転送モードが ASCII モードになっていると ファイルの中の 0x0d が 0x0d、0x0a に置き換えられてしまい正常に展開で きません。転送モードをバイナリモードにして下さい。 リモートのファイルサイズが表示される場合は、転送後のファイルサイズと等 しいか比較して確認できます。(ただし、kb オーダーで表示されていたりする と正しく比較できないこともあります)。 ports の場合は、転送はうまくいったものの、配布ファイルが変更されていて MD5 チェックサムが変わってしまった為、チェックにひっかかっている可能性 もあります。 配布ファイルが名前を変更せずに更新されていた場合は、MD5 のチェックを無 視するようにしてもよいですが、第三者の手によって好ましくない変更が加え られている可能性もあるので、きちんと確認すべきでしょう。 尚、DOS 用の tar には -a オプションを有するものがあり、これを指定して 展開しようとするとうまく行かないという報告があります。 --- [管理番号 77] (最終更新 1999/02/24 03:38:46) Q. ブートフロッピのカーネルが起動し、デバイスのチェックが終了してイン ストーラのメニューが表示される直前で、画面が消えカーソルが左下に行き、 そのまま固まってしまいます。何がいけないんでしょうか? A. ひょっとしてあなたのマシンの SCSI アダプタは Buslogic ではないでしょ うか? だとすればカーネルのコンフィギュレーションの設定で Adaptec の SCSI アダプタ を無効 (Disable) にしないと永久に動きません^^; Buslogic の SCSI アダプタには Adaptec 互換モードがあるので、Adaptec のドライバ で probe されて互換モードで動こうとするとうまく動きません。Disable に すれば Buslogic のドライバが使用されます。 なお、PC-9801/PC-9821 用の FreeBSD(98) でも同様の現象が報告されていま すが、こちらは原因が分かっておらず、現在のところ対処方法がありません。 --- [管理番号 78] (最終更新 1999/02/17 23:58:45) Q. Floppy disk controller の I/O ポートをWindows 上で調べると 0x3f3-0x3f5でした。FreeBSDでは0x3f0になっていますが、大丈夫でしょうか? A. 大丈夫です。0x3f0からの8バイトで、0x3f3-0x3f5を含んでいます。 --- [管理番号 80] (最終更新 2000/11/08 02:02:18) Q. IBM ThinkPad 3xx, 750Cs に FreeBSD を install しようと試みました。 UserConfig の時点まではキーボードが正しく使えますが、install のメニュー が出るとキーボードから正しくカーソルの移動が出来ません。 A. これは、これらのマシンが XT 互換キーボードを使用しているためです。 リリースに付属する TROUBLE.TXT にも回避方法が記載されています。 1. FreeBSD 3.1-RELEASE 以降では atkbd0 に flags 0x4 を与えると XT キーボードの設定になります。ただし、バグのため 3.3-RELEASE 以降 でないと UserConfig でのフラグ指定は反映されません。 2. それ以前のリリースでは sc0 に flags 0x10 を指定すれば良いでしょう。 --- [管理番号 81] (最終更新 1999/02/17 23:58:45) Q. ネットワーク経由(NFS,FTP)でインストールしているんですが、 [Partition]->[Label]->[Distribution]->[Media]->[NFS]->[Commit] でいき なり固まってしまいます。 A. う〜ん困りましたね。ネットワークインターフェースカード(NIC)のインス トールがうまくいってないかもしれませんね。というわけで、付属ソフトウェ ア等で以下の対応をしましょう。 o IRQ 等のリソース設定を見直す。 o メディアを自動判別するカードなら、自動判別を切って決め打ちする。 o ISA Plug and Play 対応カードなら、Plug and Play を切る。 o 半二重/全二重の設定を見直す。 カードによっては、設定後にいったん電源を切らないと設定が有効にならない ものもあるので要注意です。さらに、FreeBSD のバージョンが古ければ新しい ものに入れ換える。これで 95 % は OK です。これでも動かない場合はメーリ ングリスト等で相談しましょう。ただし、DOS or Windows で動作確認してか らにしてください。 --- [管理番号 82] (最終更新 2003/05/17 21:39:24) Q. FreeBSD をネットワーク経由でインストールしたいのですが、どの FTP サイトを利用したらよいでしょう? A. 国内のプロバイダを利用している場合は、ftp?.jp.FreeBSD.org が おすすめです。 を参照して、適当な FTP サイトを選択してください。 なお、ftp?.jp.FreeBSD.org は いずれも [announce-jp 1107] の (a) 分類の条件を満たしており、ネットワーク条件のよいところに 設置されています。 --- [管理番号 83] (最終更新 2000/05/24 20:55:13) Q. FreeBSD を FTP proxy 経由でインストールしたいのですが、 どうすれば良いのでしょうか? A. FTP のプロキシサーバには大きく分けて二種類あり、プロキシとクライアント との通信で FTP を使うものと HTTP を使うものがあります。FreeBSD をイン ストールする際は、インストーラ (sysinstall) がクライアントとなりますが、 HTTP を使うタイプのものは 4.0-RELEASE で初めてサポートされました。これ より前にリリースされた 3.4-RELEASE 以前は FTP を使うタイプしかサポート していません。 FTP をサポートしている HTTP proxy では、ftp://host[:port]/path 形式の URL を受け付けて HTTP (ftp URL) FTP client <================> proxy <=========> remote_server という形で動作します。(ブラウザの proxy 設定で HTTP と FTP について同 じ host/port を指定するのはこのタイプです。例えば、squid や wwwoffle、 また、delegate も設定によってはこのモードで動作します) このタイプは 3.4R 以前の installer では対応できません。事前に wget や Web ブラウザを使うなどして、必要とされる FreeBSD 配布ファイルを入手し ておかなければなりません。一旦手元に配布ファイルを取り寄せてしまえば、 後は local mirror server を立てるなり、DOS パーティションにコピーする などインストール方法は任意です。 一方で FTP proxy は FTP FTP client <=========> proxy <=========> remote_server という動作をします。こちらはプロキシの実装にいくつかの種類がありますが 大抵 installer から直接扱えます。(例は delegate のマニュアル、ncftp3 の firewall 関連の設定マニュアルなどを参照してください) プロキシが "ユーザ名: 誰々@どこそこ.co.jp" でアクセスするタイプの場合、 普通の FTP インストールと違うのは、インストーラの Options メニューから FTP username を選んで、 ユーザ名に anonymous@ftpサーバのFQDN パスワードに自分のメールアドレス を入力しておく事と、Media -> FTP -> URL と選んで ftp://proxy_host[:port]/pub/FreeBSD/releases/ としておくことです。なお、proxy_host はホスト名または IP アドレスで 指定し、必要ならポート番号を ":" に続けて記述します。 また、delegate では以下のような URL を指定する方法も使えます。 ftp://proxy_host[:port]///ftp.FreeBSD.org/pub/FreeBSD/releases/ プロキシのホスト名のあとの "/" 3 本がみそです。 URL 記述では host 名は '/' までで、それ以降が directory path として 扱われるので、host///dir の形では host の //dir を参照することになり、 結果としてプロキシに接続した後でインストーラが cd //ftp.FreeBSD.org/pub/FreeBSD/releases/ を実行することになります。 [求む!その他のproxyでの方法] --- [管理番号 85] (最終更新 2002/02/03 13:12:18) Q. `panic: cannot mount root' で FreeBSD が起動しない。 A. FreeBSD を一台目以外の HDD にインストールしていますね。これはブートブ ロックとカーネルにおいて、HDD のユニット番号の認識が食い違っているため に起こります。この症状については FreeBSD FAQ にも解説がありますので、 次の URL を参照してください。 1. FreeBSD 3.3-RELEASE 以降 マシンを起動すると Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... という loader(8) のメッセージが表示されるので、ここでリターンキー以外 のキーを押してコマンドモードに入り set root_disk_unit=2 boot としてください。これで IDE ならセカンダリマスタから FreeBSD が起動する はずです。このとき指定する数字はインストールした HDD によって次のよう に読み換えてください。(GENERIC カーネルのとき) +-------------------------------+----------------------+ | IDE | SCSI | +---------------+---------------+----------------------+ | Primary | Secondary | | | Master Slave | Master Slave | 見付けた順に 0,1,2… | | 0 1 | 2 3 | | +---------------+---------------+----------------------+ これで正しく FreeBSD がブートできたら # echo "root_disk_unit=2" >> /boot/loader.conf とすれば、次からブートローダでの指定はいらなくなります。設定ファイルは /boot/loader.conf.local でも良いのですが、どちらかに統一した方が後で 混乱しなくて済みます。 2. FreeBSD 3.2-RELEASE 以前 起動時に `Boot:' と表示されたところで (3.0-RELEASE 以降では loader(8) が読み込まれる前に Enter 以外のキーを叩くことで表示されます)、 IDE + IDE で 2 番目の IDE がセカンダリのマスタの場合は 1:wd(2,a)/kernel IDE + SCSI の場合は 1:sd(0,a)/kernel を入力してください。 IDE 2 台 + SCSI とか SCSI の 2 台目とかの場合は適宜 1: の数字や ?d(0,a) の 0 を 1,2 に変更してください。一般には、 :(,a)/kernel という形式で、 BIOS から見たディスクの番号。最初のドライブは `0'。 コントローラを指定します。 IDE なら `wd'、SCSI は `sd' (3.0-RELEASE 以降では `da') コントローラ上のドライブのユニット番号。上記の表を参照。 です。 なお次回のブート時にデフォルトとするには、 # echo "1:wd(2,a)/kernel" > /boot.config のようにします。 --- [管理番号 86] (最終更新 2004/04/09 05:05:29) Q. bootオプションに 1:da(0,a)/kernel と入力しようとしましたが :、(、) は それぞれ shift+; 、)、shift+0 と入力しなければなりません。 英数字キーの対応は正しいのですが、記号の対応がおかしいようです。 対応を正しくするにはどうしたら良いでしょうか? A. それは、あなたの使用しているキーボードが日本語106キーボード だからです。英語101キーボードのキー配列で入力しなければなりません。 その段階では、OSは起動していないので正常に対応させることは出来 ませんが、OS起動後は、/stand/sysinstallを実行すれば、その中で 変更することが出来ます。 また X サーバ起動後は、キーマップ配置は X サーバが管理し、設定ファイル XF86Config で指定できるほか、setxkbmap(1) でも設定可能です。XF86Config ファイルの生成は、XF86Config 作成ツールである xf86cfg コマンドでも行な えます。 --- [管理番号 87] (最終更新 2001/08/12 02:51:17) Q. セカンダリのマスタに FreeBSD を入れたとき、いつも boot: で 1:wd(2,a)/kernel を入力するのは面倒なんですが。 A. セカンダリのマスタに FreeBSD を入れると、起動時は wd2 として認識されて しまうので、最初は "boot:1:wd(2,a)/kernel" というようにオプションをつけ なければ FreeBSD は起動してくれません。 もし boot でオプションをつけずに直接 FreeBSD を起動させようとするな ら、方法は 2 つあります。ひとつ目は [管理番号 85] を参照してくださ い。もう一つの方法としてカーネルの再構築をして FreeBSD の入っている wd2 のドライブを wd1 として認識させる方法があります。 必要な作業は 1. カーネルコンフィグレーションファイルの変更 2. カーネルの再構築 3. デバイスファイルの作成 4. /etc/fstab の変更 5. 再構築したカーネルのインストール です。 FreeBSD 2.2.x-RELEASE では IDE のみのシステムの場合 1台目のディスク(wd0) - プライマリ マスタ (wdc0 drive0) 2台目のディスク(wd1) - プライマリ スレーブ (wdc0 drive1) 3台目のディスク(wd2) - セカンダリ マスタ (wdc1 drive0) 4台目のディスク(wd3) - セカンダリ スレーブ (wdc1 drive1) という対応を前提としています。この対応はカーネルのコンフィグレーション ファイルで変更できます。 例えば セカンダリのマスタに接続されている2台目のハードディスクを 起動ディスクとする ような場合は wd1 に セカンダリマスタ (wdc1 drive0) を対応させる必要があ ります。 注意: 既にインストール済みの場合、デバイスファイルや /etc/fstab の内容は wd2 として作成されていますから、そのまま作り直したカーネルをインス トールして再ブートするとファイルシステムがマウントできなくなって何 もできない状態になってしまうので気をつけて下さい。 1. カーネルコンフィグレーションファイルの変更 コンフィグレーションファイルの controller wdc のセクションを 次のように変更します そのためにはまず (/usr/src)/sys/i386/conf/GENERIC のファイルを 適当な名前でコピーして以下のように一部変更します。 変更箇所は 2,3 箇所。 ------------------------------------------------------------------------- ident MYMACHINE ← 新しく作ったファイル名 ..... config kernel root on wd1 ← "wd0" から "wd1" に変更 .... controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr # disk wd2 at wdc1 drive 0 行頭に # を書いて無効化 disk wd1 at wdc1 drive 0 ↑ FreeBSD の入っている wd2 を wd1 に変更 2. カーネルの再構築 このような設定を行なって カーネルの再構築を行ないます。コンフィグレー ションファイルの名前を MYMACHINE とした場合、 # config MYMACHINE # cd ../../compile/MYMACHINE/ # make depend # make ここではまだ再起動をしないで、そのまま次の操作に入ってください。 3. デバイスファイルの作成 wd1 で足りないデバイスファイルを作ります。2 台目のディスクの場合 # cd /dev/dev # sh MAKEDEV wd1s1a 4. /etc/fstab の変更 /etc/fstab の変更を行ないます。 FreeBSD が wd2 としてインストールしたときの /etc/fstab -------------------------------------------------------------------------- /dev/wd2s1b none swap sw 0 0 /dev/wd2a / ufs rw 1 1 /dev/wd2s1f /usr ufs rw 1 1 /dev/wd2s1e /var ufs rw 1 1 proc /proc procfs rw 0 0 /dev/wcd0c /cdrom cd9660 ro,noauto 0 0 -------------------------------------------------------------------------- このファイルの "wd2*" をすべて "wd1*" に変更。 5. 再構築したカーネルのインストール 最後に再構築したカーネルをインストールします。 # cd /usr/src/sys/compile/MYMACHINE # make install 以上の作業を行なった後、再ブートすれば自動的に FreeBSD が起動するでしょ う。 --- [管理番号 88] (最終更新 2002/02/03 13:12:18) Q. 1 台のパソコンを家族も使うことがあるので、「FreeBSD を起動する時は フロッピーを入れる」という運用にしたい。 A. FreeBSD 2.2.5-RELEASE 以降なら以下の方法が使えます。 フロッピーディスクをドライブに挿入し、 # fdformat fd0 # disklabel -w -B /dev/rfd0 fd1440 # newfs /dev/rfd0 とするか、インストールフロッピー (3.0-RELEASE 以降なら kern.flp、 それより前なら boot.flp) を流用して、 # mount /dev/fd0 /mnt # echo 'ad(0,a)' > /mnt/boot.config # umount /mnt これで reboot すればフロッピーから起動します。 なお、`ad(0,a)' の部分については [管理番号 514] を参照してください。 --- [管理番号 89] (最終更新 1999/02/17 23:58:45) Q. 1つのDiskにパーティションを3つ作成し 1) Windows95 Fat  400MB 2) WindowsNT4.0 NTFS 2000MB 3) 空き 700MB FreeBSDを 3番目のパーティションにインストールしたら NT が起動しなく なりました。 A. 元の状態は 1つ目が基本パーティション、 2つ目は拡張パーティションに なっています。 NT のブートプログラムの設定ファイルは、 C:\BOOT.INI ですが、以下のような感じになっているはずです。 (特にpartition(x)の部分をチェックしてください) [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT= "Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(2)\WINNT= "Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\="Microsoft Windows" この状態で FreeBSD を3番目の空き領域に入れた場合、この3番目の領域は 実は基本パーティションになります。BOOT.INI のパーティション番号 (partition(x))は、基本パーティションから先に振られます。 つまり、もともと 基本(Win95) multi(0)disk(0)rdisk(0)partition(1) 拡張(NT4.0) multi(0)disk(0)rdisk(0)partition(2) だったのが、基本パーティションを追加したことによって 基本(Win95) multi(0)disk(0)rdisk(0)partition(1) 拡張(NT4.0) multi(0)disk(0)rdisk(0)partition(3) 基本(FreeBSD) multi(0)disk(0)rdisk(0)partition(2) となり、NTのパーティション番号がずれてしまったのです。 しかし、BOOT.INI はそのままですので、NTLDR は正直に multi(0)disk(0)rdisk(0)partition(2) から NTOSKRNL.EXE を読もうとして「NTOSKRNL.EXE がないよ」ということ になってしまいます。 そこで以下のように、partition(3) に書き直してやれば復旧するはずです。 multi(0)disk(0)rdisk(0)partition(3)\WINNT= "Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(3)\WINNT= "Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos 下記の Web ページも参考にしてください。 --- [管理番号 99] (最終更新 2004/04/09 05:05:40) Q. PS/2マウスが使えません。 A. 確認する手順です。 0. kernel の構成に psm0 があるか、psm0 が認識されているか確認。 起動中のメッセージ(これは起動後 dmesg コマンドでも見ることが できます)の中に psm0 at 0x60-0x64 irq 12 on motherboard という表示があれば psm0 が認識されています。 1. 認識されていない場合、 起動時の Boot: で -c を入力し ls とやると kernelに入っているデバ イスの一覧が表示されます。('visual' と入力すると ビジュアルモード になりますので 見やすくなります。psm0 は visual 時には Input の menu の中にあります。) ここで disable となっているモノは検出しません。 enable psm0 を入 力して検出するようにしましょう。 また FreeBSD 2.2.6 or 2.2.7 RELEASE ではマウスとの相性がある場合 があります。 マウスを交換すると認識されたという報告もあるので、 マウスを交換してみてください。 (psm0 と、sc0 は、conflict しますが、同じ LSI を使用しているので、 正常な状態です。問題ありません。) 2. 上の 1.で、psm0 が、どこにも見つからない場合、その kernel は、 psm0 を、使用できません。psm0 を含んだ kernel を使用するか、 つくり直して下さい。(kernel のつくり直し方は Handbook参照。) 3. ここまでは kernel の話。XFree86 で PS/2 マウスを使うには XF86Config の Section "Pointer" に、 Protocol "ps/2" Device "/dev/psm0" を記述します。 4. 2.2.6R 以降では moused を利用するとコンソール画面でもマウスが 使えますし、XF86Setupでも最初からマウスが利用できて便利です。 インストーラや /stand/sysinstall の「マウス」の設定で マウスデーモンを有効にします。日本語インストーラの場合は 「有効化」を選んでもマウスカーソルはあらわれないので注意してくだ さい。直接 rc.conf を編集する場合は次のようにします。 moused_enable="YES" moused_type="auto" moused_port="/dev/psm0" moused_flags="" X では XF86Config の設定は次のようになります。 Protocol "SysMouse" Device "/dev/sysmouse" --- [管理番号 100] (最終更新 1999/02/17 23:58:45) Q. XF86Setup で XF86Config を設定しましたが、マウスの移動速度が異常に 低く困っています。 A. xset m ? で変更できます。?の所に適当な数値を入れてください (例: xset m 4)。大きいほど大きく動きます。 詳しくは xset のマニュアル ページを見てください。各ユーザの X起動ファイル ~/.xinitrc に書く、 もしくはシステムの defaultとなる /usr/X11R6/lib/X11/xinit/xinitrc など に書いておくと良いかもしれません。 --- [管理番号 101] (最終更新 2003/10/16 23:20:15) Q. PS/2 マウスの Sample Rate を変えることは出来ますか? A. 1. psm ドライバの flags で変更することができます。psm(4) によると、 bit 0..3 RESOLUTION bit 4..7 ACCELERATION ということなので、例えば /boot/kernel.conf に、 flags psm0 0x14 quit と書いておけば、もっとも高感度(200 ppi)かつ加速度最大の設定になります。 詳細は psm(4) のマニュアルページを御覧ください。 なお FreeBSD 2.2.5-RELEASE 以前ではこの flags の指定は無効ですが、 カーネル再構築の際、コンフィグレーションファイルに options "PSM_ACCEL=N" を入れておけば(N >= 1)、加速度については設定できます。 2. moused(8) をお使いなら、/etc/rc.conf の moused_flags で変更する ことができます。例えば、 moused_flags="-r high -a 1" と書いておけば、上記の 1. とほぼ同様の設定になるようです。 詳細は moused(8) のマニュアルページを御覧ください。 また X で使う時のマウスの移動速度は xset(1) で変更できます。 --- [管理番号 103] (最終更新 1999/02/17 23:58:45) Q. XFree86 を install しましたが、accelerated server で support されて いることになっている chip(Mach64)なのに、X server が起動しません。な ぜ? A. Chip maker によっては、Chip の型番が同じでも、suffix が{付いている| 違う}と制御方法や spec が異なるため、正常に制御できないことがあります。 貴方が使っている Mach64CT は、XFree86-3.1.2S では正常に制御できないこ とが知られています(対応した beta 版が出ています)。XFree86 はできる限 り最新版を使用し、また release note をよく読んで下さい。「英語だから…」 という言い訳は、許しません :-<。 --- [管理番号 104] (最終更新 1999/02/17 23:58:45) Q. XFree86-3.2 を install しましたが、画面の解像度が上がってくれま せん(800x600 にしかなりません)。なぜでしょう? A. X -probeonly で検出された最大 dot clock に対応する mode line を有効 にして、その解像度のみを指定してもう一度 X -probeonly を実行して message を見てください。「BIOS からの情報がほげほげ」と言われていませ んか? --- [管理番号 105] (最終更新 1999/02/24 03:59:21) Q. XF86Configの設定をしていますが、HorizSync, VertRefresh, DotClock, HTimings, VTimings などの意味がさっぱりわかりません。 A. 詳しい解説が にあります。 --- [管理番号 106] (最終更新 2001/01/08 04:35:38) Q. X で使える k14 (14ドット) よりも小さい font があると聞いたのですが。 A. 以下のフォントが ports 及び packages にあります。 要町(かなめちょう) 12x12ドット ports/japanese/k12 ナガ10(なが・じゅう) 10x10ドット ports/japanese/k10 恵梨沙フォント 10x8ドット ports/japanese/elisa10x8 8x8ドット ports/japanese/elisa8x8 また、ports/japanese/netscape-fonts は上記のフォントを含みますので、こ の ports をインストールするか、日本語のサポートされた Netscape をイン ストールすれば、これらのフォントも同時にインストールされます。 --- [管理番号 108] (最終更新 1999/02/17 23:58:45) Q. XFree86 で PS/2 マウス を使う際、マウスを動かすと画面の上の方をマウ スカーソルがせわしなく動いて、マウスを動かすのをやめると左上隅に止まっ てしまってコントロールできません。どうしたらよいでしょう。 A. XF86Config の Section "Pointer" で、 Protocol "Microsoft" になって いませんか。Protocol "PS/2" にしてください。 --- [管理番号 110] (最終更新 1999/02/17 23:58:45) Q. Xを起動した後 CAPSと Ctrlキーを入れ換えたい。 A. 以下のファイルを ~/.Xmodmap などに保存しておき,Xの起動時に xmodmap ~/.Xmodmap などして読み込ませればうまくいくとおもいます. -- ここから -- remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L -- ここまで -- XFree86 3.2以降の場合は XF86Config の "Keyboard" セクションに XkbOptions "ctrl:swapcaps" を加えるだけでOKです。 --- [管理番号 111] (最終更新 1999/02/17 23:58:45) Q. 日本語106キーボードを使ってるんですが Xで キートップと画面に出る文 字が異なって困っています。キートップを無視して 英語キーボード配列で使 うにはどうしたらいいでしょうか? A. 日本語キーボードを ASCII 配列のように快適に使うには、まず XF86Config の "Keyboard" セクションに XkbModel "jp106" XkbLayout "us" XkbOptions "ctrl:swapcaps" を加えます。XkbDisable されていたらコメントアウトしておきます。 # 最後の XkbOptions は、xmodmap で行なうこともできます。両方設定する # と戻ってしまうので注意して下さい。 あと ~/.Xmodmap に keycode 49 = Escape keycode 51 = grave asciitilde keycode 129 = space keycode 131 = space keycode 123 = backslash bar keycode 133 = backslash bar を加えて % xmodmap ~/.Xmodmap とします。すると [半角/全角] → Esc ["]", "}"] → "`", "~" [無変換] → space [変換 ] → space ["\", "_"] → "\", "|" ["¥", "|"] → "\", "|" になります。 --- [管理番号 113] (最終更新 1999/02/17 23:58:45) Q. Xの上で kterm -C と立ち上げてもコンソールになってくれません。 (メッセージが表示されてくれない) A. /dev/consoleの オーナの問題です。 rootになり /etc/fbtab というファイルを作って内容を /dev/ttyv0 0600 /dev/console にしてください。そうすれば、consoleの所有者が /dev/ttyv0 に loginした人になります。 --- [管理番号 114] (最終更新 1999/02/17 23:58:45) Q. マウスでカットはできるのですが,ペーストができません. どうやら両ボタン同時クリックの機能が働いていない様です. A. XFree86Configの設定がデフォルトでは Emulate3Buttons がコメントアウトされているのでこれを有効にし,Xを立ち上げる とこの問題は解消されます. --- [管理番号 116] (最終更新 1999/02/17 23:58:45) Q. X サーバを終了させた後コンソールに戻ってくると、 どんなキーを叩いても変な顔文字フォントのようなものしか 出てこなくなってしまいます。 shutdown もできないので強制リセットかネットワークからログインして 再起動するしか手段がなくなってしまいます。 A. X サーバを終了させた後、CTRL + ? (実際には CTRL + SHIFT + / )を 叩いて下さい。これで普通に文字を入力できるようになるはずです。 --- [管理番号 119] (最終更新 1999/02/17 23:58:45) Q. kinput2 で BSキーが使えません。Delキーは使えます。何か設定が悪いの でしょうか? A. システムによって“一文字前削除”キーの割り当てが異ります。FreeBSD の場合は Delete(^?) が削除キーとなっています。対策として、アプリケー ションの設定ファイルを変更してBS に Del に相当するキーを割り当てること ができます。 o kinput2 + canna の場合 ~/.canna に (load "/usr/local/canna/lib/default.canna") (global-unbind-key-function 'delete-previous) (global-set-key "\Backspace" 'delete-previous) と記述します。 o kinput2 + wnn の場合 /usr/X11R6/lib/X11/ccdef/ccdef.kinput2 の中から includeしている rule(rule.eggfuncなど)の "" '^H' "" backspace "" Delete "" delete という記述を "" '^H' "" backspace "" Delete "" backspace のように書き換えます。 --- [管理番号 121] (最終更新 2000/01/20 19:42:16) Q. fvwm95 や Afterstep 等の Window Manager で、スタートメニューや popup メニューに出てくるアプリケーションが動作しません。 A. スタートメニューにあるアプリケーションは通常その Window Manager の package には付属してこないので、別途 packages や ports 等からインストー ルしてやる必要があります。 またメニューには記述されていても、packages や ports が存在しない場合 もあります。 --- [管理番号 122] (最終更新 1999/02/17 23:58:45) Q. fvwm95 のスタートメニューが Linux'95 じゃ悲しいので、FreeBSD'95 と かにできないのでしょうか? A. package の fbsd-icons-1.0.tgz を利用すれば可能です。このpackageの中 には、スタートメニューに使える xpm ファイルが含まれています。これを使 えば、FreeBSD'95だけでなくdaemon君付きのスタートメニューにもできます。 packageをインストールした後、自分の .fvwm95rc の #--------- Taskbar's start menu DestroyMenu "StartMenu" AddToMenu "StartMenu@freebsd2-menu.xpm@^#808080^" \ ^^^^^^^^^^^^^^^^^ を利用する xpm ファイル名に変更して下さい。 --- [管理番号 123] (最終更新 1999/02/17 23:58:45) Q. Kterm や Mule の行間を空けたいのですが A. man kterm より‥‥ kterm -lsp dots # dots: 行間ドット数 あるいは ~/.Xresourses や ~/.Xdefaults などに kterm*lineSpace: n # n: 行間ドット数 と記述しましょう。 Mule も同様です。( kterm を mule に変えるだけ )。 --- [管理番号 124] (最終更新 2004/04/09 05:05:39) Q. moused を使用している時は XF86Config にはどう書けばよいのでしょうか。 A. に書いてありますが、moused を使用しているときは、マウスの種類に関わら ず、XF86Config には Protocol "Auto" Device "/dev/sysmouse" と書きます。 --- [管理番号 125] (最終更新 1999/02/17 23:58:45) Q. 大型ディスプレイ(21インチ程度) を用いて、1600x1200 の解像度で X Window System を使いたいと思っています。 このような場合、 ビデオカードはどのようなものを選び、設定ではどの点を注意したら よいのでしょうか? A. 基本的な注意点 1. ディスプレイ本体の解像度と周波数 2. ビデオカードの解像度と周波数 3. 上記の情報をより適合した組み合わせを確認する。 4. ビデオカードは refresh rate が高いものを選ぶ 5. 色数が多い場合はビデオカードに大きなメモリが必要 6. 高い周波数を使わないとフリッカが出るので注意 具体的な組み合わせ例 (情報提供者の表現より、上段:ビデオカード、下段:モニタ) 1. Number 9 の なんとか 64Pro --> 1600x1280 Nanao の17inch 2. Matrox Millennium(8MB) --> 1600x1200 16bpp Totoku CV213: Horizsync30-108,VertRefresh50-160Hz 3. #9 Imagine 128-II(4MB) --> 1600x1200 8bpp Sony 20SE3: HorizSync 30-96,VertRefresh 48-160 4. Matrox MGA Millennium 4Mb --> 1600x1200 65536 colors Nanao F780: 95kHz 5. VIRGE-VX 8MB --- [管理番号 126] (最終更新 1999/02/17 23:58:45) Q. xinit: not found と言われて、X が起動できません。startx でも同じです。 A. コマンド検索パスに /usr/X11R6/bin が入っていないのでは? 例えば、echo $PATH で確認できます。 --- [管理番号 127] (最終更新 1999/02/17 23:58:45) Q. 「xterm」を「-ls」オプションをつけて起動すると wtmp に書き込みが実 施されますが、これを止めるには? A. A1. よい子は、そういう異常なことはしません。 A2. ソースに手を加えます。以下のような修正で望み通り動くはずです。 - - - - - - - - *** programs/xterm/main.c.org Thu Jun 26 22:25:44 1997 --- programs/xterm/main.c Tue Aug 26 11:51:46 1997 *************** *** 335,342 **** --- 335,344 ---- #if (BSD >= 199103) #define USE_POSIX_WAIT + /* #define LASTLOG #define WTMP + */ #define HAS_SAVED_IDS_AND_SETEUID #endif - - - - - - - - --- [管理番号 128] (最終更新 1999/02/17 23:58:45) Q. 質問したら、「chmod(2) を見てください」と言われました。どういうこと ですか? A. この場合は「マニュアルの 2 章の chmod を見てください」という意味です。 たとえば、 # man 2 chmod として見ます。詳しくは、man(1) を見てください。man manです。 --- [管理番号 130] (最終更新 2002/08/24 06:22:40) Q. カレントディレクトリを PATH に含めてはいけないと言われた のですが、どうしてですか? A. セキュリティホールになりうるからです。 もしカレントディレクトリが PATH に含まれている状態で、 % cd /tmp % ls としたとき、/tmp/ls というファイルがあったら、/bin/ls でなく /tmp/ls が実行されてしまいます。 もしかしたら /tmp/ls には #!/bin/sh /bin/rm -rf $HOME & と書いてあるかもしれません。その場合、あなたのホームディレクトリは 全て消えてしまいます。同様に、他人のホームディレクトリを ls で覗いた 場合、そこに置いてある得体の知れない ls を実行してしまうかもしれません。 どうしてもカレントディレクトリを PATH に含めたいならば、せめて PATH の 最後にしましょう (でもやめておいた方がよいと思います)。 「と言っても、カレントディレクトリにあるコマンドを実行するとき タイプ量が増えてしまいのがイヤだから…」 という方は、tcsh・bash・zsh などの高機能なシェルを使って、補完 機能を活用しましょう (FreeBSD 4.1-RELEASE 以降での csh(1) は、 tcsh(1) と全く同じです)。 カレントディレクトリに a.out がある状態で % ./a(TAB を押す) とすると % ./a.out と展開されます。他に a から始まるファイルがある場合は % ./a.(TAB を押す) とします。 --- [管理番号 131] (最終更新 1999/02/17 23:58:45) Q. 送信してしまったメールを取り消したいのですが、どんなコマンドを使用 すればよいのでしょうか? A. そのようなコマンドはありません。 --- [管理番号 132] (最終更新 1999/02/17 23:58:45) Q. biffで 日本語がきちんと表示されない。 A. [FreeBSD-users-jp 378]をご覧下さい。 --- [管理番号 133] (最終更新 2000/11/08 01:37:11) Q. FDclone でキーに割り当てられた機能がおかしいのですが、何か設定が 悪いのでしょうか? A. FDclone は TERMCAP のエントリからキーコードを取得し、エントリのない ものは VT200 互換のキーコードを割当てるように設計されています。 しかし、FreeBSD では termcap(5) エントリの記述に問題があるため、一部 効かないキーが出てきてしまいます。 FDclone 1.03 以降では、このような実状を反映しない TERMCAP エントリ のために keymap コマンドが設けられました。keymap コマンドを ~/.fdrc ファイルに記述することによりこの問題を回避することが出来ます。 この設定について作者の白井 隆氏が、 「FreeBSD で FDclone なページ」 で解説しています。参考にするといいでしょう。 --- [管理番号 134] (最終更新 2004/04/09 05:05:29) Q. 「名前付きパイプ」を作りたいんですが、mknod hogehoge p としたら usage: mknod name [b | c] major minor と叱られてしまいました。何か別のコマンドで作れるんでしょうか? A. Solaris など、mknod(1) で名前付きパイプを作成できる UNIX もあり ますが、FreeBSD では % mkfifo hogehoge とします。mkfifo(1) は POSIX 準拠のコマンドなので、こちらの方が より一般的でしょう。Solaris にも mkfifo コマンドはあります。 「名前つきパイプ」は FreeBSD では「FIFO」と呼びます。詳しくは mkfifo(1) や ls(1) を参照してください。 --- [管理番号 137] (最終更新 2002/02/14 00:39:59) Q. packagesのソフトがちゃんと動かないのですが? A. packagesのソフトの概要はつぎのようにして見ることができます。 # pkg_info pkgname.tgz これは /var/db/pkg/pkgname/+DESC に登録されるものです。portsでは /usr/ports/category/pkgname/pkg-descr が同じものです。内容だけでなく、 インストールについての注意が書いてあるときもあるので確認してみましょう。 --- [管理番号 138] (最終更新 1999/02/17 23:58:45) Q. 日本語対応の lynx というものはあるのでしょうか? A. バージョン2.5以降の lynx は既に国際化されています。 (参考: ) 日本語の web ページが化けて表示される場合は、lynx を起動して o (オプション) で display (C)haracter set : Japanese (EUC) Raw 8-bit or CJK m(O)de : ON になっているか確認して下さい。 一応、日本語のブラウズはできる lynx ですが、 TEXTFIELD や TEXTAREA への 入力時 ブックマークへの登録時 に日本語が化けるのを修正したものが、port/packageの japanese/ja-lynx です。 --- [管理番号 139] (最終更新 1999/02/17 23:58:45) Q. /: file system full このエラ−は何を意味するのでしょうか? A. Diskが満杯です。この場合は / (root) パーティションが溢れています。 du コマンドで確認しましょう。 --- [管理番号 140] (最終更新 2004/04/09 05:05:18) Q. プロファイラ・プロファイリングって何ですか? プロファイラの 使い方がわかりません。 A. プログラムの各関数が何回呼ばれ、実行時間がどれくらいかかったか 統計をとることをプロファイリングと言います。プロファイラは その際に使用するツールです。 プログラムの高速化をしたい場合、手あたり次第に修正するの ではなく、まずプロファイラで解析し、どこがボトルネックに なっているか見極めましょう。 以下、C 言語でのプロファイリングの例を紹介します。 [ステップ 1] プログラムをコンパイルするとき、-pg オプションを付けます。 % cc -pg hoge.c もし % cc -pg hoge.c ld: -lc_p: no match とエラーなった場合は、/usr/lib/libc_p.a がないと言われて いますので、基本配布物である proflibs をインストールしま しょう。 [ステップ 2] コンパイルしたプログラムを実行します。 % ./a.out カレントディレクトリに a.out.gmon というファイルが作ら れているはずです (環境によっては gmon.out かもしれません)。 このファイルには、関数に入るときと出るときの時刻などの 情報が記録されています。 [ステップ 3] 統計結果を表示します。 % gprof a.out a.out.gmon (略) % cumulative self self total time seconds seconds calls ms/call ms/call name 63.9 2.53 2.53 1 2534.18 2733.40 func1 [2] 5.0 3.32 0.20 1 199.22 199.22 func2 [7] 4.3 3.49 0.17 main [1] 3.4 3.63 0.14 664580 0.00 0.00 vfprintf [4] (略) func1 が全体の実行時間の 63.9% を占めているのに対し、 func2 は 5.0% であることがわかります。 func1 を 2倍高速化すれば、プログラム全体では 31% の実行 時間削減につながりますが、func2 を 2倍高速化した場合は 2.5% しか削減されません。 これにより、まずは func1 の高速化に着手すべき、という 結論が得られます。より詳細な情報は gprof(1) を参照して ください。 gprof は、C 言語用のプロファイラです。他の言語でも、プロ ファイラが用意されているはずです。例えば Perl なら DProf パッケージを使います (p5-Devel-DProf として port/package が用意されています)。 --- [管理番号 141] (最終更新 1999/02/17 23:58:45) Q. ~/.netrc ファイルの書き方がわかりません。man netrcも存在しません。 A. .netrc は man 1 ftp に記述されています。 このファイルのモードは 600(owner 以外が一切読み書きできない状態)にし てください。 --- [管理番号 144] (最終更新 1999/02/17 23:58:45) Q. jperl で perl: warning: Setting locale failed. perl: warning: Please check that your locale setting: LC_ALL = (unset), LANG = "ja_JP.EUC" are supported and installed on your system. perl: warning: Falling back to the standard locale("C"). と言われます。 A. 環境変数に PERL_BADLANG=0 を設定してください。 例:csh 系(tcsh等) setenv PERL_BADLANG 0 bsh 系(sh, bash等) export PERL_BADLANG=0 --- [管理番号 145] (最終更新 2003/10/16 23:20:29) Q. 起動直後に表示されるメッセージが速すぎて読めないのですが。 A. いくつか方法があります。 A1. /sbin/dmesg | more とする。 A2. /var/log/messages を見る。 A3. デバイスのプローブが終わった後、すなわち、 Automatic reboot in progress... と表示された後で、Scroll Lock キーを押すと、 PageUp , PageDown , カーソル上下キー で上下にメッセージを移動できます。再度 Scroll Lock キーを押すと 元に戻ります。 NEC PC-9801/9821 をお使いの場合は、 Scroll Lock -> VF3 Page Up -> ROLLDOWN Page Down -> ROLLUP のキーを使ってください。 A4. 4.5-RELEASE 以降なら、/boot/loader がカウントダウンしている時に リターンキー以外のキーを押し、 boot -p として起動すると、起動メッセージを1行ずつ確認することができます。 なお、フロッピーディスクでインストールしているときは、A1、A2 の 方法は使えません。 boot -v などで起動すると、起動メッセージの最初の部分が表示されなく なります。これに関しては [管理番号 1334] をご覧下さい。 --- [管理番号 147] (最終更新 2001/10/19 21:29:41) Q. FreeBSD 上で動作する ML (Meta Language) はありますか? A. 2001年9月初旬の時点で、以下のものが ports に入っています。 詳しくは、それぞれの pkg-comment、pkg-descr ファイルを参照して下さい。 [Standard ML of New Jersey] ports/lang/sml-nj/ ports/lang/sml-nj-devel/ the SML '97 definition に準拠した実装です。(Standard ML には 1990 年の定義と 1997年の定義の 2種類があり、それぞれ SML '97、SML '90 とも呼ばれます)。 次の Moscow ML の方が軽いそうです。 [Moscow ML] ports/lang/moscow_ml 1996 年に見直された Standard ML の中心となる言語の実装です。 モジュール機構は Version 2.0 以降で実装されています。 [Caml Light] ports/lang/caml-light Standard ML に似た (つまり少し違う) ML 言語です。 [Objective Caml] ports/lang/ocaml Caml Light をベースに、クラスに基づいたオブジェクト指向拡張と Standard ML 風の強力なモジュール機構を加えたものです。 [nML] ports/lang/nml Standard ML と Objective Caml を融合した両者の方言です。 Standard ML については を参照して下さい。 尚、code を書くのに emacs を使用している場合は、ports/lang/sml-mode.el も役に立つでしょう。 --- [管理番号 149] (最終更新 1999/02/17 23:58:45) Q. FreeBSD-users-jp の mail の数が多いので、 メールを ニュースリーダ gnus で読んでいる(あらかじめ procmail で別 folder に分けておき C-u M-x gnus :Mail とやっています)のですが、Mailing List の Subject に [FreeBSD-users-jp nnnnn] が有るためthread に分類表示されません A. (setq gnus-thread-ignore-subject t) で、上手くいきませんか? --- [管理番号 151] (最終更新 1999/03/10 02:01:12) Q. root 権限で他のユーザのパスワードを passwd で変更することは可能なのですが、 一般ユーザが自分で passwd を使ってパスワードを変更しようとすると、 passwd: error opening database: /etc/pwd.db.: Permission denied passwd: /etc/master.passwd: unchanged というエラーが発生して書き換えることができません。 A. passwd の所有者が root で、setuid bit は立っていますか? (以降の作業は、お使いのバージョンにより異なります。まず、uname -r として お使いのバージョンを確認してください)。 2.2.X の場合: 正常な状態であれば、 # cd /usr/bin # ls -l passwd -r-sr-xr-x 2 root bin 36864 Jul 22 1998 passwd となります。もしこうなっていない場合は、 # chmod u+s passwd と実行して、setuid bit を立てましょう。 3.X の場合: 正常な状態であれば、 # cd /usr/bin # ls -ol passwd -r-sr-xr-x 2 root wheel schg 24976 Jan 17 21:54 passwd となります。もしこうなっていない場合は、 # chflags noschg passwd # chmod u+s passwd # chflags schg passwd と実行して、setuid bit を立てましょう。 詳しくは、chmod(1)、chflags(1) を読んでください。 --- [管理番号 152] (最終更新 1999/02/17 23:58:45) Q. プロセスを60くらい立ち上げたあたりから、新しくプロセスを起動しよう とすると、 % less foo.gz No more processes. No more processes. "foo.gz" may be a binary file. See it anyway? と言われてしまいます。カーネルの NPROC の値は MAXUSERS=5 #define NPROC (40 + 32 * MAXUSERS) と設定しているので、十分だと思いますが、どうしてでしょうか。 A. NPROCの数は、全プロセスの上限値であって、ひとりのユーザが使用できる プロセスの上限ではありません。通常、ひとりのユーザが実行できるプロセス 数には上限値が設定されており、 sh(bash) ulimit csh(tcsh) limit の各コマンドで変更できます。 また、systat を利用すれば、その時点でのシステムの利用情報を得ることが できます。詳しくは man systat を見てください。 1ユーザ当たりのプロセスのソフトリミットを変える方法はカーネルのリコン フィグしか知りません。(3.0系では/etc/login.confというファイルでソフト リミットを変えられるそうです)自分は options CHILD_MAX=128 ついでに、、、 options OPEN_MAX=128 を指定しています。これでソフトリミットが128になります。 sysctlコマンドでも 変更出来ると思います。 --- [管理番号 153] (最終更新 2001/08/12 05:25:06) Q. ports/packages から apache をインストールしましたが、CGIの使いかたが わかりません。 A. こちらを見てみてください。 日本語のページ --- [管理番号 154] (最終更新 1999/02/17 23:58:45) Q. 外部にメールを送るのにモデムを使用している場合、メーラで送信した 後、モデムが繋がるまではメールがどこかに保存されていると思います。 この保存されているメールの送信をやめたい場合は、どんなコマンドを使用す れよいのでしょうか? A. そのようなコマンドはありません。;p どうしても削除したいとき、 sendmail を使っている場合には 以下の手順で キューから削除することで 事実上送信をやめることができます。 1. su でスーパーユーザーになる。 2. mailq コマンドを実行し、メールキューの状態を確認する。 $ mailq Mail Queue (1 request) --Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient------------ JAA00501 10 Thu Sep 18 09:48 ryuchi 1dummy@hogegoe.foo.co.jp Q-ID がメールのIDです。 発信者と送信先の情報があわせて表示されますから、 これを頼りに削除したいメールの IDを判定する。 3. sendmail の PID を得る。 $ ps ax|grep sendmail 161 ?? Is 0:00.39 sendmail: accepting connections on port 25 (sendmail) 3784 p0 S+ 0:00.02 grep sendmail 4. sendmail を kill する。PID は 3.で得た sendmail の pid. $ kill PID 5. キューからファイル /var/spool/mqueue/[dq]f ( には mailqで 調べた Q-ID を指定。) メールは 2つのファイルに分かれてキューに格納されて いるので df および qf で始まる 2つのファイルを削除する。 $ rm /var/spool/mqueue/[dq]fJAA00501 6. sendmail を再起動する。 $ /usr/sbin/sendmail -bd -q30m --- [管理番号 155] (最終更新 2004/04/09 05:05:46) Q. vipw を実行すると、意図しない editor が起動されます。 vipw で起動する editor を好みのものに変えたいのですが。 A. vipw は、EDITOR 環境変数を見て指定された editor を起動します。 EDITOR 環境変数が定義されていない場合 (デフォルト) は /usr/bin/nvi が 起動されます。 好みの editor を使いたい場合は、.cshrc 等 shell のスタートアップ ファイルで EDITOR 環境変数を設定して下さい。 意図しない editor が起動される場合は、以下の点を確認してみて下さい。 ・ホームディレクトリの shell のスタートアップファイルで EDITOR 環境変数が設定されていたら、それを変更して下さい。 ・system の shell のスタートアップファイル (/etc/csh.cshrc, /etc/profile 等) または /etc/login.conf で EDITOR 環境変数が 定義されている。 この場合は、EDITOR 環境変数が定義されている箇所を変更するか、 または個人の shell のスタートアップファイルで EDITOR 環境変数を 設定して下さい。 (unsetenv EDITOR や unset EDITOR とすればデフォルトの editor が 使われます)。 --- [管理番号 156] (最終更新 1999/02/17 23:58:45) Q. /etc/resolve.conf に設定してあるネームサーバが応答しません。 A. "resolve.conf" ではなく "resolv.conf" です。"e" が余分です。 --- [管理番号 157] (最終更新 1999/02/17 23:58:45) Q. /etc/resolv.conf に設定してあるネームサーバが応答しません。ちゃんと、 namesarver 192.168.1.1 のようにしてあるのですが。 A. "namesarver" ではなく "nameserver" です。"a" ではなく "e" です。 --- [管理番号 158] (最終更新 2001/10/14 11:51:14) Q. 小さいファイルを連続してディスクに書き込むと、すごく遅いのですが。 A. FreeBSD のデフォルトでは、ファイルのデータ本体は遅延書き込みされますが、 i-node (メタデータ) の更新は同期的に行なわれているため、頻繁にファイルの 作成・削除・更新をするような動作は比較的低速です。 これは安全性を考慮した上でのことで、安全性や機能を少し犠牲にすれば 高速化することができます。そのため目的に応じて使い分ける必要がある でしょう。 1. mount(8) 時に -o async オプションを使用すると、i-node の更新も非 同期に行います。例えば、/etc/fstab に /dev/ccd0c /a ufs rw,async 0 2 のように書きます。ただし、速くなる代りに信頼性は犠牲にされます。 mount(8) によると async 指定したファイルシステムのすべての I/O を非同期に行います。 このオプションを指定することは非常に危険ですので、システ ムクラッシュ時にファイルシステムを作り直す用意ができてい ないかぎりは使うべきではありません。 とあります。 ちなみに Linux では、この async がデフォルトになっています。 2. 用途によっては -o noatime オプションも有効です。これはファイルへ のアクセス時に、ファイルの最終アクセス日時を更新しません。ただし、 このアクセス日時を利用するようなアプリケーションは上手く動かない ので注意が必要です。/etc/fstab には /dev/ccd0c /a ufs rw,async,noatime 0 2 のように書きます。 3. FreeBSD 3.0-RELEASE からはこれらに加えて softupdates という機能 が加わっています。これは、安全性の犠牲なしにファイル I/O の高速 化を行おうとするもので、場合によってはかなりの効果が期待できます。 softupdates の解説 FreeBSD 4.1-RELEASE 以降は、デフォルトで GENERIC カーネルに softupdates 機能が含まれています。 a) ファイルシステムに対して softupdates を有効にします。この時 tunefs(8) を使うにはファイルシステムがアンマウントされた状態 でなければなりません。シングルユーザモードで作業すれば良いで しょう。 # tunefs -n enable /a b) この機能を使うとき -o async オプションは無意味です。 /dev/ccd0c /a ufs rw,noatime 0 2 また、上手くできたか確認するには mount コマンドをオプションなし で実行します。 % mount /dev/ccd0c on /a (local, noatime, soft-updates, writes: ... ^^^^^^^^^^^^ 4. これ以外で高速化の鍵となるものは、PCI IDE コントローラのフラグ設 定や、newfs(8) 時のオプション指定の最適な組合せ、及び ccd(4) や vinum(8) を使用してディスクをストライピングすることも考慮する価 値があるでしょう。 --- [管理番号 160] (最終更新 1999/02/17 23:58:45) Q. samba-1.9.15p8 を用いて、このプリンタを LAN 上の Windows 95 機と 共有しているのですが、95機からプリントジョブを送ると、最後に何も 印刷されていない紙が一枚必ず出てきます。 A. samba が使用する /etc/printcap の entry に sf は入っていますか. --- [管理番号 161] (最終更新 1999/02/17 23:58:45) Q. NIS server を立ち上げたんですが、NIS client を接続すると、途端に server 側で port mapper が子 process 数の限界一杯(私の場合は 128 個…) に起動されて、どとーのように machine が重くなります。どうしたものでしょ う? もちろん、DES は internat 版を install してあります。 A. 私の場合、NIS server の /etc/networks(当然 NIS で共有もされる)を 正しく設定したら、ピタッとその現象は出なくなりました。しくしく。 --- [管理番号 162] (最終更新 1999/02/17 23:58:45) Q. ログインすると If the info distribution has been loaded on this machine, the FreeBSD Handbook will be in file:/usr/share/doc/handbook and the FAQ in file:/usr/share/doc/FAQ Type /stand/sysinstall to re-enter the installation and configuration utility. と言うメッセージが出るのですが、これは消す事はできないのでしょうか? A. /etc/motd を変更すれば変わります。man motdを見てください。 motdとは message of the day の略です。 --- [管理番号 163] (最終更新 1999/02/17 23:58:45) Q. プリンタに出力できません。調べてみるとスプールディレクトリにはちゃ んと出力されているのでスプールはされているみたいです。また、どうも lpd が動いてないみたいなのでシェル上で lpd & して動かそうとしてもすぐ終了 してしまいます。ログを覗いたら "startup: duplicate spool directories" なメッセージが入ってました。 A. スプールディレクトリが重複しています。/etc/printcap の異なるエント リで同じスプールディレクトリを指定してませんか。別々のエントリには異な るスプールディレクトリを指定しましょう。/etc/printcapを参考にして /var/spool/output以下に mkdir すればいいでしょう。 --- [管理番号 164] (最終更新 1999/02/17 23:58:45) Q. X を入れて他のマシンの X端末にしたいんですけど。 A. /usr/X11R6/lib/X11/xdm のしたの file を以下のようにいじります。 diff -u xdm.dist/Xaccess xdm/Xaccess --- xdm.dist/Xaccess Mon Jun 2 23:22:09 1997 +++ xdm/Xaccess Thu Jun 26 21:02:35 1997 @@ -55,7 +55,7 @@ # so this may not work in all environments. # -* CHOOSER BROADCAST #any indirect host can get a chooser +#* CHOOSER BROADCAST #any indirect host can get a chooser # # If you'd prefer to configure the set of hosts each terminal sees, @@ -66,3 +66,4 @@ #%hostlist host-a host-b #* CHOOSER %hostlist # +* CHOOSER host1 host2 host3 ... (自分で欲しいリストを書く) diff -u xdm.dist/Xservers xdm/Xservers --- xdm.dist/Xservers Mon Jun 2 23:22:08 1997 +++ xdm/Xservers Thu Jun 26 21:03:51 1997 @@ -10,4 +10,4 @@ # look like: # XTerminalName:0 foreign # -:0 local /usr/X11R6/bin/X +#:0 local /usr/X11R6/bin/X diff -u xdm.dist/xdm-config xdm/xdm-config --- xdm.dist/xdm-config Mon Jun 2 23:22:08 1997 +++ xdm/xdm-config Thu Jun 26 21:03:31 1997 @@ -17,3 +17,4 @@ DisplayManager*resources: /usr/X11R6/lib/X11/xdm/Xresources DisplayManager*session: /usr/X11R6/lib/X11/xdm/Xsession DisplayManager*authComplain: false +DisplayManager._0.chooser: /usr/X11R6/lib/X11/xdm/chooser で、xdm を起動する時に /usr/X11R6/bin/xdm touch /usr/X11R6/lib/X11/xdm/xdm-pid /usr/X11R6/bin/X -indirect `hostname` で起動します。 ---- --- [管理番号 165] (最終更新 1999/02/17 23:58:45) Q. /usr/local/etc/rc.d/hogehoged.sh という起動スクリプトを用意したが、 特定のホストのみ実行するようにしたい。どうするのが一般的でしょう? A. 以下の方法があります。 A1. その起動スクリプト中でホスト名を見て切り分ける。 例) servername=hogeserv if [ `hostname` = $servername ]; then /usr/local/libexec/hogehoged && echo ' hogehoged' fi A2. 実行させたいホストの /etc/rc.conf にのみ、 hogehoged=YES と書いておき、起動スクリプト中では、 if [ x$hogehoged = xYES ]; then /usr/local/libexec/hogehoged && echo ' hogehoged' fi と書いておく。 --- [管理番号 166] (最終更新 1999/02/17 23:58:45) Q. 付属の mail コマンドで日本語メールを送ると、mail コマンドに与えたテ キストの文字コードがそのまま出て行ってしまいます。色々と不便なのでどん なコードで書いても自動的に JIS になって出て行って欲しいのですが。 A. 出て行く時に nkf で JIS コードに変換するのがよいでしょう。具体的に は次のようにします。 ・まず,/etc/mail.rc に, set sendmail=/usr/local/bin/sendmail.wrap 等と,一行加える. ・上で指定した,/usr/local/bin/sendmail.wrap として, 以下のようなシェルスクリプトを作成し,実行できるようにしておく. ------ ここから ------ #!/bin/sh /usr/local/bin/nkf -j | /usr/sbin/sendmail $* ------ ここまで ------ --- [管理番号 167] (最終更新 2000/11/08 01:36:18) Q. ある日 突然 サーバにしているマシンで Apr 21 07:47:39 svr1 /kernel: file: table is full というメッセージが出ました。 A. kernel が扱えるファイル数が足りないようです。これは kernel 内の maxfiles という変数で決められています。これを増やすには kernel 設定ファイルの maxusers を増やして kernel を再構築しましょう。 ident GENERIC maxusers 32 このパラメータは、/sys/compile//opt_param.h 上で、 #define MAXUSERS 32 というふうに定義され、この MAXUSERS が /sys/conf/param.c で、 #define NPROC (20 + 16 * MAXUSERS) int maxproc = NPROC; /* maximum # of processes */ int maxfiles = NPROC*2; /* system wide open files limit */ というふうに利用されています。 また この変数は sysctl(8) コマンドを使って動的に変更出来ます。 [参照方法] # sysctl -A | grep maxfile kern.maxfiles: 360 kern.maxfilesperproc: 360 [変更方法] # sysctl -w kern.maxfiles=600 kern.maxfiles: 360 -> 600 起動時に自動的に設定するには、/etc/rc.local を作成して上記のコマンド を書いておくか、または、3.5R および 4.0R 以降であれば、 /etc/sysctl.conf に次のように記述します。こうしておけば /etc/rc.sysctl が設定してくれます。 kern.maxfiles=600 --- [管理番号 168] (最終更新 1999/02/17 23:58:45) Q. 8文字より長いログイン名を登録したい。 A. FreeBSD2.x 以前はOSが対応していませんでしたが、FreeBSD3.0からは 16文字までのログイン名を使えるようになりました。 しかし、packages や、ports は、ある程度考慮されているとは思いますが、 UNIX では、user 名は 8 文字である事が多かったため、 freesoft や、商用 soft で、16 文字の user 名をうまく扱えるかどうか、 確認が必要かもしれません。 --- [管理番号 169] (最終更新 1999/02/17 23:58:45) Q. メールアドレスとして、ユーザ名の部分(@の前の部分)に 長い文字列を使いたい。 A. ユーザ名の部分は、FreeBSD2.x以前は8文字まで、3.0以降では 16文字まで使えます。 それより長いものを使うには /etc/aliases で対応させましょう。 詳細は、man aliases。 /etc/aliasesの修正後は newaliasesコマンドを忘れずに。 --- [管理番号 172] (最終更新 1999/02/17 23:58:45) Q. メールサーバ以外のマシンにログインした時は biff や xbiffが反応しな いのですが。 A. biff, xbiff 自体はスプール(新着メールが溜るディレクトリ)を見るだけ ですので メールサーバではないマシンでは 何もメールが届きませんので 反応しないわけです。 xbiffでなんとかするのであれば、 メールサーバにあるメイルスプールディレクトリを NFS で共有する or rsh でメールサーバ側で xbiffを起動する ということになると思います。 また、YOUBIN という comsat を受けてアナウンスしてくれる枠組があります。 FreeBSD の ports にもなっています。ports/mail/youbin です。xbiff の replacement として xyoubin が用意されています。また、YOUBIN に対応した 高機能なクライアントとして xpbiff があります。 --- [管理番号 173] (最終更新 2000/12/07 02:37:24) Q. mailx コマンドはないのでしょうか? A. FreeBSD には mail コマンドしかありません。mailx は SYSTEM V UNIX で 拡張されたものです。 --- [管理番号 174] (最終更新 1999/02/17 23:58:45) Q. FreeBSDのインストールが終ったDiskを まるごとコピーしたいのですが。 dd if=/dev/wd0a of=/dev/wd1a でいいのでしょうか? A. よくありません。dump + restore などのツールを使いましょう。 --- [管理番号 175] (最終更新 2004/04/09 05:05:14) Q. フロッピー 1枚で起動する FreeBSD の作り方を教えてください。 A. こちらのサイトではブラウザ上で設定を行ない、フロッピー イメージをダウンロードすることができます。proxy サーバ、 ゲートウェイサーバなどの用途に使えます。 自分でいろいろとカスタマイズしたい方は PicoBSD がおすすめです。 --- [管理番号 177] (最終更新 1999/11/19 15:50:29) Q. FreeBSD の lpr、lpd では リモートプリンタの /etc/printcap の if 等で指定する入力フィルタは無効だと聞いたのですが? A. 以前のバージョンの FreeBSD では rm、rp が指定された printcap エントリでも if、nf、gf 等のフィルタ指定は無視されていました。 しかし、少なくとも FreeBSD 2.2.6 RELEASE 以降の 2.2.x 系列および 3.0 RELEASE 以降の 3.0 系列のバージョンではリモートプリンタに 対してもフィルタ指定は有効になっています。 --- [管理番号 178] (最終更新 2000/06/25 02:30:47) Q. Samba の設定について書かれたドキュメントはありませんか? A. samba-1.9.17 以降を ports/packages からインストールした場合は、 /usr/local/share/doc/samba 以下に各種ドキュメントファイルがインストールされます。 また、日本語訳や他のさまざまなドキュメントが で公開されています。 --- [管理番号 179] (最終更新 1999/02/17 23:58:45) Q. Linuxマシンのディスクを FreeBSDマシンから NFSマウントするには どうしたらいいでしょうか? A. linux の nfsd はデフォルトでは 1024番以内の reserved portを使います 3.0 以前の FreeBSD を NFS クライアントとして使うとデフォルトでは reserved port を使わないのでそのままではマウントできないことがあります。 linux の 日本語 man, export.8より secure このオプションはリクエストが IPPORT_RESERVED (1024) より小さな internet port に発したものであることを要 求する。このオプションはデフォルトで有効である。 こ れをオフにする為には insecure と明記する必要がある。 linux のサーバ側で insecure を指定するか、FreeBSD側で mount_nfs する時に -P 予約されたソケットポート番号を使います。これはクライアントに、予 約されたポートを使用する事によりより安全に NFS を行えると言う誤っ た考えに基づき、予約されたポートをクライアントに使用させるサーバ をマウントする場合に有効です。 のオプションを使うといいでしょう。なお FreeBSD 3.0 では -P オプション の動作がデフォルトになりました。このため 3.0では上記の操作は不要です。 --- [管理番号 180] (最終更新 2003/11/17 02:28:48) Q. カーネルが panic する場所を特定したいのですが、 デバッグ用シンボルテーブルを含んだカーネルはどうやったら 作れるのですか? A. config(8) コマンドに -g オプションをつけて # config -g MYKERNEL とするか、カーネルコンフィギュレーションファイルに makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols などという行を付け加え、config(8) コマンドを実行します。 あとは普通に make すればいいのですが、このように作成された カーネルはデバッグ用の情報を含むためサイズが大きなものとなります。 たとえば 4.3-RELEASE の場合、通常 2 MB 強のカーネルが 9 MB 弱程度にまで大きくなるので、ルートファイルシステムの 残り容量に気をつける必要があります。strip(1) したカーネルを インストールしましょう。 [4.0-RELEASE 以降] 普通にカーネルの再構築の要領で make すれば、デバッグ用のカーネル kernl.debug が作成され、make install の際には objcopy(1) で デバッグ情報の取り除かれたカーネルが自動的にインストールされます。 [3.x-RELEASE 系列まで] 次のようにして、デバッグ情報を含んだカーネルのバックアップを作成し、 デバッグ情報を取り去ったものをインストールします。 # cp kernel kernel.debug # strip -x kernel # make install kernel デバッグの時は、次の例のように kernel.debug の方を指定します。 # cd /usr/src/sys/compile/MYKERNEL # gdb -k ./kernel.debug /var/crash/vmcore.0 デバッグの際には次のページが参考になるでしょう。 --- [管理番号 181] (最終更新 1999/02/17 23:58:45) Q. crash dumpを記録するにはどうすればよいのですか? A. 2つ方法があります。 1つはdump用のデバイスを指定する方法です。具体的にはdumponコマンドを使いますが、 2.2.1-RELEASEの場合は/etc/sysconfigのdumpdevを指定するか、あるいはカーネル 構築時に設定すればOKです。 もう1つは/var/crashに書き込む方法です。具体的にはsavecoreコマンドを使いますが、 2.2.1-RELEASEの場合は/etc/sysconfigのsavecoreをYESに指定してください。ただし /varの容量を主記憶の大きさ+minfreeの容量(通常2Mbyte、詳しくはman savecoreを 参照)分食いますので残り容量に注意してください。 もっともcrash dumpを記録するのは、デバッグ用のシンボルテーブルが付いた カーネルでないと意味はないので気をつけましょう。 --- [管理番号 182] (最終更新 2004/04/09 05:05:57) Q. crash dump を swap デバイスに取ったのですが、どうやってこの dump 結果を見たらよいのでしょうか? A. swap デバイスはマルチユーザモードでは中身が変更されてしまいます。 ですからシングルユーザモードで上げてください。crash 直後は各 ファイルシステムが clean な状態になっていないので、 1. boot: kernel -s でシングルユーザモードで起動する。 2. fsck -p でファイルシステムをチェックする。 3. mount -a -t ufs で ufs のファイルシステムをマウントする。 4. savecore -N /kernel /var/crash とする。 という操作で /var/crash/ に vmcore.0 などが作成されます。vmcore は セキュリティ上の理由で、root しか読めません。 ここまでの一連の動作は、/etc/rc.conf に dumpdev 変数を適切に 定義しておく事で /etc/rc の中で、自動的に行われます (もちろん fsck で止まったりしなければ)。 最後に gdb -k /kernel /dev/ad0b (/dev/ad0b が crash dump 用のデバイスの場合) とすれば OK です。カーネルにはデバッグ用のシンボルテーブルを 付けるのをお忘れなく。 --- [管理番号 183] (最終更新 1999/02/17 23:58:45) Q. Xを上げていてpanicしてしまったのですが、panicのログはどこを見れば 書いてあるのでしょうか。 A. /var/log/messagesを見てください。/kernelからのメッセージとして 書かれています。 --- [管理番号 184] (最終更新 1999/02/17 23:58:45) Q. 時々 consoleに /kernel: arp info overwritten for 192.168.1.3 by 00:01:02:03:04:05 /kernel: arp info overwritten for 192.168.1.3 by 00:06:07:08:09:01 というメッセージが出ます。 A. 昔は「同じIPアドレスを使っているマシンが複数存在しませんか?」 というのが答えだったのですが、最近は「DHCPサーバを利用していませんか?」 という場合もあります。 LANボードにはMACアドレスという1枚1枚固有の識別番号が付いています。 メッセージの後半の : で区切られた6桁の数字がMACアドレスです。 FreeBSDに限らず多くのUNIX OSでは IPアドレスと このMACアドレスの対応を 覚えています。arp -a を実行すると その時点でそのマシンが知っているIPア ドレスと MACアドレスの対応が分かります。 このメッセージは「この対応が変更された」と報告しています。 IPアドレスを自動的に割り当てる機構、DHCPを使っているときにもこのメッセー ジが表示されます。一定のリース期間が過ぎたIPアドレスが新しく別のクライ アントに割り振られると「対応が変更された」ことになり、このメッセージが 表示されます。 --- [管理番号 185] (最終更新 1999/02/17 23:58:45) Q. sendmailが起動すると "My unqualified host name (hoge) unknown; sleeping for retry" と表示される。 A. sendmailは起動した時に 自機のIPアドレスを調べます。 それにはhostname にドメイン名を補完した名前でIPアドレスを求めようとします。 その際 適合したホスト名がないとこうなります。 [FreeBSD-users-jp 11718] ホスト名からIPアドレスを求めるには /etc/hostsを用いる方法、 NIS(yp)、DNSを利用する の3つの方法があります。 これは各マシンで選ぶことが出来て /etc/host.confで検索する順番を指定で きます。 先程の問題は /etc/host.confのホスト名の検索順を hosts bind と記述し、 /etc/hosts に 自機の IPアドレスと FQDN名(ドメイン名を含む長い名前)を 記述することで回避できます。 --- [管理番号 186] (最終更新 1999/02/17 23:58:45) Q. /etc/hosts.conf に hosts <改行> bind と書いたのに 名前解決に /etc/hosts ファイルを参照してくれません。 A. "hosts.conf" ではなく "host.conf" です。"s" が余分です。 --- [管理番号 187] (最終更新 2003/05/17 21:39:23) Q. メールサーバの設定を行うために sendmail.cf や submit.cf を作成し ようと思いますが、書き方がわかりません。 A. sendmail.cf の書式、特に書き換えルールの部分は複雑ですので、いきなり sendmail.cf を作るのは難しいかもしれません。 そこで sendmail に附属の cf という設定ファイル生成ツールを使うとよい でしょう。FreeBSD 附属の sendmail.cf や submit.cf もこれで作られて います。 cf の概要については をどうぞ。 附属の英文ドキュメントが /usr/share/sendmail/cf/README にあります。 cf プロジェクト (仮称) で、和訳作業をしています。 同様の設定ファイル生成ツールとして、WIDE プロジェクトが配布していた CF というツール (cf とは全く別物です) もありました。しかし、sendmail 8.9.X 対応のバージョンを最後に更新されていないため、お勧めできません。 特に sendmail 8.12.0 以降で追加された submit.cf は CF では生成できません。 --- [管理番号 189] (最終更新 2000/05/24 20:54:13) Q. resolv.conf 対応版の WIDE-DHCP を ports / packages でインストールしたの ですが、/etc/resolv.conf を書き換えてくれません。 A. まず注意として、3.2-RELEASE 以降では OS 標準で dhclient(8) をサポートし ているため、ifconfig_="DHCP" と設定しただけでは、dhclient が 使われます。 それでもなんらかの理由で WIDE 版を使いたい人は、/etc/rc.conf で以下の樣 に指定します。ポイントは dhcpc(8) のオプション -r ですが、もちろん、変数 network_interfaces も適切に設定する必要があります。ここでは例として ed0 を使用しますが、実際には使用するネットワークインタフェースに読み換えてく ださい。 ifconfig_ed0="DHCP" dhcp_program="/usr/local/sbin/dhcpc" dhcp_flags="-r" また、PC カードを使う場合は も参照してください。なお、以前の PAO では dhcp_program は不要でした。 それより古いリリースをお使いの場合では、/etc/start_if.ed0 に /usr/local/sbin/dhcpc -r ed0 の様に記述すれば良いでしょう。その際、/etc/rc.conf から ifconfig_ed0 などの余計なものは削除します。 --- [管理番号 190] (最終更新 1999/07/02 16:24:13) Q. resolv.conf 対応版の WIDE-dhcp を port でインストールしたのですが、 ホスト名を自動的に変更することはできないでしょうか? A. [管理番号 189] と同じく dhcp_flags に -n を指定して下さい。 --- [管理番号 192] (最終更新 1999/02/17 23:58:45) Q. httpd なら大抵 Virtual Host 機能はサポートされていますが、この機能を 備えた ftpd はありませんか? A. wu-ftpd-2.4.2-BETA-6 以降はサポートしているみたいです。 また、FreeBSD 2.2.2-RELEASE 以降に付属している ftpd は Virtual Host 機 能をサポートしているようです。 [FreeBSD-announce-jp 20] --- [管理番号 194] (最終更新 1999/02/17 23:58:45) Q. SOHO などで WAN 接続をしたいのですが、どのような技術情報が必要でしょ うか? A. 本格的な WAN 接続のためには、リモートルータと呼ばれているルータを使 うことになるでしょうから、これに関する技術情報を収集するのがもっとも近 道です。 私が利用しているリモートルータの FAQ URL なんですが、ホームページから たどれる ML での内容が頻繁にアップデートされており、しかも一般化された インターネット接続技術についての情報も豊富なので、とても重宝してます。 --- [管理番号 195] (最終更新 2000/12/07 02:37:48) Q. gated で routed を置き換える時の gated.conf は rip yes; だと聞いて、routed を gated に置き換えたんですが RIP の流れてこない ネットワークへの経路がなくなってしまいます. A. RIP の流れてこない口は passive に指定しましょう。詳しくは を見て下さい。また、 に NEC の近藤さんの翻訳された日本語ドキュメントもあります。 --- [管理番号 196] (最終更新 2001/11/17 19:15:36) Q. routed が sendto(vx1, 224.0.0.1): No route to host というメッセージを延々と出し続けます。 A. routed(8) に「-P no_rdisc」オプションを追加すれば、消えませんか? このオプションは `Internet Router Discovery Protocol' を無効にします。 これで問題なければ、/etc/rc.conf に router_flags="-q -P no_rdisc" の設定を追加すれば良いでしょう。 --- [管理番号 197] (最終更新 1999/02/17 23:58:45) Q. IP firewallの設定がよーわかりません。 A. kernelの設定ファイルに options IPFIREWALL このオプションを付けると、全てのパケットを通さない設定になります。 こうしてから、/etc/rc.conf (/etc/sysconfig)の firewall="NO" # Set to firewall type or NO for none. この変数を「NO」以外、とりあえず「open」とか「client」あたりに変更しま す。この変数は /etc/rc.firewallで見ていますので この rc.firewallを読ん でみましょう。あとは、man ipfwして頑張りましょう。 --- [管理番号 198] (最終更新 1999/02/17 23:58:45) Q. ftpサーバを立ち上げたんですが、クライアントからanonymous ftpでログ インして /pub/FreeBSD を覗きにいこうとすると "No such file or directory" とか "FreeBSD: Too many levels of symbolic links." と言われ て叱られてしまいます。何が悪いんでしょう。 A. ユーザ ftpで ftpサーバにログインしたときには ユーザ ftpのホームディ レクトリが全体のルートとして位置付けられます。例えば passwdファイルの 中で /var/ftp をホームディレクトリとして指定している場合は ここがスター ト地点となります。 この下に pub/というディレクトリがないと "No such file or directory" に なります。 また /var/ftp の下に pub/を作らずに 別のディレクトリへのリンクを作って いる場合は注意が必要です。というのは /var/ftp が / になるのでそれより 上には移動することが出来なくなります。例えば /var/ftp の下から ../../../usr/ftp/pub のようなリンクを作っても ..(1つ上) にはもう移動出 きません。/ディレクトリから ..に移動しても、もうそれより上は存在しない ので /のままです。つまり../../../usr/ftp/pub は /var/ftpの下の usr/ftp/pub へのリンクになります。それはきっと存在しないでしょうから "No such file or directory" となるでしょう。 また ../pub にリンクを張った場合は、結局のところ /pub を指しますので pubから pub、自分自身へのリンクになってしまいます。リンクがリンクを指 してそれがループしてしまうので "Too many levels of symbolic links." と言われます。 このように リンクではうまく行かない場合には 直接そのDiskを /var/ftp の下にmountしてしまうと楽です。 --- [管理番号 200] (最終更新 1999/02/17 23:58:45) Q. SOHO / 家庭内LAN を構築しようと考えているのですが、IPアドレスは勝手 に付けてしまってもいいのでしょうか?(正規なアドレスは取得していません) A. あなたが(勝手に)設定したIPアドレスを始点に持つパケットが、外部のパ ブリックなネットワークに*絶対に*出ていかないと保証できるならかまいま せん。 しかし、一般的にはなんらかの形で現在/将来に The Internet との接続を 考えているでしょうから、その場合にはプライベートアドレスとして予約され ている IPアドレスを用いるべきです。 プライベートアドレスとして以下が予約されています。(cf. RFC1918) 10.0.0.0 - 10.255.255.255 (10/8) 172.16.0.0 - 172.31.255.255 (172.16/12) 192.168.0.0 - 192.168.255.255 (192.168/16) これらのアドレスは The Internet ではルーティングされない、という合意 が取られています。よって、あなたの設定ミスで、もしこれらのアドレスを始 点/終点に持ったパケットが外部に流れたとしても、問題は起こりにくいよう になっています。 とはいえ、もちろんこのようなパケットを外部に流さないように、十分に注 意しないといけません。あなたはネットワーク管理者となるわけですから。 また FreeBSD では、この件については /etc/hosts のコメント中でも説明さ れています。 --- [管理番号 201] (最終更新 1999/02/17 23:58:45) Q. macintoshに対するファイルサーバをFreeBSD箱をつかってやりたいのです が、capとnetatalkの違いをおしえてください。 A. だいたい以下のとおりです。(追加歓迎) 実装方式: cap: カーネル外のdaemon群(bpfでappletalkパケットをつかまえる) netatalk: カーネル内のappletalk socketインタフェース + daemon インストールの手間: cap: /usr/ports/net/capにいって、root権限で # make; make install あとは設定ファイルを書く。 netatalk: カーネルコンフィギュレーションファイルに以下を追加して カーネルをmakeし、カーネルをとりかえる。 options NETATALK リブートする。 さらに、/usr/ports/net/netatalkにいって、root権限で # make; make install あとは設定ファイルを書く。 ファイルシェアリング: resource fork: cap 各ディレクトリ/.resource/nantara に保存 netatalk: 各ディレクトリ/.AppleDouble/nantara に保存 finder関連情報: cap: ディレクトリ/.finderinfo/nantara に保存 netatalk: 各volume/.AppleDesktop/nantara に保存 ゴミ箱: cap: ファイルを捨てると、各volume/Network\ Trash\ Folder/* に入る netatalk: ファイルを捨てると、各volume/Network\ Trash\ Folder/* に 入る。ただし、両者のファイルの扱いかたに互換性はないように見える。 非英字のファイル名: cap: (capをpkg_deleteしちゃったのでわかりません。だれか書いて) netatalk: 日本語はshift jisのまま、非ascii文字だけ :xx (xは16進数、小文字) に変換して格納される。つまり、「おはよう」というファイル名は FreeBSD側からみると :82:a8:82:cd:82:e6:82:a4 に見える。他の言語の場合、知らない。 変換される文字種について正確に知りたい場合ソースを参照のこと。 速度について: netatalkの方が速くて快調、という意見が多数を占めている。 そのほか: 「システムデフォルトで設定したmacintoshのボリュームだけマウントでき、 unix的にはなにもできないユーザを設定したい」場合、capではhome directoryやshellを持たないuidを作って解決することができる。すなわち、 /etc/passwdにこんなエントリを作って、macintoshからのmount専用にするこ とができる。 maconly:*:1024:2000:macintosh only client:/nonexistent:/nonexistent netatalkの場合、セレクタの認証のところでhome directoryを持たないユーザ 名を入力すると拒否される。これは~/.AppleVolumes (ユーザごとのボリュー ム設定ファイル)を読みにいこうとして失敗するためであろう。つまり、home directoryは必ず作らないといけないようだ。 capでは、親ディレクトリに.resourceや.finderという名前のディレクトリが ない場合には、子のディレクトリにもそれらは作られない(そのかわり、 resource forkつきファイルが格納できなかったり、finderの管理情報が保存 されなかったりする)。これはunixファイルシステムとの互換性を重視した設 計と言える。 netatalkでは勝手にどんどん.AppleDoubleが掘られるので、迂闊にmac側から ファイルを書くと、時としてディレクトリを掘られたくないのに勝手に掘られ ちゃって悲しむかもしれない。 capでは、デフォルトの設定ではゲストとしてのボリュームマウントが許可さ れていないが、netatalkの場合デフォルトで許可されているので注意する (afpd -Gとするとゲストのマウントは不許可になる)。 capのボリュームをマウントしたときmacintoshの画面に現れるアイコンは、 BSD悪魔くんなのでかわいい:-) netatalkはネットワークの生えた地球儀であ る。 cap <-> netatalkの乗り換えツールは見たことがないので、最初からどちらか に決めた方がよいだろう。 MacOSのボリュームサイズ制限(7.1*で2GBytes/7.5*で4Gbytes)を越えるような partitionをmacからマウントしたときのふるまいが異なる。capはほんとのディ スクサイズや空きサイズを伝えてしまうので、Mac側で容量が負になったりし て書けないようになる。netatalkでは嘘の値を渡してくれるので、とりあえず 書ける。(From kanai@hallab.co.jp) capで20MBytesを越えるファイルのコピーが失敗していた。netatalkではそう いうことは経験していない。(From kanai@hallab.co.jp) プリンタシェアリング: (やったことないので誰か書いて) --- [管理番号 202] (最終更新 1999/02/17 23:58:45) Q. cap/netatalkの管理に関してなにか注意点はありますか? A. 手でディレクトリのpermissionを変える場合、.AppleDoubleなどのディレ クトリのpermissionも変えるように十分注意しましょう。permissionの変更を 忘れると、Mac側でみていると非常にへんちくりんなエラーメッセージが出て なんのことかわからない場合が多いです。FreeBSD側でls -laとかしてチェッ クしましょう。 --- [管理番号 203] (最終更新 1999/02/17 23:58:45) Q. ipfwを使うためにkernelを再構築してrebootしたら、networkがうんともす んとも言わなくなりました。 A. kernelの再構築でipfwを有効にした場合は、rebootの前に次の設定をして おくといいでしょう。 /etc/sysconfig (2.2.1以前) で firewall="YES" /etc/rc.firewall で firewall_type=open これで、ipfwの有効化以前と同じにpacketが通るようになります。 あとはhandbookなどを参考にして、rc.firewallに適当な設定をしてください。 --- [管理番号 205] (最終更新 1999/02/17 23:58:45) Q. Apache HTTPd を起動すると、次のようなメッセージが出力されます。 httpd: cannot determine local host name. Use Server Name to set it manually. A. 英文の通り、手動で ServerName を定義してやらなければなりません。 /usr/local/etc/apache/httpd.conf に ServerName myname.domain の行を追加して、Apache HTTPd を再起動します。 --- [管理番号 211] (最終更新 2001/01/08 04:31:13) Q. ppp (iij-ppp) への nat-xxxx.patch のあて方と、インストールのしかたを 教えてください。 A. FreeBSD 3.3R 以降の ppp(8) には、既に NAT 機能が含まれています。また、 いまだに FreeBSD の ppp(8) の事を iij-ppp と呼ぶ人がいますが、現在では 大幅に書き換えられたため元の iij-ppp とはかなり異ります。それ以前の RELEASE の FreeBSD を使っているのならば、可能ならシステムのアップグレー ドをお薦めします。もし、どうしても古いシステムのまま、ppp だけを NAT に対応させる事も不可能ではありませんが、恐らく茨の道を覚悟しておいてく ださい。 1. まず使用中の FreeBSD のソース (usr.sbin) を CD-ROM などから インストールして下さい。 # mount /cdrom # cd /cdrom/x.x-RELEASE/src # sh install.sh susbin 2. 次に佐藤さんのホームページから nat-******.patch を入手します。 ****** には、nat patch のバージョン (日付け) が入ります。目的の FreeBSD 用のものをダウンロードしてください。 改行コードの問題などがあるのでダウンロードには気をつけてください。 FreeBSD の Netscape からだと右クリックして Save Link as でダウンロード。 Windows95 のブラウザだと名前を保存して、FreeBSD に移す際に Ascii Text) モードで転送する事。 3. 無事にダウンロードできたらパッチを当てます。 # cd /usr/src/usr.sbin # patch -p < /tmp/nat-******.patch 4. 新しい ppp をコンパイルしてインストールします。 # cd /usr/src/usr.sbin/ppp # /usr/src/usr.sbin/ppp に移動 # make # コンパイルします。 # make install # インストールします。 これで完成です。ppp は、オリジナルを上書きする形で、/usr/sbin に インストールされます。 --- [管理番号 213] (最終更新 2001/03/07 02:08:44) Q. ppp(8) の自動モード (-auto や -ddial) を終了させるには、どうすればいい のでしょうか? A. /etc/ppp/ppp.conf の該当セクションに、 set server /var/tmp/internet "" 0177 という行を追加しておいて、コマンドラインから % pppctl /var/tmp/internet 'close; quit all' とします。そのほか応用の仕方が pppctl(8) に載っています。 複数の tun(4) デバイスを同時に使う場合、FreeBSD 2.2.8-RELEASE 以降で あれば `set server' で指定したパスに %d を含めると、それが tun デバイスの ユニット番号に置換されます。即ち、 set server /var/tmp/loop%d "" 0177 このとき tun2 を使っているとして、 % pppctl /var/tmp/loop2 'close; quit all' となります。ただし FreeBSD 2.2.5-RELEASE 以前では、 o telnet で localhost の "3000 + tunデバイス番号" に接続して、 o pass "ppp.secret で設定したパスワード" o quit all とすると終了します。 tun0 を使用している場合は具体的には以下のようになります。 % telnet localhost 3000 % ppp on hogehoge> pass XXXXXX % ppp ON hogehoge> quit all この方法では Internet 側からのアクセスも可能である点に注意してください。 アクセス制限については [管理番号 678] も参照してください。 --- [管理番号 214] (最終更新 2003/11/17 02:28:48) Q. 起動時に自動的に ppp の自動モードにできないでしょうか? A. 1. FreeBSD 3.3R 以降では rc.conf(5) へ次のような設定を行います。ここで providername には ppp.conf にあなたが設定したエントリ名を書きます。 ppp_enable="YES" ppp_profile="providername" [/etc/defaults/rc.conf での関連項目] ppp_enable="NO" # YES に設定すれば ppp を起動する (or NO). ppp_mode="auto" # ppp の動作モードを選択します. "auto", "ddial", # "direct", "dedicated" のいづれか. 詳しくは # ppp(8) の man ページを見てください. # デフォルトでは auto です. ppp_nat="YES" # YES なら ppp で NAT を有効にする (or NO). ppp_profile="papchap" # /etc/ppp/ppp.conf でのエントリ名を指定する. ppp_user="root" # ppp を動作されるユーザ名. 2. /etc/rc.local か /usr/local/etc/rc.d/ppp.sh に次のように付け加えて、 再起動させてください。 #!/bin/sh ← /usr/local/etc/rc.d/ppp.sh のときのみ if [ -f /etc/ppp/ppp.conf ] ; then /usr/sbin/ppp -quiet -auto providername && echo -n ' PPP start' fi --- [管理番号 216] (最終更新 2001/03/07 02:08:45) Q. ppp(8) で接続中に突然回線が切れるのはどうして? A. "** 1 Too many ECHO packets are lost. **" という記述が /var/log/ppp.log に表示されている場合は、 disable lqr deny lqr という二行の記述を /etc/ppp/ppp.conf の default セクションか、接続用の セクションにいれると解決する場合があります。 --- [管理番号 219] (最終更新 2002/02/20 10:50:33) Q. PAO とは何? A. PAO は FreeBSD によるモーバイルコンピューティングユーザたちのための 総合的なパッケージです。FreeBSD 3.x 以前の FreeBSD で PC カード (Ethernet, Wireless LAN, FAX/Modem, ISDN, Digital Cellular, SCSI, Flash ATA, ATA HDD, ATAPI CD-ROM) を使えるようにします。さらに、APM への対応や PC Card の "ホットプラグ" も可能にします。 "PAO" 自体のメンテナンスは FreeBSD 3 系列までで終了しました。この活動に よって得られた成果のほとんどは無事 FreeBSD 4 系列などに還元されましたの で、現在では普通に FreeBSD をインストールするだけで PC Card が使用でき るようになります。 --- [管理番号 222] (最終更新 1999/08/08 00:22:04) Q. PAO boot.flp は FreeBSD 標準の boot.flp とどう違うのですか? A. PAO boot.flp は主にノートパソコンにインストールするために作成されて います。PAO boot.flp では起動後に PC Card を探すので、PC Card スロットが 一つしかなくかつフロッピードライブも PC Card を用いるタイプのノート にもインストールできます。 また,容量の問題から boot.flp に含まれているデバイスドライバーから 必要性が低いものも削除してあります。また、いくつか機能制限もあり メニューには表示されますが使用できません。 - 2.2.7-RELEASE : PPP および SLIP インストールなし - 2.2.8-RELEASE : NFS, PPP および SLIP インストールなし PAO3 for 3.x-RELEASE においては FreeBSD 3.x-RELEASE と同様インストール フロッピーが二枚組になりました。また、PAO boot.flp にカーネルパッチを 詰め込む方式はやめて、FreeBSD の標準配布ファイルと同じ形式で paobin, paosrc を用意しました。 - boot.flp : PAO ブートフロッピー (2.88MB)、CD-ROM boot や LS120, ZIP などで使用します。 - kern.flp : PAO カーネルフロッピー (1.44MB 一枚目) - mfsroot.flp : PAO MFS ルートフロッピー (1.44MB 二枚目)、普通の FDD を使うのであればこの二つを用意します。 - paobin : PAO バイナリ配布ファイル、PAO 対応のカーネル、 userland、man page などを含みます。 (install.sh, paobin.aa, paobin.ab, ...) - paosrc : PAO ソース配布ファイル、PAO で変更されたカーネルソー ス、PAO-FAQ や SUPPORTED.CARDS などのドキュメントを 含みます。カスタムカーネルを作るつもりなら、カーネ ルソース ssys を同時に選択してください。 (install.sh, paosrc.aa, paosrc.ab, ...) - paodist.tar : paobin, paosrc を tar でまとめたもの。 --- [管理番号 225] (最終更新 1999/08/08 00:21:45) Q. PAO boot.flp を利用して、PC Card を利用して FreeBSD のインストールを 行ったのですが、インストール後 PC Card が利用出来なくなってしまい ました、なぜなんでしょう? A. PAO boot.flp は boot.flp に PC Card を利用するために必要なパッケージ である PAO の機能を組み込んで、インストール時に PC Card の利用が可能 となるようにしたブートフロッピーです。 A1. PAO3 for 3.x-RELEASE の場合 PAO バイナリ配布ファイル (paobin) のインストールを忘れたり、/kernel の PAO 版への置き換えが行なわれないとその様になります。 単に /kernel の置き換えが失敗しているのが原因なら、 # chflags noschg /kernel # mv /kernel /kernel.old # install -c -m 555 -o root -g wheel -fschg /kernel.PAO /kernel そうでないなら、 PAO バイナリ配布ファイル (paobin)、PAO ソース配布ファイル (paosrc) を DOS パーティションや FTP サイトに用意して、distribution メニューに おいて paobin, paosrc のみを選択して追加インストールします。paosrc は 必須ではありませんが、カスタムカーネルを作成するためには必要ですし、 PAO-FAQ や SUPPORTED.CARDS 等のドキュメントを含みますので、目を通すよ うにしましょう。また、PAO boot.flp の pccard.hlp も参考になります。 A2. PAO2 for 2.2.x-RELEASE の場合 しかし、このブートフロッピーでインストールされるバイナリセットに含ま れる kernel は、標準的な GENERIC カーネルであり PC Card のサポートは 含まれていません。このため、インストール終了後 HDD からシステムが起動 した時点では PC Card は利用できない状態になります。 PC Card を利用するためには、以下のいずれかの方法で PAO を組み込む必要 があります。注意点として、事前に最低限カーネルのソース (ssys) をイン ストールしてください。 ・インストール終了でリブート後、ルートでログインして、 /stand/sysinstall -> [設定] -> [PC カード] と実行すると PAO 対応の kernel をインストールできます。 ・PAO-1999xxxx.tar.gz の様なパッチキットを入手して、ドキュメントに したがってインストールして下さい。 --- [管理番号 227] (最終更新 2002/02/20 10:50:33) Q. 16-bit PC Card (PCMCIA) の持っている情報 (CIS tuple) を確認するには どうしたらいいですか? A. PC Card をカードスロットに挿入して、 % /usr/sbin/pccardc dumpcis とします。カードスロットの番号を指定しなければ、全てのスロットに挿入さ れているカードの CIS タプルを表示します。詳しい使い方は pccardc(8) を 読んでください。なお、現状では CardBus PC Card は正しく扱えません。 --- [管理番号 228] (最終更新 2002/02/20 10:50:33) Q. 16-bit PC Card (PCMCIA) のアトリビュートメモリの内容を確認するには どうしたらいいですか? A. PC Card をカードスロットに挿入して、 % /usr/sbin/pccardc rdattr で見られます。特別な整形をせず、16進ダンプ形式で表示します。 詳しくは pccardc(8) を読んでください。 --- [管理番号 232] (最終更新 1999/02/17 23:58:45) Q. netscape で黒以外の文字が表示されません。 netscape 起動時も画面全体の色が変わりとても見づらくなります。 A. 16 色しか表示できない X サーバを使用しているかもしれません。 ls -l /usr/X11R6/bin/X の実行で、 lrwxr-xr-x 1 root 10 10 Jun 10 14:34 /usr/X11R6/bin/X -> XF86_VGA16 と、"XF86_VGA16" になっていれば 16 色しか表示できません。 そのマシンのハードウェアが対応していれば、別の X サーバをインストール してください。 --- [管理番号 236] (最終更新 2004/04/09 05:05:59) Q. Netscape Navigatorの日本語リソースの設定を行ったのですが "Missing charsets in String to Fontset conversion" という warning が起動時に出ます。 A. NLS のなかのお使いの locale (ja_JP.EUC または ja_JP.eucJP) ファイルの # Code of the supplementary Japanese graphic character set jisx0212.1990-0:GL <=== ここと # User Defined character # name:GL/GR:woffset:sequence omron_udc_ja-0:GL:20400080:\033\045\057200omron_udc_ja-0\002 <=== ここ END XLC_FONTSET をコメントアウトすると直るようです。 --- [管理番号 237] (最終更新 2004/04/09 05:05:59) Q. Netscape 3.x/4.x で日本語が表示できるようにリソースを設定したのですが、 テキスト入力フォームなどに日本語が入っていると Warning: Name: textForm Class: XmTextField Character: 'x', not supported といったメッセージウィンドウが出てしまいます。どうにかなりませんか? A. Netscape 3.x/4.x にリンクされている Motif の XmText/XmTextField class は初期値として日本語コード(EUC)を理解してくれないようです。 ※「初期値として」なので、cut&paste で後から日本語を入力することは可能 です。 Xi Graphics 社の Motif library (R6 base) では、XtSetLanguageProc で適 切な locale を設定してやれば、初期値として日本語も使えるということです から、Netscape にリンクされている Motif のバージョンが古いのか、正しく (= locale が ja_JP.EUC または ja_JP.eucJP に) 初期化されていないのが理 由だと思われます。 対処法としては、リソース設定に Netscape*useStderrDialog: False を加えると、ウィンドウが表示されずになくなり、代わりに Warning が 標準エラー出力に出力されるようになります。あとは標準エラー出力を /dev/null にでもリダイレクトしてください。 --- [管理番号 242] (最終更新 1999/02/17 23:58:45) Q. NEC PC-9801/9821で使っていい IRQ は? A. NEC PC-9801/9821では、IRQ は一般に次のように割り当てられています。 IRQ ??: INT??: 一般的な割り当て ----------------------------------------------- IRQ 0: システムタイマ IRQ 1: キーボード IRQ 2: PC-98基本グラフィックス(VSYNC) IRQ 3: INT 0: IRQ 4: RS-232C IRQ 5: INT 1: IRQ 6: INT 2: IRQ 7: カスケード接続用 IRQ 8: 数値データプロセッサ IRQ 9: INT 3: IRQ 10: INT41: IRQ 11: INT42: 1MB FDD IRQ 12: INT 5: IRQ 13: INT 6: IRQ 14: プリンタポート IRQ 15: リアルタイムクロック  上記の表の空いている部分を使えばいいわけですが、機種によってはこれに 加え2nd CCU(2nd シリアル)がIRQ 5、IDE HDD コントローラがIRQ 9、サウ ンド機能がIRQ 12、マウスがIRQ 13(PC-H98ではIRQ 6)を使用しています。 このようにただでも空きが少ない上に、さらにSCSI インターフェイスやLAN ボードを増設していると、IRQ 3やIRQ 6を消費するのでIRQはほとんど残され ていません。このため拡張スロットが空いているのにボードがさせない状況に なったりする事もあるみたいです。  どうしてもIRQが足りなくなった場合には、2nd CCUや内蔵サウンド機能は起 動メニュー([HELP]キーを押しながら起動)で機能をOFFにする事ができます ので、これらをOFFにすればいいでしょう。 --- [管理番号 243] (最終更新 1999/02/17 23:58:45) Q. PC-9821シリーズですが、Xでは640x400@4bppしか使えませんか? A. 標準のサーバではPC-9801でも動作するようにegcのみを用いていますが pegcサーバを用いれば640x480@8bppが可能です。 また、多くのPC-9821で標準採用されているTrident TGUi9680は XFree86 3.2Aから正式に対応されました。 --- [管理番号 245] (最終更新 2002/10/21 05:19:40) Q. PC-98x1のIDE HDDを増設したのですが、使うことはできますか? A. 最近のFreeBSD(98)ならば特に意識せずに使えます。 IDEでプライマリマスター以外のHDDにインストールする場合は kernide2.flp や kernide4.flp を利用すれば可能です。 配布物の Instal98.txt を読んでください。 --- [管理番号 247] (最終更新 1999/02/17 23:58:45) Q. PC98 で以下のメッセージが表示され FDD が認識されません。 fdc0: direction bit not set fdc0: cmd 3 failed at out byte 1 of 3 fdc0 not found at 0x90 A. システムセットアップメニューで「自動(1M)」に設定して下さい。 --- [管理番号 248] (最終更新 2003/10/16 23:20:33) Q. PC-9821 の内蔵 2nd シリアルポートを使おうとするとハングアップします。 A. 2nd シリアルポートの FIFO を使わないようにしてください。そうすると ハングアップしなくなるようです。 ブート時に loader のところでスペースキーを押し ok プロンプトが出たら boot -c で起動させます。config> プロンプトが出たら flags sio1 0x12000002 としてブートさせます。 起動後 kget > /boot/kernel.conf を実行しておけば次回起動時からは 自動的にこの flags が sio ドライバに与えられます。 5.0-RELEASE 以降では、/boot/device.hints に hint.sio.1.flags="0x12000002" と書けばよいです。 または、カーネルのコンフィグファイルの sio1 に関する部分を device sio1 at isa? port 0x238 irq 5 flags 0x12000002 としてカーネルを再構築します。 以上のようにすれば FIFO を使わないようになりますので、内蔵の 2nd シ リアルポートが使えるでしょう。 --- [管理番号 251] (最終更新 2003/01/22 21:13:32) Q. FreeBSD(98) の kernel 再構築の手順を教えてください。 A. 配布物に含まれる config98.txt というドキュメントをお読みください。 最近のバージョンであればカーネルソースへのパッチ当て作業などは 必要ありません。 --- [管理番号 254] (最終更新 2002/10/21 05:19:40) Q. PC-9821V?? に付属している FAXモデムボード(PC-9801-120)を使うことが できますか? A. 正式リリース版では標準で対応しています。プラグ&プレイを ON にしてお けば自動で認識します。 なお、PC-9801-120 の DIP スイッチの設定は下記のようになっています。 ・プラグアンドプレイ機能:SW1 SW1 PnP ON OFF(無効) OFF ON (有効) Default ・I/Oアドレス:SW2,3 SW2 SW3 I/OADD ON ON 08B0 Default ON OFF 09B0 OFF ON 0AB0 OFF OFF 0BB0 ・割込チャネル:SW4,5 SW4 SW5 IRQ Default ON ON 3 ON OFF 5 OFF ON 6 OFF OFF 12 ・SW6:未使用 (変更不可) --- [管理番号 255] (最終更新 1999/02/17 23:58:45) Q. FreeBSD(98) で ELECOM 社製 LANボード LD-98P は 使えますか? A. ボードに附属のソフトで Plug and Play を disable にし、適切な irq と port address を設定し、カーネルの設定もそれに合わせる事で使用できま す。デバイスドライバは同じ LANEED ブランドの LD-BDN とは違い ed4 を 使います。 --- [管理番号 257] (最終更新 2000/03/04 08:16:04) Q. FAQ.98 を見るとアライドテレシス SIU-98 が動作するように書いてあるので すが認識されません。 A. このボードは SIC-98 互換モードというのがありまして、2段重ねになってい るボードを外すと互換モードになります。あとはボードの割り込み番号などを 正しく設定してください。 SIU-98-D、SIU-98-E については、ボード構造が違うためにこの方法は使えま せんが、FreeBSD(98) 3.4R-Rev01 からは SIU-98-D が追加サポートされまし た。SIU-98-E についても SIU-98-D として使えることが期待されますが、動 作報告はまだありません。試した方がいらっしゃいましたら、報告して下さる と有難いです。 --- [管理番号 259] (最終更新 1999/05/07 00:50:15) Q. PC-9821 Xa シリーズで内蔵ビデオカードを使いたいのですが。 A. PC-9821 Xa シリーズの C、K、R 型番に搭載の TGUi9680 については XFree86 3.2 から正式にサポートされました。XF98_TGUI を X サーバとして 選択して下さい。 XFree86 3.3 からはアクセラレーション機能もサポートされましたが、不具合 がでることがあるようです。不具合がでるようなら ``noaccel'' Option をつ けて使用して下さい。それでも画面にゴミが出て表示が乱れるという報告があ りますので、その場合は X サーバのみ 3.2 の XF98_TGUI を使用することで 不具合を回避できます。 PC-9821 Xa シリーズの第 3 世代以降 (W、D 型番) に搭載の TGUi9682 につ いては今までのところサポートしている X サーバは存在しません。TGUi9680 用の XF98_TGUI を流用することである程度は使用できますが、画面にゴミが 出て表示が乱れるという障害が報告されています。 PC-9821 Xa シリーズといっても初代 PC-9821 Xa と PC-9821 Xa7e は Trident 系チップを用いていないので注意が必要です。初代の PC-9821 Xa 搭 載の MGA II については対応する X サーバは現在ありません。PC-9821 Xa7e については Cirrus Logic の CLGD5440 が使われているので、XF98_NKVNEC を X サーバとして選択して下さい。 最新版は 等から入手できます。 --- [管理番号 261] (最終更新 2002/02/20 10:50:36) Q. 東芝 Libretto は PC カードスロットが1つしかないのですが、FreeBSD の インストール (ネットワーク、CD-ROMなど) に支障はないでしょうか? A. 問題ありません。フロッピーから kern.flp と mfsroot.flp を読み込み、 インストーラが立ち上がった直後に、必要なら PC Card を入れ換える旨の表 示がなされます。そこで、使用するネットワークカードなどに挿し直して、 インストールを続けられます。 なお、インストール時の注意ですが、ハイバネーションエリアを確保して から HDD をフォーマットする必要がありますので、[管理番号 264] も参照 して下さい。 --- [管理番号 263] (最終更新 1999/02/24 04:29:49) Q. Libretto {20,30,50,60,70,100}のBIOS設定を変更したいのですが? A. 起動時の BIOS 設定または専用 utility で変更できます。 A1. 起動時にESCを押しっぱなしにして指示にしたがってF1を押すと、BIOS設 定に入ることができます。設定できる項目としては ・電源OFF時、サスペンドしてから本当に電源が切れる(ハイバネーション) までの時間(Standby Time: 0〜無限大) ・液晶ディスプレイの明るさ ・サウンドのenable/disable、サウンドチップのIRQ ・ビープ音量 ・蓋開閉時の挙動 などでしょう。なお、Libretto {20,30} では機能が制限されており、サウン ド関係の設定はありません。また、Libretto100 では他に ・suspend/hybernation の切替え が設定可能です。 A2.ports/sysutils/libretto-config - Libretto BIOS Setting Program を用いると、reboot せずに以下の項目を設定することも出来ます。 (root 権限で /usr/local/sbin/libretto-config を実行します)。 Power Management for Libretto V1.0beta5 +-----------------------------------------------------------+ | 0) Power-up Mode : Hibernation | | 1) Standby Time : 5 min | | 2) System Auto Off : Disabled | | 3) Panel Power On/Off : Enabled | | 4) Alarm Power On : Disabled | | 5) LCD Power : 3 | | 6) Volume : Unknown | | 7) Off (Suspend/Hiber): Unknown | +-----------------------------------------------------------+ 元の版は Linux 用に開発されていて、 に情報があります。 --- [管理番号 264] (最終更新 2000/01/20 19:43:39) Q. Libretto {20,30,50,60} のハイバネーションは、FreeBSD で正常に使えま すか? A. ハイバネーション、サスペンドともに使えます。 A1. ハイバネーションしたいとしたくないとにかかわらず、Libretto シリー ズではハイバネーションのために、HDDの末尾の約 42MB (Libretto 50/60 の 場合。ディスクのジオメトリによって異なり、報告されている値では 40MB 前 後から 41MB 強程度です) が破壊されますので、この領域を使わないようにパー ティショニングしないといけません。MS-DOS ではこの領域を除いた部分が HDD として見えるようにうまくだまされるのですが、FreeBSD インストーラの fdisk は直接ディスクのパラメータを読むためだまされません。 1. MS-DOS で HDD 全体をフォーマットする。このとき末尾のエリアを除いた 領域がフォーマットされます 2. FreeBSD の FDISKで、MS-DOS 領域となっている部分のブロック数だけを 覚えてから解放します 3. 2. で記録したブロック数だけを改めて FreeBSD の領域として確保します 尚、fdisk にて表示される size は、sector 数で、sector あたりの容量は 512bytes ですので、 size×512 bytes (または、size×512/1024/1024 MB) になることに気をつけてください。 A2. ハイバネーションを有効にするならば、BIOS 設定でスタートアップ時の 設定を『boot』ではなく『resume』にしましょう また、apm を導入し有効化していること、/etc/rc.conf で 『apm_enable="YES"』にしていることが必要です。 2.2系の場合は、PAO の導入が必要でしょう。 A3. Libretto でハイバネーションではなくサスペンドを使う方法については [管理番号 266] ハイバネーションエリアを取らずに使うには? を参照してください。 --- [管理番号 265] (最終更新 1999/02/17 23:58:45) Q. 東芝Librettoで 蓋を閉じて suspendすると その後 FreeBSDを起動した時 にDiskの内容が壊れます。 A. 東芝Librettoは suspendではなく、ハイバネーションと言って Diskにメモ リイメージを書き込んでおき再起動時にはそれをメモリに読み戻すという作業 をしています。これらの作業はFreeBSDではなく マシンのBIOSが実行していま す。書き込み退避領域は Diskの最後付近を使用します。この領域は なにかの コマンドで確保するのではなく DOSのFDISKを実行した時に全Disk容量をBIOS が少なめにごまかすことで不可侵になっています。 FreeBSDの領域を確保する時に FreeBSD付属の FDISKコマンドで領域を確保し てしまうと このごまかしが働かないため、ホントの最後の部分まで確保して しまいます。そのため 蓋をしてハイバネすると Diskが壊れてしまうのです。 この事態を避けるのは FreeBSDで使用する場合でも 容量を決める時にはDOS の FDISKコマンドで容量を確保し、その後 FreeBSDのインストール時にはDisk のタイプを DOSから FreeBSDに変更する だけにすることです。 --- [管理番号 266] (最終更新 1999/02/17 23:58:45) Q. Libretto {20,30,50,60}のHDDにハイバネーションエリアを取らずに使う ことはできませんか? A. できません。HDD全体をFreeBSDパーティションとすると、ハイバネーショ ン時にクラッシュするでしょう。 ただしハイバネーションからの復帰に時間がかかることが問題なのであれば、 サスペンドするようにして使うこともできます。BIOS設定で『Standby Time』 の項目を『Unlimited』にします(0にするといかなる場合もサスペンドせずに すぐ電源が切れます)。ただしこの場合でも電源OFF時のメモリ内容をハイバネー ションエリアに書き出すため、ハイバネーションエリアは必要ですし、即時サ スペンドはしません。またハイバネーションと異なって電源を消費しています ので、外出時などは注意しましょう。 --- [管理番号 267] (最終更新 2001/10/19 21:29:34) Q. Libretto {20,30,50,60} のHDDを換装したいのですが、FreeBSD は正常に 動くでしょうか? A. 大容量のハードディスクを認識できること、ハイバネーションともに正常 に動きます。しかし、8.4GB 以上の容量のドライブについては未確認です。 また、@nifty の 東芝 PC Users' Forum/FTOSHIBA のみなさんがまとめた Libretto FAQ 集 の改造編に換装の話があるので参照されるとよいでしょう。 --- [管理番号 268] (最終更新 1999/02/17 23:58:45) Q. Libretto {20,30,50}をクロックアップしたいのですが、FreeBSDは正常に 動くでしょうか A. おおむね正常に動くと思います。ただし誰も保証しませんので各自の責任 で。Libretto 50の150MHz化については 平澤, 石井, 笠原. 『新Librettoスーパーブック』. SOFTBANK, ISBN4-7973-0294-1 に詳しいです(ただしショットキバリアダイオードの向きが抜けています。CPU 側がアノードです)。 --- [管理番号 270] (最終更新 1999/02/17 23:58:45) Q. Libretto 50/60 で X を使いたいのですが、800x600 以上の画面は使えま すか? A. もちろん本体だけでは無理です(笑)が、 1. 外部ディスプレイに表示できます。 2. Virtual Desktop が 800x600 以上確保できます。 ちなみに BIOS で『16M/256K色』に設定した場合、800x600 では 16bpp (65K色)まで使うことができます(256色の場合より若干、ウィンドウの描画 などがもたつく感じがあります)。1024x768 では 8bpp (256色)使えます。 XF86Config の記述は、XFree86 Config file DataBase を参照するとよい かもしれません。(see [管理番号: 27]) なお、XF86Setup (※XFree86 3.2)では VRAM を正しく検出しないので、 『Section "Device"』を『videoram 1024』に修正してあげましょう。また Virtual Desktop を使用する場合は『SubSection "Display"』に『Virtual 800 600』を記述します。 --- [管理番号 271] (最終更新 1999/02/17 23:58:45) Q. Libretto {20,30,50,60*}のポインティングデバイスが、サスペンド(ハイ バネーション)からの復帰後、作動しないことがあるのですが? A. サスペンドからの復帰後すぐ(5秒程度)には、リブポイントのポインタおよ びボタンには触らない方がよいでしょう。もしどうしても触ってしまった場合 には ・シフトキーなどを10秒程度押下しつづける ・Ctrl-Alt-F1 → Alt-F4でコンソールを切替える (※ ただしXF86 3.3 より前のXサーバではこの操作でハングアップすることがあります) で復帰することができます --- [管理番号 273] (最終更新 2000/06/25 02:30:31) Q. FreeBSD のインストール時にも使われている ee (easy editor)という エディタがありますが これ 日本語が化けてしまうんですけど。 A. 日本語化されています。ports/japanese/ee にありますので、 ports または packages を使ってインストールしてください。 --- [管理番号 274] (最終更新 2001/10/25 21:20:53) Q. FreeBSD 終了時に自動で電源を切ることが出来ますか。 A. 多くのノートパソコンや apm BIOS と ATX 電源を持つマシンなら可能です。 1. BIOS 設定で APM を有効にします。 2. (まだインストールしていなければ) FreeBSD をインストールします。 3.a kernel に apm device が組み込まれていない場合には apm device が 有効になるように kernel を作り直します。 例えば、3.4-RELEASE の (i386 platform の) GENERIC では device apm0 at isa? disable flags 0x31 となっていますので、下記のように、disable を削除し、flags を 0x20 とします。flags の意味について詳しいことは LINT もしくは /usr/src/sys/i386/include/apm_bios.h を参照して下さい。 device apm0 at isa? flags 0x20 3.b GENERIC kernel のように apm が組み込まれているものの無効になって いる場合には apm が有効な状態で起動されるように設定します。これは、 起動時に USERCONFIG (boot -c) にて行なうか、kernel.conf に apm を 有効にする記述を加えます。 また、flags で 0x10、0x11 (またはいずれかと OR をとったもの) が指 定されている場合も、これを外す必要があります。 [4.0-RELEASE 以降で GENERIC kernel の場合] 3.a /boot/kernel.conf に enable apm を追加します。 3.b /etc/rc.conf に apm_enable="YES" を追加します。これは /stand/sysinstall を起動し、 メニューの Configure/Startup/APM のトグルをオンにすることでも 可能です。 4. shutdown -p で電源が切れます。 [3.1-RELEASE 以降の場合] 3. /etc/rc.conf に apm_enable="YES" を追加します。これは /stand/sysinstall を起動し、 メニューの Configure/Startup/APM のトグルをオンにすることでも 可能です。 4. shutdown -p で電源が切れます。 [2.2 系列の場合] 3. PAO を持って来てドキュメントに従ってインストールします。 shutdown コマンドが新しくなり、kernelも入れ替わります。 4. shutdown -x で電源が切れます。 2.2.8 で pccard は使わないという場合には * shutdown コマンドに対する patch * kernel の apm デバイスに対する patch を当ててコンパイルする、という方法もありますが、ドキュメントが 整備されていないため、**AS IS** で利用してください、ということです。 尚、3.0-RELEASE をお使いの場合は新しい RELEASE にバージョンアップする のが最も楽な方法でしょう。 --- [管理番号 276] (最終更新 1999/02/17 23:58:45) Q. DELL OptiPlex GXMT5xxxxを購入しようと思います。NICは3C913を使ってい るようなのですが、DELLサポートでは3C509に相当すると教えくれました。ep0 での動作実績はありますか? A. はい、epドライバが使用できます。ちなみに、DELL OptiPlex GXProの方は 3C590相当のチップを使ってますので、こちらはvxドライバが使用できます。 PnPの設定をdisableにするだけ(あとは買ったままの状態)動作しました。 --- [管理番号 278] (最終更新 2001/01/08 04:36:37) Q. FreeBSD で不良セクタ (Bad Sector) のある IDE ハードディスクが使えますか? また、FreeBSD は自動的に修復してくれないのですか? A. 4.0-RELEASE 以上で採用された ad(4) ドライバでは、基本的に不良セクタの ある IDE ハードディスクはサポートしていないため使えません。もしかしたら [管理番号 314] にある low-level フォーマットで使えるようになるかもしれ ませんが、素直に問題のない HDD に交換した方が良いでしょう。特にそれ以前 のリリースで、bad144(8) による bad sector table を持つ HDD を使用してい た場合、システムをアップグレードすると、次のようなエラーメッセージが表示 されて起動に失敗します。 Mounting root from ufs:/dev/ad0s2a ad0: bad sector table not supported ad0s2a: bad sector table not supported Root mount failed: 22 もし、万一このような状態になったら、慌てず騒がず別のマシンにこの HDD をつなぎかえ、dump(8) するか強制的に mount(8) して、必要なファイルの バックアップを取れば良いでしょう。3.x ベースのカーネルを保存してあれば、 つなぎかえる必要はないかもしれません。 # mount -f -o ro /dev/ad2s2a /mnt 以下の説明は FreeBSD 4.x 以降では使えないか、あまり一般的な方法ではあり ません。IDE HDD やファイルシステムについて、それなりの知識を要求される 方法でもあります。 以前の wd(4) ドライバでは、bad144(8) コマンドによる不良セクタの代替処理 が使えます。ファイルシステムとして使用中のセクタを代替することもできます が、決して勝手に修復してくれるわけではありません。また、代替用のセクタを 確保しておかなければならないので、newfs(8) 前に HDD 全体をスキャンしてお いた方が安全です。FreeBSD のインストーラ sysinstall(8) からでは、FDISK Partition Editor の "B" コマンドを指定すると bad144 が実行されます。 それから badsect(8) というコマンドもあります。これは不良セクタを特別なファ イルに閉じ込めることで、通常のファイルとして使わないようにするもので、い くつかの制限事項はありますが、FreeBSD のリリースに関わらず使えるはずです。 --- [管理番号 279] (最終更新 2000/12/07 02:36:22) Q. X Window System(Motifベース)上でビジュアルにGUI構築を行えるようなツー ルはありますか? A. 売りものですが、TeleUSE という物があります(けっこうな値段です)。 また、X Inside の Accelerated MWM FreeBSD を使うと WSM が付いてきますが、これは どうでしょう。ただし、バグってるので、core を吐いて MWM ごと落ちて しまうことがあります。 Motif ベースではですが、XForms というライブラリを使えば、fdesign という GUI 構築ツールが付いてきます。フリーです。XForms はホーム ページがあります。 C ではなく、Tcl/Tk ですが、Sun が SpecTcl なる物を開発しています。 結果の外見はほぼ Motif です。 Tcl 物で、XF という物もあります。 Windows95上の Boaland Latteや Microsoft J++などの Java 開発環境で クロス開発して、UNIX の Java 環境(例えば Netscape)で動作させる方法も あります。 --- [管理番号 280] (最終更新 2003/05/17 21:39:24) Q. 日本語に対応した a2ps はありませんか。 A. ja-a2ps (ports/japanese/a2ps) を Ports や Packages からインストール してください。 --- [管理番号 284] (最終更新 1999/02/17 23:58:45) Q. jp-man-doc(日本語man)をインストールし、jmanコマンドを実行すると、ペー ジの境目らしき位置に「[m[1m[m」といった文字が現われてページがくっつき、 また、説明の終わりに達すると jmanの処理が終了してしまいます。 A. 環境変数 PAGERを変更すると改ページが正しく行われ、表示は jlessの管 理下で行われます。 cshの場合は次のコマンドを実行します。 setenv PAGER 'jless -s' shの場合は次のコマンドを実行します。 export PAGER='jless -s' --- [管理番号 286] (最終更新 1999/02/17 23:58:45) Q. FreeBSDでI/Oポートを直接制御するには、どうするのでしょうか? A. /dev/ioをオープンすると、そのプロセスは直接I/O命令を使えるようにな ります。 --- [管理番号 289] (最終更新 1999/02/17 23:58:45) Q. FreeBSD にログインして、ある一定時間が経過すると自動的に ログアウトしてしまうようです。これを抑止することは可能 でしょうか? A. shell の auto-logout 機能が効いているんじゃないでしょうか。 例えば、tcsh の場合 ~/.cshrc に unset autologout と書けば抑止できます。 --- [管理番号 290] (最終更新 2001/03/07 02:08:46) Q. DES って何ですか? A. Data Encryption Standard の略で、データの暗号化アルゴリズムと、それを 実装しているシステムファイル及び、もっと一般的には Unix 全般のログイン パスワードの記録形式の事を意味します。 Sun などのような、password の暗号化に DES(ここでは algorithm を示しま す)を使用している OS を NIS server とする場合、password を照会する時 に暗号化の方式に互換がないと認証できませんので、DES(ここでは FreeBSD のファイル)を install する必要があります。しかし、安全性の面から言え ば FreeBSD 標準の MD5 形式よりも低いくらいで、現在の Internet 経由の リモートログインでは、もっと強力な暗号化アルゴリズムを搭載した SSH な どのプロトコルを使う事が推奨されます。 ややこしい事に、DES にはアメリカ合衆国の輸出規制問題がつきまといます。 幸いなことに 4.1.1-RELEASE 以降では、FreeBSD はこの問題を法的にクリア したため、標準のリリースに DES を含めて全ての暗号化機能が含まれます。 実際は DES については 3.5.1-RELEASE で問題なく公開できるようになったの ですが、RSA についてのアメリカ国内での特許問題もからみ、4.1.1-RELEASE から一般の配布ファイルと同等の扱いとなりました。しかしそれより前の リリースでは、アメリカ国内にある FreeBSD オリジナルの配布はできず、 そのため「US 版」と「国際版」が存在しました。 こういった歴史的な事情は、次の文書に詳しく書かれています。 FreeBSD ハンドブック「8. セキュリティ」 --- [管理番号 292] (最終更新 2001/03/07 02:08:46) Q. DES のインストールの方法を教えてください。 A. ここではバイナリ配布ファイルからのインストール方法に話を絞ります。 まず、FreeBSD の暗号化関連の取り扱いについては、4.1.1-RELEASE で 大きな変更がありました。これについては、[管理番号 290] 及び [管理番号 291] を参照してください。 DES を含む配布ファイルは、4.0-RELEASE 以降ではそれまでの des/des.?? から crypto/crypto.?? に変更されていて、新たに追加された OpenSSL や OpenSSH も同じ配布ファイルに含まれます。また、インストーラの Distoributions メ ニューでも、3.5.1-RELEASE までは DES → des、4.1-RELEASE までは CRYPTO → crypto、そして現在では単に crypto を選択するだけとなっています。 項目の選び方については、以下の [X] マークを参考にしてください。なお、 4.1.1-RELEASE 以降では、Minimal 以外の配布セットを選べば自動的に マークされます。最後にインストール後の設定方法については、[管理番号 345] を見てください。 [3.5.1-RELEASE までの DES サブメニュー] [X] des Basic DES encryption services [ ] krb KerberosIV authentication services [ ] skerbero Sources for Kerberos [X] ssecure Sources for DES [X] scrypto Export controlled crypto sources [4.1-RELEASE までの CRYPTO サブメニュー] [X] crypto Basic encryption services [ ] krb4 KerberosIV authentication services [ ] krb5 Kerberos5 authentication services [ ] skrb4 Sources for KerberosIV [ ] skrb5 Sources for Kerberos5 [X] ssecure BSD encryption sources [X] scrypto Contributed encryption sources [4.1.1-RELEASE からの Distributions メニュー] (インストール時のメニューでは、配布セットを選ぶメニューで Custom を選択すると表示されます) [X] crypto Basic encryption services [ ] krb4 KerberosIV authentication services [ ] krb5 Kerberos5 authentication services [4.1.1-RELEASE からの src サブメニュー] [X] scrypto /usr/src/crypto (contrib encryption sources) [ ] skrb4 /usr/src/kerberosIV (sources for KerberosIV) [ ] skrb5 /usr/src/kerberos5 (sources for Kerberos5) [X] ssecure /usr/src/secure (BSD encryption sources) --- [管理番号 293] (最終更新 1999/02/17 23:58:45) Q. ユーザの振る舞いを知るのに、各ユーザが実行したコマンドをログファイ ルに記録することができるのでしょうか。 A. /etc/sysconfig (2.2.2-RELEASE 以降の場合は /etc/rc.conf) で accounting="YES" として lastcomm(1) で見られます。ただし、/var/account の容量をかなり大きく取っておくか、まめにログを掃除する必要があります。 --- [管理番号 294] (最終更新 1999/02/17 23:58:45) Q. popperを導入したら /var/log/messagesというファイルに May 27 23:12:53 ns popper[2245]: (v2.2) Unable to get canonical name of client, err = 0 というmessageが出るようになりました。 A. pop で接続してくるクライアントのホスト名がIPアドレスから検索できな いようです。/etc/hosts に書くか DNSを使っているならそちらに記述しましょ う。また ログを記録しない方法もあります。 [FreeBSD-users-jp 13416][FreeBSD-users-jp 13419] --- [管理番号 295] (最終更新 2000/11/08 01:55:32) Q. ログを別のファイルに書き出したくて /etc/syslog.conf を編集したんで すが変化がありません。 A. syslogd(8) に HUP シグナルを送りましたか? # kill -HUP `cat /var/run/syslog.pid` です。 伝統的な Unix では、syslog.conf(5) ファイルの、各行の左端に位置する 種類 (selector) を書く部分と、右側のファイル名 (action) を書く部分 の間の空白は TAB 文字だけしか使えません。スペースを入れると誤動作し ます。もちろん全角スペースは論外です。 cron.* /var/cron/log selector |---- TAB 文字 ----| action なお、最近の FreeBSD ではユーザへの便宜を図って、TAB 文字とスペース のどちらも使用できるよう改良されています。この場合も当然全角スペー スは除きます。 また、syslogd は指定された log file を自動的には作成しませんので、 手作業で作成しておく必要があります。次のように touch コマンドなどを 使用して作成してください。 # touch /var/cron/log 溜ったログファイルの処理については newsyslog(8) を参照すれば良いで しょう。 --- [管理番号 296] (最終更新 2004/04/09 05:05:18) Q. Anonymous FTP はどうやって立ち上げるのでしょうか? A. OS 付属の ftpd を使うなら、やり方は ftpd(8) に書いてあります。 また /stand/sysinstall で、 設定→ネットワーク→匿名 FTP と選んでいけば設定が可能です。 FreeBSD 4.7-RELEASE のデフォルトでは、inetd(8) は動いていますが、 ftpd などの各種デーモンは起動されないようになっています。 /etc/inetd.conf の #ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l #ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l の部分の行頭の # を削り、 # kill -HUP `cat /var/run/inetd.pid` と inetd に SIGHUP を送って、inetd が /etc/inetd.conf を読み直す ようにします。 また、FreeBSD 5.x 以降においては、inetd(8) がデフォルトでは 起動されないようになっています。従って、sysinstall で inetd を 有効にするか、/etc/rc.conf に enable_inetd="YES" を追加した上で /etc/inetd.conf を修正してください。 --- [管理番号 297] (最終更新 2000/11/08 01:57:41) Q. AT 互換機用 高速シリアルボードは使えますか? A. 標準の FreeBSD では、115200bps を越える高速シリアルボードのサポートは あまり行われていません。 そこで、sioドライバを 115200bps 以上の速度に対応させるためのパッチを 佐藤 淳一さんが作成されています。 1999年7月現在、IF-01GTR、RSA-DV/S、RSA-DVII/S、SP111AT、FS-460、S-650 など、日本国内で入手可能なほぼ全ての ISA 高速シリアルボードをサポート しています。しかし、PCI のカードはサポートされていませんので、注意し てください。 ISDN TA 使って MP しようという人は、お試しください。115200bps を越え る通信速度としては、230400, 460800, 921600bps などが設定できます。 --- [管理番号 298] (最終更新 2003/05/17 21:39:22) Q. シングルユーザ・モード (boot -s) で起動してファイルを修正しようとしたの ですが、/ が read only になっていて書き込みができません。 A. 以下の手順が推奨されます。 1. ファイルシステムの整合性チェック # fsck -p これでエラーが報告されなければ次へ、もし異常終了した場合は、エラーが 報告されたパーティションについて、個別に fsck(8) を実行して復旧させます。 2. / (ルートパーティション) を書き込み可能状態へ # mount -u / /etc/fstab が消えたような場合は、mount -u -o rw /dev/ad0s1a / のように 具体的にデバイスも書きましょう。 3. 他のファイルシステムをマウント (オプション) # mount -a -t ufs または、必要なファイルシステムを個別にマウントすればよいでしょう。 4. スワップの有効化 (オプション) # swapon -a メモリが厳しい状況では必要ですが、メモリが十分あれば不要です。 5. カーネルクロックの調整 (オプション) # adjkerntz -i マシンの CMOS クロックが UTC に合わせてあれば必須ではありませんが、 ローカル時間に合わせてある場合 (/etc/wall_cmos_clock が存在する)、 これを実行しないでファイル編集を行うと、ファイルのタイムスタンプが ずれてしまいます。 ファイルの修正など作業が終わったら reboot するのが確実ですが、もし、^D でマルチユーザ・モードに移行するなら、その前に adjkerntz を kill してく ださい。そうしないと rc(8) スクリプト実行中に adjkerntz が二重に呼び出 されてしまいます。 --- [管理番号 299] (最終更新 1999/02/18 03:38:14) Q. ブート時に Automatic file system check failed... help! Enter full pathname of shell or RETURN for /bin/sh: と言って止まってしまいました。 A. シェルのパスを入れろとか言っていますので、適当なシェル (/bin/shか /bin/csh。/usr/local/bin/tcshはダメです) を入れるか、単にリターンを 打ちます。次に、fsck (/sbin/fsck) を実行します。例えば、/dev/wd0a の場合は、fsck /dev/wd0a となります。ファイルが壊れている場合などは、 どうするか聞いてきます。運を天にまかせて自動処理させたい時は、fsck に -y を付けて、fsck -y /dev/wd0a とします。 --- [管理番号 300] (最終更新 2001/05/07 03:21:08) Q. 音楽 CD を鳴らすにはどうしたらいいですか? A. まずは CD のデバイスを調べましょう。基本的には SCSI CD ドライブなら /dev/cd0c ATAPI CD ドライブなら /dev/wcd0c (FreeBSD 2.2.8-RELEASE 以前) /dev/acd0c (FreeBSD 3.0-RELEASE 以降) となっていますが、わからなければ dmesg(8) コマンドで調べてください。 例えば、 acd0: CDROM drive at ata1 as master acd0: 128KB buffer, PIO4 acd0: Reads: CD-R, CD-RW, CD-DA stream, packet acd0: Audio: play, 255 volume levels acd0: Mechanism: ejectable tray acd0: Medium: no/blank disc inside, unlocked などという出力が得られれば /dev/acd0c が CD のデバイスです。 次に FreeBSD 付属の cdcontrol(1) コマンドで音楽 CD が鳴るか どうかを試してみましょう。 % cdcontrol -f 調べたデバイス名 play 1 で、CD の 1 曲目が鳴るはずです。 注意点 1. デバイスの読み込み権限が必要ですので、 cdcontrol: /dev/acd0c: Permission denied などとなったら、root で # chmod 644 /dev/acd0c とするのがよいでしょう。これだと誰でも音楽 CD を鳴らせます (逆にいうと、誰でも鳴らせるという危険性もあります)。 あるいは、デフォルトでは crw-r----- 2 root operator .... /dev/acd0c となっているので、「音楽 CD を聞きたい人は operator グループに 属する」と決めておく手もあります。ただし operator グループに属する 人は shutdown(8) できてしまいます → [管理番号 461] また、/etc/fbtab に /dev/ttyv0 0644 /dev/acd0c などと記述する方法もあります。詳細は fbtab(5) の man ページを 参照してください。 とりあえず試すだけなら root で cdcontrol(1) を実行すればよいです。 注意点 2. 音楽 CD の音をサウンドカードから出すには、サウンドカードの 設定が必要です。もしまだサウンドカードの設定を行っていない 場合は、CD ドライブ前面のヘッドホンジャックから音が出ている か調べて下さい。CD ドライブ前面のヘッドホンジャックは、サウ ンドカードを経由せず、直接 CD ドライブから出力されているから です。 なお、音楽 CD を鳴らす際、cdcontrol(1) などの CD プレイヤーは、 CD ドライブに「何曲目を鳴らせ」と命令を出します。後は CD ドライブが 音を垂れ流して、サウンドカードは CD ドライブからの出力をミキシング して出力するだけです。その証拠に、FreeBSD を shutdown(8) しても、 マシンの電源が切れるまでは演奏は続きます。 ですから、音楽 CD が鳴るからといってサウンドカードの設定が うまくいっている (=MP3 も鳴る) とは限りません。 cdcontrol(1) 以外にも、ports/packages で xcdplayer, cdplay, workman, cdplayer, xmcd, cda, wmcdplay などたくさんの CD プレイヤーが用意されて います。ところが、以下の例のように、デバイスの指定方法がばらばらです。 cdcontrol -f /dev/acd0c play 1 xcdplayer -device /dev/acd0c workman -c /dev/acd0c wmcdplay -d /dev/acd0c デバイスの指定方法については、各コマンドの man ページを参照して下さい。 --- [管理番号 301] (最終更新 1999/02/24 04:25:51) Q. Windows NT や Windows 95,98 のマシンから Samba のサーバに接続しよう としましたが、パスワードの認証が拒否されます。なぜでしょう。 A. いろいろ理由は考えられますが、最近よく見掛ける例としては暗号化パス ワードの問題があるようです。特に、Windows NT 4.0 + Service Pack 3 や Windows 95 に最新の updates を当てている場合、および初期状態の Windows 98 などは、この原因が濃厚です。 Samba 1.9.18 以降に対応した ports では、オリジナルの net/samba の ports でこの問題に対処できます (日本語ファイル名にも net/samba で対応 できます)。1.9.17 をベースにした ports では、net/samba-des および日本 語ファイル名に対応した japanese/samba-des がこの問題に対応しています。 ただし、合衆国の暗号技術に関する輸出制限の問題で、samba-des は packages として提供されていません。1.9.16 以前の ports はこの問題に一 切対応していません。 すでに samba を 導入している場合、smb.conf を修正する必要があるでしょう (具体的には [global] で encrypt passwords = yes を指定する必要がありま す)。またユーザーの管理方法の違いについても注意が必要です。 なお、ここでいう des と、FreeBSD の DES パッケージは無関係ですので、 samba-des をインストールする時に FreeBSD のパスワードの暗号化方法を気 にする必要はありません。 また、NT4.0+SP3 のレジストリを修正することで samba を使用する方法もあ ります。マイクロソフトの に解説がありますし、1.9.17 以降を ports/packages からインストールした 場合は、レジストリエディタのファイルが /usr/local/share/doc/samba 以下 にインストールされます。 Windows 98 の場合は、 に解説があります。 --- [管理番号 303] (最終更新 2004/04/09 05:05:58) Q. fetchmail が reading message 1 (xxxx bytes) .fetchmail: SMTP connect failed fetchmail: SMTP transaction error while fetching from xxx.xxx.xxx というエラーを表示して、メールを持ってきてくれません。 A. fetchmail は、POP や IMAP で取得してきたメールを、標準では SMTP を使っ て配送しようとします。sendmail.cf を正しく設定した上で、sendmail(8) を daemon モードで動作させてやれば一応問題は解決するのですが、ローカルメー ル配送のためだけに sendmail を動かしておく意味は無いばかりか、セキュリ ティの面でもあまりお薦めできません。 その代り、~/.fetchmailrc に mda 指定を追加する方が良いでしょう。以下に 例を示します。なお、username は各自のローカルユーザ名に置き換えてくだ さい。 1) mda "/usr/libexec/mail.local username" ローカルメーラを指定する方法です。今までは一般的な方法でしたが、 4.2-RELEASE からは、/usr/libexec/mail.local が set-user-id バイナリと してインストールされなくなった影響で、そのままでは使えなくなった方法で す。しかし、他の方法に比べ万一なにか問題があった場合でも、外部への被害 を与える心配が無いという意味では安全です。 2) mda "/usr/sbin/sendmail -oem username" 4.2-RELEASE からは、sendmail を指定することになります。もちろんそれ 以前のリリースでも有効な方法ではあります。 3) mda "/usr/local/bin/procmail -d username" メールの振り分けのために procmail を指定する方法です。上記の二つは単 純にローカルのメールスプールに転送するだけでしたが、独自のスクリプト等 を指定する事で柔軟な処理が行えます。 --- [管理番号 304] (最終更新 1999/02/17 23:58:45) Q. 拡張DOS領域内の論理ドライブはどうやったらマウントできますか? A. 拡張 DOS は5番目以降になると思いますので、 # cd /dev # ./MAKEDEV wd0s5 # mount_msdos /dev/wd0s5 /foo (foo はマウントしたいディレクトリ) これでどうでしょうか。 --- [管理番号 306] (最終更新 1999/07/02 16:25:31) Q. FreeBSDから他のマシンへtelnetすると、Ctrl-Oが送信できません。 例えば mule,elvis,nvi などで canna を使って日本語入力するとき、 Ctrl-O を入力しても日本語入力モードになりません。 A. FreeBSDでは、Ctrl-O が discard に割り当てられているので、 stty discard '^-' によって、設定されていた discard '^O' を無効にすればよいです。 毎度 telnet の度に入力するのが面倒な人は、.telnetrcを ホームディレクトリに用意して、 DEFAULT unset flushoutput の1行を書き加えておきましょう。 また、seyon 等の端末エミュレータを利用する場合には、端末に stty を 送るために以下のようなシェルスクリプト(seyon-hook)を用意して、 seyon -emulator kterm -- -e seyon-hook などと起動するのが良いでしょう。 ---seyon-hook--- #!/bin/sh shift cmd="$@" stty discard ^- exec $cmd ---------------- --- [管理番号 307] (最終更新 1999/02/17 23:58:45) Q. groff に ms macro はないんですか? A. groff -mgs で gnu 版の 拡張 ms macro が使えます。 --- [管理番号 308] (最終更新 1999/02/17 23:58:45) Q. POP対応のMHを使ってメールを読む時に spoolのメールを削除しない設定っ てあるのでしょうか? A. MH の設定ですが、man inc すると、以下のような記述があります。 In all cases, the user's mail drop will be zeroed, unless the `-notruncate' switch is given. ~/.mh_profile に inc: -notruncate と書いてみましょう。 --- [管理番号 309] (最終更新 1999/02/17 23:58:45) Q. FreeBSD でプレゼンテーションをしたいのですが、どんなソフトがありますか? A. 以下の方法が考えられます。 1. tgif を使う方法。tgif には HyperLink 的なことができるので十分プレゼ ンツールとして使えます。また tgif で描いた絵を GIF ファイルに出力して xslideshow を使うことも出来ます。 2. wipe を使う方法。また、GIF の絵を張り付けられるようにした wipe2 と いうソフトもあります。どちらも日本語対応の Tcl/Tk が必要です。 3. ewipe を使う方法。インストール方法については、 を参照してください。ま た、このソフトは package 化されています。動作させるにはtcl/tkが必要で す。 4. HTML 3.2 を使って資料を作成し、 Netscape Navigator 4.x を使ってプレ ゼンテーションを行う方法。 5. MagicPoint を使う方法。このソフトは、 西田佳史(nishida@sfc.wide.ad.jp)さん作で日本語も使えます。VFlib に対応 しています。リリースされる前は、TinyPoin(TP) と呼ばれていました。 --- [管理番号 310] (最終更新 1999/02/17 23:58:45) Q. IPFWを組込んだ(つもりの)kernelでブートすると、以下のようなエラー メッセージが出てしまう。 ipfw getsockopt(IP_FW_GET): Invalid argument A. kernelのconfigurationで以下の点を確認してみて下さい。 options IPFIREWALL <----必ず必要 options IPFIREWALL_VERBOSE <----ログを出す時に必要 (注意)2行目だけでは、IPFWを組込んでくれません。 --- [管理番号 311] (最終更新 1999/02/17 23:58:45) Q. Windows から ports/packages でインストールした Samba に接続したので すが、新しいフォルダやファイルを作ろうとした途端に変なファイル名に化け、 ファイル名を変更しようとしてもエラーが出てしまいます。どうしたらいいの でしょう。 A. Samba が日本語ファイル名に対応していないため「新しいフォルダ」など のデフォルトのファイル名に対応できないためでしょう。 この解決法は、Samba のバージョンによって違います。 1.9.18 の net/samba の ports では、サンプルでインストールされる設定ファ イルサンプル /usr/local/etc/smb.conf.default に以下の記述があります (このファイルを /usr/local/etc/smb.conf にコピーする、あるいは参考にし て smb.conf を書くことで samba を設定します)。 # Client codepage setting # for Western European users ; client code page=850 # for Japanese users ; client code page=932 ; coding system=cap この下の方の設定をコメントでなくする、つまり、 # Client codepage setting # for Western European users ; client code page=850 # for Japanese users client code page=932 coding system=cap のようにすることで、日本語ファイル名に対応できます。 1.9.17 ベースの場合は、japanese/samba と japanese/samba-des という ports があり、これらが日本語に対応しています。 1.9.16 ベースの場合は、簡単な方法はありません。 --- [管理番号 312] (最終更新 1999/02/17 23:58:45) Q. ファイルサーバを Windows から FreeBSD + samba にかえたら一部のアプ リケーションが異常に遅くなりました。 A. samba の source に付属の docs/Speed.txt にいろいろな高速化技法が載っ ています。smb.conf の [global] セクションに socket options = TCP_NODELAY を追加したら、劇的に速くなったという報告があります。 また、NICが原因で速度が低下したケースもあるようです。一度他のNICを 使ってみるといいかもしれません。 --- [管理番号 313] (最終更新 1999/02/17 23:58:45) Q. Cyrix の 6x86 を使ったシステムをつくったのですが、ブートされるとき に表示されるメッセージから判断して 486-class CPU と認識されているよう です。BIOS では、ちゃんと Cyrix 6x86 と認識されています。i586-class の はずなのですが。何か設定がおかしいのでしょうか? A. それで正常です。 Cyrix 6x86 は、i486 のインストラクションセットと互換であるためです。 インストラクション的には Pentium(586-class) 互換ではありません。そのた めカーネルを再構築するときに cpu "I486_CPU" を削ってしまうと起動できなくなってしまいます。 --- [管理番号 314] (最終更新 2001/01/08 04:37:14) Q. HDD に不良セクタ (Bad Sector) が発生したようです。再度インストールし直 そうと思いますがその前に何かしておくことはありますか? A. まず一般論として、最近の HDD は大容量化の影響もあり、一旦 Bad Sector が 発生し始めると、そのあとは一気に被害が拡大することが多くなっています。 以下に説明する方法で代替処理 (repair a defect sector) を行っても、重要 なデータをその HDD に置くべきではありません。 最初に FreeBSD FAQ の「Q: ハードディスクに不良セクタがあります!」を見て ください。以下の URL です。 FreeBSD FAQ は 2.2.x ベースの内容が主で、必ずしも最新状況が反映されてい るわけではありません。以下の補足事項も参考にしてください。 (1) IDEディスクの場合 FAQ にもあるように、各 HDD ベンダが Web 等で供給しているユーティリティ を使って、low-level フォーマットを行なうことが考えられます。これにより 不良セクタの代替処理が行なわれるでしょう。 low-level フォーマットはなかなかデリケートな処理なので、十分に安定した 条件下で行なって下さい。IDE の場合は各ベンダ間で互換性がない事があるの で、必ず HDD のメーカの供給するユーティリティを使って下さい。 low-level フォーマット以外には bad144(8) というコマンドがありますが、 これは 4.0-RELEASE 以降の ad(4) ドライバでは使用できません。また wd(4) ドライバでも、最近の大容量 HDD では代替可能セクタ数をオーバーしてしま うなど、逆に問題を引き起こす可能性もあります。[管理番号 278] も参照し てください。 (2) SCSIディスクの場合 3.0-RELEASE 以降では scsi(8) コマンドは camcontrol(8) コマンドに置き換 えられました。これはドライブごとに次のコマンドを root で実行して、 # camcontrol da2 -m 1 -e -P 3 そして, AWRE と ARRE の値を 0 から 1 へ変更します:- AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 もちろんディスクを外して例えば Mac 上でこの処理を行なってもよいです :-) Mac のSCSIディスクユーティリティの HDT は実に良くできている... SCSI ディスクの場合も low-level フォーマットがありますが、low-level フォーマットは不良セクタの特に多いディスクを、無理矢理使うような特殊な 場合を除いてあまりメリットのある方法ではありません。 --- [管理番号 315] (最終更新 2003/05/17 21:39:26) Q. インストールは CD-ROM から出来たのですが、インストール後どのように CD-ROM を使えばいいのか分かりません。 A. 通常、CD-ROM は以下のコマンドを root 権限で実行することで、マウント して読み出すことが出来ます。 mount -t cd9660 /dev/xxx yyy # xxx はデバイス名: 例えば ATAPI CD-ROM なら acd0c # yyy はマウントポイント: 例えば /cdrom や /mnt /etc/fstab に以下のような記述がある場合には、mount /cdrom でマウン トすることも可能です。 # Device Mountpoint FStype Options Dump Pass# /dev/acd0c /cdrom cd9660 ro,noauto 0 0 CD-ROM からインストールした場合には自動的にこの記述が追加され、マウ ントポイント(ディレクトリ)である /cdrom も作成されるようです。 マウントしたあとは、通常のファイルシステムと同様に参照することが可 能です( ls /cdrom してみてください)。 関連: [管理番号 666] CD-ROM や MO のマウントをする際、いちいち root になるのが面倒なのですが。 なお Note PC 等で、PC Card 経由で接続された CD-ROM ドライブがうまく 動作しない場合、[管理番号 1408] [管理番号 2132] 等を参照してみてく ださい。 --- [管理番号 316] (最終更新 1999/02/17 23:58:45) Q. コンパイルの最中に virtual memory exhausted というメッセージを出し てコンパイルができません。主記憶も swap も十分にあるはずなのですが... A. 計算機資源の制限値に引っかかっているのかもしれません。プロセスごと に制限値が設定されています。この場合ですと コマンドラインからコンパイ ルを実行したのですから、その時のプロセスすなわちシェルが起動したときに OSが設定した制限値です。 この制限値を確認したり、変更したりするコマンドは cdコマンドなどと同じ ようにシェル自身が提供するコマンド(内部コマンド)なので、使用しているシェ ルによってコマンド名やフォーマットが異なります。それぞれのシェルのman で調べてください。csh,zshの場合は limit コマンドで確認できます。 データ領域の大きさの上限に引っかかっている場合は、unlimit datasize と すると良いでしょう。 またプロセスとは別に システム(OS)自体の最大値というものも決まっていま す。この値は limit -h コマンドで確認できます。こちらの制限に引っかかっ ている場合は、sysctlコマンドで変更出来るモノもありますが kernelを再構 築する方がよいでしょう。 --- [管理番号 317] (最終更新 1999/02/17 23:58:45) Q. MO を繋いてるんですが起動時に (ahc0:4:0): "FUJITSU M2512A 1502" type 0 removable SCSI 1 sd2(ahc0:4:0): Direct-Access sd2(ahc0:4:0): ILLEGAL REQUEST asc:24,0 Invalid field in CDB sks:c0,4 sd2 could not mode sense (4). Using ficticious geometry 217MB (446325 512 byte sectors) と叱られてしまいます。どうも FreeBSD の方でハードディスクに解釈して しまってるようです。何がおかしいんでしょう。 A. おそらく MO のデバイスタイプモードが ハードディスクになってるんでしょ う。MO のディップスィッチを [ハードディスク]->[MOドライブ]に切り換えて ください。 --- [管理番号 318] (最終更新 2004/04/09 05:05:59) Q. UPS は使えますか? A. 単に停電時にバッテリが持つ間電源を供給するだけでしたら、ほとんどの UPS が FreeBSD で使用可能です。PC の消費電力や UPS のバッテリ能力によ りますが、数分間の停電でしたら、単に電源ケーブルを繋ぐだけで大丈夫です。 また、ノートパソコンであれば UPS を使うまでもないかもしれません。 不慮の事故で停電が起きた時に、バッテリが切れる前に自動的に shutdown し たい場合には、UPS と PC との間で信号の受渡しを行なう必要があり、 FreeBSD で自動 shutdown のためのプログラム (upsd) を動かしておきます。 必要なものは接続ケーブルと upsd です。どちらも多くの場合、使用する UPS に対応した専用のものが必要となります。 ATX 電源を使用している場合には、電力が復旧しても PC の電源が ON になり ませんが、BIOS によって設定できるものもありますし専用の回路を作成する 必要がある場合もあります。 最大負荷に関しては、[FreeBSD-users-jp 15099] が参考になります。 消費電力に対する停電時のバックアップ時間とバッテリー容量との比較表が APC のページに書かれています。(消費電力とUPSのバックアップ時間) o GE-EE 製の UPS FreeBSD に対応した UPS 監視管理ソフトウェアを提供しているようです。 を参照してください。 なお、ここでフリーで配布されている「パワーモニタS」が以前アルファテッ ク(株)が配布していたものと同じソフトウェアであれば、 GS-EE 製 PICO-II シリーズ、NetUPS シリーズ ダイトパワートロン製 Power Rite MAX シリーズ 山洋電気製 ASA シリーズ 東芝製 LittleStar/Econostar シリーズ の各シリーズで利用できるでしょう。 なお、GS-EE 製の UPS は、現在はケーブルを標準添付しているそうですが、 古い機種については専用ケーブルが必要な場合があるようです。 o APC の UPS の場合 APC Back-UPS Pro(TM)シリーズは bkpupsd という ports/package にあるプロ グラムが使えるようです。シリーズによってケーブルやプログラムを変える必 要があるようですので ML を検索してください。 o サンケン電気の UPS の場合・DENSEI (日本電気精器) [FreeBSD-users-jp 24854] を参照してください。両者は仕様が似ているので 同じプログラムが使えます。 o OMRON の UPS の場合 これも [FreeBSD-users-jp 24854] を参照してください。サンケン電気用の upsd がほぼそのままで使用できるそうです。 o その他の UPS の場合 Linux の UPS-HOWTO が参考になるかもしれません。 を参照してください。 なお、シリアルポートに関する情報は、 という記事が詳しいです。 また単に CD (carrier detect; D-SUB 9 コネクタの 1 番) が on になること がローバッテリを示しているのであれば、 #!/bin/sh : > /dev/シリアルデバイス シャットダウン処理 とするだけでよいそうです ([FreeBSD-users-jp 12185])。 --- [管理番号 319] (最終更新 1999/08/08 00:22:59) Q. 自分のマシンの /stand/sysinstall はI18N 版(日本語対応)ではないので、 日本語対応の /stand/sysinstall に入れ換えたいのですが。 A. 以下の方法があります。 1) I18N 版の release のソースから sysinstall をコンパイル & インストー ルする。 2) I18N 版の boot.flp で自分と同一 RELEASE をインストールした人を 見つけて、sysinstall をコピーさせてもらう。:-) 3) 3.x-RELEASE を使っているなら、I18N の mfsroot.flp から抜き出す * 1), 2) の場合は不具合があっても、ln /stand/-sh /stand/sysinstall を 実行すると元の sysinstall に戻せます。 1) の場合 などのサイトからソースを取ってくる。 (release-日付.tar.gz というような名前のものです) 取得ファイルをソースツリーに展開後、環境変数 MAKEOBJDIR を . に設定 して(ex. # setenv MAKEOBJDIR ".")、以下のディレクトリで make を実行。 (注:付属のパッチを termcap に当てておかないといけません) /usr/src/release/libdialog_wc /usr/src/release/libncurses_wc /usr/src/release/sysinstall 以下を /stand 配下にインストール。 sysinstall, help.*/*, I18N/fonts/*.bin, I18N/fonts/kon.*.cfg, messages/messages.* 2) の場合 目的の人をみつけて、1) でインストール対象にされているファイルをコピー する。 3) の場合 おおざっぱな手順を示すと、 /var/tmp/mfsroot.flp に MFS ルートイメージがあるとして、 # vnconfig /dev/vn0 /var/tmp/mfsroot.flp # mount -o ro /dev/vn0c /mnt または既にフロッピーが用意してあるなら、 # mount -o ro /dev/fd0c /mnt として、 # zcat /mnt/mfsroot.gz > /var/tmp/mfsroot # umount /mnt # vnconfig -u /dev/vn0 # vnconfig /dev/vn0 /var/tmp/mfsroot # mount -o ro /dev/vn0c /mnt # rm -rf /stand # tar cf - -C /mnt stand | tar xvfp - -C / # umount /mnt # vnconfig -u /dev/vn0 注意点として、カーネルコンフィグレーションに pseudo-device vn 1 が必要です (GENERICには含まれていません)。 --- [管理番号 320] (最終更新 1999/02/17 23:58:45) Q. 1.44MB のフロッピーディスクを UFS にしたんですが、どうも実際の容量 よりもかなり少なく(855KB)なってしまうんですが。 A. newfs したとき 1.4MB in 1 cyl groups (5 c/g, 10.00MB/g, 4448 i/g) なメッセージが出てませんか?"4448 i/g" というのはiノードが全部で4448個 あるということで、4448個までファイルをフロッピィに入れられるということ になります。 したがってこれだけで、4448 * 128B == 556KB も使用してしまいます。こん なに多くのファイルは必要ないという方は(大多数の人はそうでしょうけど) 例えば、newfs -c 80 -t 2 -u 18 -m 0 -o space /dev/rfd0.1440 とすれば、i ノード 704 個、容量 1323KB、 newfs -c 80 -t 2 -u 18 -m 0 -o space -i 8192 /dev/rfd0.1440 ならば、i ノード 192 個、容量 1387KB などどしてやればよいわけです。目 的に合わせて適当にパラメータの値を変えて御使用下さい。なお、オプション の意味については newfs のマニュアルを見て下さい。 --- [管理番号 321] (最終更新 2000/11/08 02:04:11) Q. FreeBSD で動く JDK (Java 環境) はありませんか? A. まずは FreeBSD Java Project ミラーサイト 日本語訳 を御覧下さい。ここから JDK をダウンロードできます。 また、 の「FreeBSD Java 入門/導入」も参考になるでしょう。 --- [管理番号 322] (最終更新 1999/02/17 23:58:45) Q. IBM のパームトップ PC、PC110 で FreeBSD と XFree86 が動きますか。 A. 動くようです。 --- [管理番号 324] (最終更新 1999/02/17 23:58:45) Q. DEC HiNote Ultra IIのキーボード交換方法が知りたいのですが。 A. 次の URL を参照してください。 ただし DEC HiNote および DEC HiNote Ultra (II でないもの) は全く替え方が違いますので注意してく ださい。 --- [管理番号 325] (最終更新 2001/08/12 05:25:06) Q. 使っている FreeBSD をバージョンアップしたいのですが、今ある環境を破壊 せずにバージョンアップ出来ますか? A. バージョンアップには次の二通りの方法があります。 1. 新しいバージョンの FreeBSD の配布ファイル一式を入手して、ブートフロッ ピーや CD-ROM から起動後、インストーラのメニューで「Upgrade: 既存のシ ステムをアップグレード (Upgrade an existing system)」を選択する。 2. 新しいバージョンの FreeBSD のソースファイルを入手して、「make world」 を実行する。 どちらの方法でも、カーネル、ライブラリ、コマンドなどを入れ替えることは 同じですが、1. の方法ではコンパイル済のバイナリを直接システムに上書き するのに対して、2. では自分のマシンでバイナリを作成して現状のシステムに インストールします。ただし、/etc 配下の設定ファイルは手動でマージする 必要があります。コマンドや /etc 以外のファイルなどにローカルな変更を 加えてある場合なども個別の対応が必要になるでしょう。また、コマンドや設定 ファイルの仕様変更、インストール済の ports/packages なども注意は必要 ですが、基本的には FreeBSD のバイナリは下位互換ですので、大部分はそのまま 使い続けられます。 2. の方法では全てコンパイルし直すことになりますので、相応のディスク容量 と時間が必要です。ディスク容量に関しては特に /usr/src と /usr/obj を 使いますので、必要なら前もってシンボリックリンクを張るなどして対応して ください。 参考) 必要なディスク容量と make world に要する時間 /usr/src 300MB /usr/obj 300MB 486DX4 100MHz 10 時間 MMX Pentium 233MHz 2.5 時間 Celeron 300MHz 2 時間 作業方法は、英語版が以下の URL にあります。 この日本語訳は、以下にあります。 また、/etc 設定ファイルの更新には mergemaster(8) が便利です。 --- [管理番号 326] (最終更新 2003/01/22 21:13:32) Q. Linux のバイナリを実行させようしていますが、うまく動きません。 A. Linux バイナリ互換機能を有効にする必要があります。 ハンドブックの「Linux バイナリ互換機能」 を御覧下さい。 また、options SYSVSHM 等の SYSV互換機能を追加して kernel を再構築す る必要があるかもしれません。 --- [管理番号 329] (最終更新 2001/08/12 05:25:00) Q. perl スクリプトに実行許可属性を付けて % ./foo.pl としたときと % perl foo.pl の場合で挙動が異なることがあります。 A. 前者と後者で起動される perl(1) のパス(とバージョン)が異なっているためです。 前者の形式でスクリプトが実行されると、Unix はスクリプトの1行目を見て どのプログラムを起動するか判断します。起動されるプログラムは行頭の #! に続くパス名で、例えば catman(1) のように #!/usr/bin/perl となっていれ ば、/usr/bin/perl が起動されます。 後者は普通のコマンド実行と同じく、shell によってコマンド検索パスを検索 して見つけ出した perl が使われますので、環境変数 $PATH の設定によって 変化する可能性があります。どの perl が使われるか確認するには which(1) コマンドを利用して以下の様に入力します。 % which perl /usr/bin/perl (実行結果) それぞれの perl がどんなバージョンのものか確認するには -v オプション を使います。*フルパス* で perl を実行して比べてみてください。 たとえば /usr/local/bin にある perl を確認するには % /usr/local/bin/perl -v This is perl, version 5.005_03 built for i386-freebsd ... (省略) ... と入力します。 なお、/usr/bin/perl については FreeBSD 2.2 系列では Version 4、 FreeBSD 3.0-RELEASE 以降では Version 5 になっています。 --- [管理番号 330] (最終更新 1999/02/17 23:58:45) Q. PC98 で PEGC の X server (XF98_NE480) を終了すると、画面が乱れます。 NOTE の液晶画面だと真っ白になってしまうことがあります。 A. もしカーネルに options "LINE30" が含まれていないようでしたら、入れ たカーネルで試してみてください。 --- [管理番号 331] (最終更新 1999/02/17 23:58:45) Q. ビデオカードがViRGE系(XF86_S3V)のPCで、xdmを起動中にloginやexitを行っ た際に、画面が青くなってハングアップすることがあります。 A. X server の reset 時に問題が起きるので、-terminate オプションを付け てください。具体的には、/usr/X11R6/lib/X11/xdm/Xservers のファイル中の :0 local /usr/X11R6/bin/X という行を :0 local /usr/X11R6/bin/X -terminate とします。 --- [管理番号 335] (最終更新 1999/02/17 23:58:45) Q. IBM ThinkPad 530Cs でリブートする際に、マシンがリセットされずに止 まってしまいます。 A. ThinkPad 530CS にはリブートできるマシンとできないマシンがあります。 kernel configuration file に options BROKEN_KEYBOARD_RESET という行を追加してカーネルを再構築すると直るという報告があります。 --- [管理番号 336] (最終更新 2001/10/25 21:20:55) Q. FreeBSD ではブート時にオプション (boot -s) を与えることで、誰でもシングル ユーザ・モードで起動できてしまうのですが、その場合にもパスワードを要求する ようにはなりませんか? A. init(8) のマニュアルや /etc/ttys 内に記述がありますが、これが問題になる ような場合にはシングルユーザ・モードに入るときにパスワード入力を要求さ せることが可能です。 --- /etc/ttys より抜粋---------------------------------------------------- # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure -------------------------------------------------------------------------- つまり最後の secure を insecure にすれば OK です。 --- [管理番号 337] (最終更新 1999/02/17 23:58:45) Q. 800x600ドットのノートパソコンで Mule を使っているのですが、この解像 度で Mew を利用した場合、サマリーモードの表示領域の行数が少なすぎて不 便です。これを常に10行程度に保つ方法はありますでしょうか? A. ~/.emacs のなかで、下を定義する。 (setq mew-window-configuration '((summary (1 0)) (message (8 31)) (draft (1 0)))) message の後ろが、summary 対 message の比率です。 (message (1 1)) にすれば 1:1 なります。 mew.el の defvar してる変数をみれば他にもいろいろなカスタマイズができ るでしょう。 --- [管理番号 343] (最終更新 2001/03/07 02:08:45) Q. ppp(8) を利用して手動で PPP 接続を行ったところ、 プロンプトが小文字の ppp から大文字の PPP に変わって接続は出来ているようなのですが、ping コマンドを実行しても応答が返って来ないのですが? A. PPP での接続自体は正常に行われているのですが、 デフォルト経路 (default route) が設定されていないため、パケットが相手に届いていないよ うです。具体的には、プロンプトに対して以下のコマンドを入力します。 add default HISADDR 既にデフォルト経路が存在する場合は、 add! default HISADDR とすれば上書きできます。ここで HISADDR が PPP サーバの IP アドレスに置 き換わります。最近の ppp(8) のバージョンでは、これらの一行を /etc/ppp/ppp.conf の該当セクションに追加することで、接続後に自動的にデ フォルト経路を書き換えてくれます。 FreeBSD 2.2.7R 以前では、上記の代わりに以下のコマンドを使用します。 delete ALL add 0 0 HISADDR この設定は、/etc/ppp/ppp.linkup ファイルに記述しておけば、接続後自動的 に設定できます。 --- [管理番号 344] (最終更新 2001/02/27 00:36:43) Q. ppp(8) を利用して PPP 接続を行ったところ、 接続は出来て ping も通る のですが、 telnet hostname とすると 'unknown host' というエラーが返っ てきて、接続出来ないのですが? A. ホスト名から IP アドレスが取得できないようです。/etc/ppp/ppp.conf の 該当セクションに、 enable dns の一行を加えてください。これにより、ISP の DNS サーバを自動的に参照す るように、/etc/resolv.conf が設定されます。ただし、最近では少ないと思 いますが、ISP の PPP サーバがこれらの情報を返してくれない場合、こちら の設定で対処するしかありません。これについては後述します。 もし、ローカルで DNS サーバが動作していて、PPP に接続していないときは ローカルの DNS サーバを参照する必要があれば、/etc/ppp/ppp.linkdown の 該当セクションに、 resolv restore を追加します。もし設定ファイル自体がなければ作成してください。 /usr/share/examples/ppp/ 以下にインストールされたサンプルが参考になる でしょう。 上記の方法が使えない場合、または FreeBSD 2.2.7-RELEASE 以前では、少々 原始的な方法を取らざるを得ません。/etc/resolv.conf に、 nameserver 192.168.1.2 192.168.2.3 などのように DNS サーバの IP アドレスを並べます。最大 3 つまで書けます が、もし一番目のサーバが問い合わせに答えなければ、順にあとの DNS サー バへの問い合わせを行います。接続先が ISP なら、契約時に DNS サーバの IP アドレスを教えてもらったはずなので、その IP アドレスを書けばよいで す。それ以外の環境ではそのサイトの管理者に問い合わせてください。詳しい 書式は man ページの resolv.conf(5) を参照してください。 FreeBSD でホスト名の解決を行うには、/etc/hosts データベース、DNS といっ た順でホスト名から IP アドレスを検索します (2.2.7-RELEASE 以前は逆でした。 詳しくは /etc/host.conf を参照)。このうち、/etc/hosts には IP アドレスと ホスト名が一覧されていますが、当然のことながら世界中のホストについて列 挙することは不可能です。このため、/etc/hosts でホスト名が見付からない 場合、DNS への問い合わせを行うのですが、この際どこに問い合わせれば良い かを指定するのが /etc/resolv.conf です。 --- [管理番号 345] (最終更新 2001/03/07 02:08:46) Q. 確かに DES をインストールしましたが、/usr/bin/passwd でパスワードを 変更してもパスワードファイルは MD5 のままなのは何故でしょう? A. FreeBS 4.1.1-RELEASE 以降では、DES は配布ファイルの crypto に含まれる ようになりましたが、ただ crypto をインストールしただけでは、passwd(1) コマンドを使っても DES に変更されません。/etc/master.passwd に記録 されるパスワードを DES に変更したい場合は、/etc/login.conf の `default' クラスに、 :passwd_format=des:\ という行を挿入して cap_mkdb /etc/login.conf します。最後の `\' 記号は 継続行を意味します。このあとで passwd コマンドを使用すれば、パスワード は MD5 から DES に変更されます。以前のようにパスワードの先頭が `$1$' になっているかどうかに関わらず無条件に変更してしまいますので、もし MD5 でなければ困るユーザがいる場合は以下のようにしてください。 逆に特定のユーザだけ MD5 または DES を使うようにするには、passwd(5) の 5 番目のフィールドに任意のログインクラスを指定し、login.conf(5) には xuser:\ :passwd_format=des:\ :tc=default: staff:\ :passwd_format=md5:\ :tc=default: などのようにします。 それより古いバージョンの FreeBSD では、passwd コマンドはそれまで記録さ れていた形式を常に保存します。このためパスワードを DES に変更するには、 vipw(8) を使ってパスワードフィールドを空にしてから、改めて passwd コマ ンドを使います。 --- [管理番号 347] (最終更新 2003/11/17 02:28:48) Q. FreeBSD(98)で フロッピーを認識しません。/floppy と言うディレクトリを 作り、DOS フロッピーをマウントしようとすると、うまくいきません。 # mount -t msdos /dev/fd0c /floppy fd0c: hard error reading fsbn 0 of 0-1 (ST0 40 ST1 1 ST2 0 cyl 0 hd 0 sec 1) Boot ディスク (1.44MB) をマウントしてみてもおなじようなエラーが出ます。 # mount /dev/fd0c /floppy fd0c: hard error reading fsbn 16 of 16-31 (ST0 44 ST1 2 ST2 0 cyl 0 hd 1 sec 2) Boot ディスク (1.2MB) をマウントしてみてもおなじようなエラーが出ます。 # mount /dev/fd0c /floppy fd0c: hard error writing fsbn 16 of 16-18 (ST0 40 ST1 2 ST2 0 cyl 0 hd 1 sec 2) A. フロッピーデバイス名の指定を、使用するメディア容量のものにしましょう 2HC(1.2M) : /dev/fd0.1200 2HD(1.25M) : /dev/fd0.1232 2HD(1.44M) : /dev/fd0.1440 2DD(640K) : /dev/fd0.640 2DD(720K) : /dev/fd0.720 マウントする時は、フロッピーの形式と mount(8) コマンドを一致させます。 UFS 形式のフロッピーを mount -t msdos でマウントしようとしたり、 msdos 形式のフロッピーを mount でマウントしようとするとエラーが出ます。 UFS 形式のフロッピーは、メディアが書き込み禁止になっている場合エラーが 出ます。メディアのプロテクトを書き込み可能状態にしてください。 フロッピーを自動認識する機能はありません。 --- [管理番号 348] (最終更新 1999/02/17 23:58:45) Q. FreeBSD-users-jpのメールに返事を出したのですが、いつまで たっても自分のところに届きません。どうしたんでしょうか? A. メーリングリストへのメールが自分の所に届くまでの時間は 参加者の数が増える程長くなっていきます。待ち切れずに 同じ メールを何度も出してしまうのはかっこ悪いですね。 しばらく 待ってみるのはよいことです。原因として考えられるのは 1. MLのアドレスを間違えたりReply-Toが付いている場合 2. MLサーバがメールをまだ配送していない場合 3. メーラー、SMTPサーバー、ルーター等に問題があり本当に 紛失したり、 SMTPサーバ上にまだメールがあるなど、ML サーバにメールが届いてない場合 があります。 A1. ほんとうに MLのアドレスにメールを出しましたか? 元の メールには Reply-To: が付いていませんでしたか? 最初から Reply-To: が付いたメールがメーリングリストに出た場合に どうなるかはメーリングリストを管理するプログラムの設定に 依存するのですが、FreeBSD-users-jp では元の Reply-To: が そのままついて皆さんに配られます。 このようなメールに返事を書くと、Reply-To: 指定を解釈した メーラーが返事を Reply-To: の宛先に自動的に設定し、その 結果差出人のみに返事が行ってしまう場合があります。 A2. 送ったメールがサーバまで届かずに消失するということも たまにですが発生します。FreeBSD-users-jp MLの場合は自分で 調べることが出来ます。サーバまでちゃんと届いた場合は ここに保存されます。ここを見ればサーバまで届いたかわかりますね。 A3. SMTPサーバが送信エラーを帰さない場合は、設定ミスや送信 待ちの場合があります。FreeBSD の sendmail を用いてメールを 送信している場合には /usr/bin/mailq で送信キューの確認、 /var/log/maillog 等の sendmail のログを確認、自分宛てに テストメールを出すなどしてメーラーやSMTPサーバの動作を確認 しましょう。 --- [管理番号 349] (最終更新 1999/02/17 23:58:45) Q. 「Reply-To:を付けるな」と怒られたのですが、なにがいけないのでしょう か? A. メーリングリストに出すメールに Reply-To:を付けないでね というお願い です。Reply-To:が付いたメールに返事を書くと Reply-To:に書いてあるアド レスに返事が行ってしまいます。返事を書く人はいっしょうけんめい返事を書 いてそれをメーリングリストに送ったつもりなのに 実際には差出人にしか届 いていなかった ということになって非常に悲しい思いをします。 FreeBSD-users-jp MLでは、Reply-To:に MLのアドレスを設定するようにして いますが、最初からReply-To:が付いたメールは、元のReply-To:を尊重するよ うにしています。アンケートなどで返事を個人宛にしたい場合を除けば、 Reply-To:を付けない方がいいですね。 --- [管理番号 350] (最終更新 1999/04/07 06:50:50) Q. フロッピーディスクを使いたい。 A. ufs (UNIX ファイルシステム) のフロッピーディスクは format して、 label 書いて、newfs でできます。たとえば、 # fdformat /dev/rfd0.1440 # disklabel -w -r /dev/rfd0.1440 fd1440 # newfs -c 80 -t 2 -u 18 -m 0 -o space -i 8192 /dev/rfd0.1440 を実行するとフロッピーディスクに ufs ができます。 # mount /dev/fd0.1440 /mnt として使います。 MS-DOS の FAT ファイルシステムのフロッピーディスクは、 # mount_msdos /dev/fd0.1440 /mnt などとして mount すれば使用できます。 FreeBSD でフロッピーディスクに FAT ファイルシステムを作るには、 # fdformat /dev/rfd0.1440 # newfs_msdos -f 1440 fd0 とします。 注意: ・disklabel(8) や newfs(8) は、ちゃんとマニュアルを読んで何をしている か理解してから実行してください。まちがうとフロッピーではなくハードディ スクを壊すことがあります。 ・FreeBSD2.2 以降にあった mkdosfs というコマンドは、FreeBSD3.0R(2.2.8も 含む) で無くなり、代わりに newfs_msdos というコマンドが用意されました。 FreeBSD2.2〜2.2.7 をお使いの方は newfs_msdos の部分を # mkdosfs /dev/rfd0.1440 と実行してください。 --- [管理番号 351] (最終更新 1999/02/17 23:58:45) Q. 以前は XF86Config を自分のホームディレクトリに置いたら、ちゃんと X が起動したのですが、XFree86 をバージョンアップしたら、おかしくなりまし た。 A. 最近の XFree86 では、root 以外の一般ユーザのホームディレクトリの XF86Config は無効です。 man XF86Config して頭の10行くらいに書いてあります。 --- [管理番号 356] (最終更新 2001/05/07 03:21:09) Q. kterm で日本語が文字化けします。 A. 順を追って設定を確認しましょう。以下の項目を見てください。 [管理番号 357] Q. kterm で日本語ファイルを cat すると文字化けします。 正しく日本語を表示させるにはどうしたらいいのですか? [管理番号 358] Q. 日本語の文章を kterm にカットアンドペーストすると 文字化けします。 [管理番号 359] Q. kterm 上のコマンドプロンプトに日本語を入力すると 化けてしまいます。 [管理番号 360] Q. kinput2 または skkinput で kterm に日本語入力するには? [管理番号 361] Q. kterm 等を使った場合の日本語表示の仕組みは? [管理番号 362] Q. 日本語の含まれるファイルを、kterm 上で jless を 使って表示させると文字化けします。 [管理番号 363] Q. kinput2 または skkinput で tgif に日本語入力するには? [管理番号 1166] Q. kterm上で csh(1),environ(7),kterm(1) の日本語マニュ アルを読みたいのですが、うまく表示できず、文字化けし てしまいます。 [管理番号 1366] Q. kterm など X 上の日本語文字表示可能なはずのアプリケー ションで日本語文字が見えません。 --- [管理番号 357] (最終更新 2001/05/07 03:21:09) Q. kterm で日本語ファイルを cat すると文字化けします。正しく日本語を表示 させるにはどうしたらいいのですか? A. kterm(1) が pty(4) とやりとりするデフォルトの漢字コードは JIS です。 例えばファイルの内容が Shift-JIS で書かれていれば、当然ながら cat(1) の結果は文字化けとなります。また、kterm 上で利用するアプリケーション の入出力についても同様のことが言えます。 kterm に漢字コードを指示するには以下の3通りの方法があります。 1. kterm の VT Options メニュー Ctrl + マウスの中ボタン (2番目のボタン) でメニューを表示させて、 `Japanese EUC Mode' をチェックすれば EUC コード、 `Shift-JIS Mode' をチェックすれば Shift-JIS となります。 どちらもチェックされてなければ、デフォルトの JIS コードです。 2. コマンドラインオプション kterm 実行時のオプション -km で指定します。 -km euc 日本語 EUC コード -km sjis Shift-JIS コード (マイクロソフト漢字コード) -km jis JIS コード (ISO-2022-JP ベース) 3. X リソースで指定 以下のどれか1行を ~/.Xresources または ~/.Xdefaults に追加して、 KTerm*kanjiMode: euc KTerm*kanjiMode: sjis KTerm*kanjiMode: jis X を再起動するか % xrdb -merge ~/.Xresources などとします。もし、-km オプションが指定されていれば、そちらが 優先されます。 具体的に漢字コードを EUC とする場合の手順を示します。 o 上記のいずれかの方法で kterm を起動して、漢字コードを EUC にします。 確認は kterm の Ctrl + マウスの中ボタンでできます。 o stty(1) を使って pty が 8 bit を通すようにします。 % stty cs8 -istrip -parenb o EUC コードのファイルが cat で正しく表示されるか確認します。 % kterm -km euc -fn a14 -fk k14 としても上手くいかないようなら、[管理番号 1366] を参考にしてフォント 指定を確認する必要があります --- [管理番号 358] (最終更新 2001/05/07 03:21:09) Q. 日本語の文章を kterm にカットアンドペーストすると文字化けします。 A. まず、[管理番号 357] を参照してください。 o kterm(1) の漢字コードを EUC か SJIS (Shift-JIS) にします。 o stty(1) を使って pty(4) が 8 bit を通すようにします。 % stty cs8 -istrip -parenb これで % cat としておいて、ここに日本語の文章をカットアンドペーストすれば良いはず です。すなわち、これ以降は kterm 上で実行するアプリケーション (shell, mule -nw, telnet 等) の設定の問題となります。shell の設定に関しては [管理番号 359] を見てください。 なお、(FreeBSDの) kterm 上から SunOS に telnet(1) でリモートログインし、 そこに日本語をカットアンドペーストすると MSB(8ビット目) が落ちて 日本語が化けてしまうことがあるようです。この場合は telnet の代わりに rlogin(1) や telnetx、ssh(1) を使ってください。4.0-RELEASE 以降には OpenSSH がシステムに含まれています。また、ports/packages には telnetx や SSH のいくつかの実装が用意されています。 --- [管理番号 359] (最終更新 2001/05/07 03:21:09) Q. kterm 上のコマンドプロンプトに日本語を入力すると化けてしまいます。 A. まず、[管理番号 358] および [管理番号 360] を参照してください。 kterm(1) の中では、通常ユーザからのコマンド入力を処理するプログラム shell (シェル) が走っています。高機能 shell (tcsh, zsh, bash) は、 その編集機能のための入力と日本語文字入力とを区別できないので、これら に日本語を入力したいときはしかるべき設定をしなければなりません。また、 現状では両者を完全に両立するのは難しいようです。 1. tcsh (ports/shells/tcsh), ja-tcsh (ports/japanese/tcsh), 4.1-RELEASE 以降では csh(1) (/bin/csh) は tcsh のハードリンク。 コンパイル時に漢字サポートを有効にしたものであれば、 % set dspmbyte=euc とすれば日本語が入力できると思います。漢字コードについては `euc' と `sjis' をサポートしています。漢字サポートが有効かどうかは、 シェル変数 version に `kan' 及び `dspm' を含むかどうかで判断でき ますので、もしこれが無効になっている場合、tcsh をコンパイル仕直す 必要があります。 % echo $version tcsh 6.09.01 (Astron) 2000-01-14 (i386-intel-FreeBSD) options 8b,nls,dl,al,kan,sm,rh,color,dspm ^^^ ^^^^ また、シェル変数 nokanji が設定されていないことも条件です。 これでも日本語を通さないようなら stty(1) で 8bit を通すように 設定してみてください。 % stty cs8 -istrip -parenb 2. zsh (ports/shells/zsh), (ports/shells/zsh-devel) デフォルトで EUC なら入力できます。 zsh-3.1.6 The Z shell (development version) というバージョンで、一応編集もできています (ja-rxvt-2.7.2 上で確認)。 JIS X0208 な文字を一文字と認識してくれないので、そこに気を使う必要は ありますが…。 3. bash 1.x (ports/shells/bash1), bash 2.x (ports/shells/bash2) ~/.inputrc に以下の記述を加えておけば EUC を扱えます。 set convert-meta off set meta-flag on set output-meta on また非公式ですが、日本語パッチを適用することで、上記の設定なしに 日本語の行編集も行なえるようです。 --- [管理番号 360] (最終更新 2001/05/07 03:21:09) Q. kinput2 または skkinput で kterm に日本語入力するには? A. kinput2(1) 及び skkinput(1) は、以下の多国語変換プロトコルをサポートし ています。kinput2 の man ページには他にもいくつか書いてありますが、実際 問題として現状では以下の三種類、特に kinput2 プロトコルと XIM プロトコ ルの、どちらかが使えれば問題になる事は少ないでしょう。 a) Kinput/Kinput2 Protocol 早い話が kinput2 オリジナルのプロトコルで、kinput2 の前身である kinput がサポートしていた Kinput Protocol と、現在の kinput2 で採用 された Kinput2 Protocol があります。kinput2 及び skkinput 自体は 両方のプロトコルをサポートしています。 b) X Input Method Protocol X11R6 標準のプロトコルで、省略して XIM とも呼ばれます。また、この プロトコルでは複数種の変換サーバを同時に実行することができ、多国語を 取り扱うことができます。 c) Ximp Protocol X11R5 以前のプロトコルで、古いアプリケーションと X サーバの組み合わ せで使う場合以外では、利用する機会はないでしょう。 kinput2 及び skkinput 共に、コマンド起動時のオプション指定で、上記の プロトコル毎に有効・無効を選択できます。もちろん前提条件として、これら のプロトコルをコンパイル時に組み込む必要があります。オプション名の前に `-' (ハイフン) を付けると有効に、`+' (プラス) を付けると無効化されます。 特に指定しない限り三種類とも有効です。 -/+kinput Kinput/Kinput2 Protocol -/+xim XIM Protocol -/+ximp Ximp Protocol 具体的には、Ximp を無効にした kinput2 の起動では、 % kinput2 +ximp & また、skkinput で XIM のみ有効にしたければ、 % skkinput +kinput -xim +ximp & などとすることができます。 次にこれらの変換サーバを利用するクライアント側の設定ですが、主に X リソー スと環境変数を利用します。詳しくは個々のアプリケーションのマニュアルを 参照して頂くとして、ここでは kterm(1) を具体例として説明します。 現状の kterm version 6.2.0 では kinput2 プロトコルと XIM プロトコルを サポートしています。コンパイル時に有効にされているかどうかは、kterm の -version オプションで確認できます。 % kterm -version kterm: version 6.2.0 options: [KTERM_MBCS] [KTERM_MBCC] [KTERM_KANJIMODE] [KTERM_XIM] [KTERM_KINPUT2] [KTERM_COLOR] [KTERM_NOTEK] [STATUSLINE] [KEEPALIVE] [WALLPAPER] 1. Kinput2 プロトコル kterm はデフォルトでは kinput2 プロトコルを利用します。kinput2 または skkinput のどちらかを事前に起動しておき、~/.Xresourses や ~/.Xdefaults から kterm のリソース translations を探し、そこに以下の1行を挿入します。 Shiftspace: begin-conversion(_JAPANESE_CONVERSION) i) 既にリソース translations が存在する場合 KTerm*VT100*translations: #override \ Shiftspace: begin-conversion(_JAPANESE_CONVERSION)\n\ : scroll-back(2)\n\ : scroll-forw(2) ii) リソース translations が存在しない場合 KTerm*VT100*translations: #override \ Shiftspace: begin-conversion(_JAPANESE_CONVERSION) リソースファイルを更新したら、 % xrdb -load ~/.Xresources などとして、kterm を新たに起動します。この状態で Shift + Space キーを 押せば変換モードに入るはずです。またトグル操作で変換モードから抜けます。 2. XIM プロトコル kterm で XIM プロトコルを用いた変換を行なうには、kinput2 や skkinput を -xim オプションを付けて起動するようにし、 % env XMODIFIERS="@im=kinput2" kterm -xim % env XMODIFIERS="@im=skkinput" kterm -xim とすることで利用可能です。環境変数 XMODIFIERS を常に設定しておくには、 csh(1) 系なら ~/.cshrc に setenv XMODIFIERS "@im=kinput2" sh(1) 系なら ~/.profile に export XMODIFIERS="@im=kinput2" を書き加えれば良いでしょう。 もし、変換時の入力スタイルを指定する必要があれば、リソース preeditType に OverTheSpot (いわゆるその場変換) または Root (別ウィンドウで変換操作) のどちらかを指定します。例えば、kterm で kinput2 の Root スタイルを用い るには、以下の2行を X リソースに追加すれば良いでしょう。 KTerm*inputMethod: kinput2 KTerm*preeditType: Root 変換モードの切り換えキーは、Shift + Space のトグル操作がデフォルトです。 また、kterm の -xim オプションはリソースに次のようにも記述できます。 KTerm*openIm: true --- [管理番号 361] (最終更新 1999/02/17 23:58:45) Q. kterm 等を使った場合の日本語表示の仕組みは? A. +-----+ (1) +-----+ (2) +--------+ (3) +-------+ | X | --> |kterm| --> |pty | --> |shell等| | | <-- | | <-- |ドライバ| <-- | | +-----+ (6) +-----+ (5) +--------+ (4) +-------+ o (1),(6) では COMPOUND_TEXT コーディングで渡します。 o (2) では kterm で指定したコーディングで pty に渡します。 o (5) では kterm で指定したコーディングで pty から受け取ることを *期待* o shell の入力表示はローカルエコーによって行われます。 (入力文字は (2)->(5) と渡され、(4) からは渡されません。) o pty は (2)->(3), (4)->(5), (2)->(5) で改行コードの変換等を行います。 o stty コマンド等で前記 pty の変換動作を制御可能です。 o editor, shell 等はそれぞれ独自に stty の設定を変更することがあるので、 各々の manual を参照してください。 --- [管理番号 362] (最終更新 2001/11/03 13:54:21) Q. 日本語の含まれるファイルを、kterm 上で jless を使って表示させると 文字化けします。 A. jless は出力する漢字コード (および入力漢字コード) を選べます。 たとえば、環境変数 JLESSCHARSET に次のように設定します。 % setenv JLESSCHARSET japanese (csh 系) $ export JLESSCHARSET=japanese (sh 系) 以下に代表的な三種類を例示しておきますので、kterm(1) 側の設定に合わせ てください。いずれも入力については、JIS, EUC, Shift-JIS の自動認識を 試みます。 1. japanese-jis または japanese 出力を JIS コードに変換して表示します。 2. japanese-ujis または japanese-euc 出力を EUC コードに変換して表示します。 3. japanese-sjis 出力を Shift-JIS コードに変換して表示します。 なお、同様の環境変数として LESSCHARSET がありますが、4.1-RELEASE 以降 では less(1) が標準システムに含まれたため、こちらに上記の設定をしない ようにしてください。間違えて LESSCHARSET に設定した場合、less(1) およ び more(1) が ``invalid charset name'' というエラーメッセージを表示し て動作しません。 --- [管理番号 363] (最終更新 2001/05/07 03:21:09) Q. kinput2 または skkinput で tgif に日本語入力するには? A. [管理番号 360] を参照して、kinput2 / skkinput の起動を確認して下さい。 日本語 tgif (ports/japanese/tgif) は、日本語入力に kinput プロトコルと XIM プロトコルをサポートしています。どちらのプロトコルを用いるかの指定 は、X リソース (~/.Xresources や ~/.Xdefaults など) に記述するか、tgif のコマンドラインオプションで行ないます。下記の漢字変換モードの起動/終了 キーはデフォルトのものです。 | kinput プロトコル | XIM プロトコル --------------+---------------------------+------------------------ X リソース | Tgif*IMProtocol: kinput | Tgif*IMProtocol: xim オプション | -kinput | -xim 変換起動キー | Ctrl + Space | Shift + Space 変換終了キー | Shift + Space | Shift + Space もし日本語が化けるときは Menu で Text => Font => で Ryumin または Gothic を選びましょう。またリソースでのフォント指定も可能です。詳しく は同時にインストールされるドキュメントを参照してください。 --- [管理番号 364] (最終更新 1999/02/17 23:58:45) Q. パラレルポートを使用して、『ネットワーク経由』でのインストールをし たいのですが、具体的にはどのようにするのですか? A. 以下の手順で行ないます。 ハンドブックの『2.2.5. ネットワーク経由のインストールの前に』にも目を 通してください。 以下の説明では、インストール対象のコンピュータを "BBB"、すでに FreeBSD が インストールされていて CD-ROM ドライブを持ったコンピュータを "AAA" としています。 IP 接続を行なうために 適当な IP アドレスを 両者につける必要があります。 以下のアドレスを使用することにします。 192.168.223.1 192.168.223.2 +--------------+ +-------------+ | Host "AAA" |======================| Host "BBB" | +--------------+ +-------------+ 1. ケーブルを接続する パラレルクロス”、“インターリンク接続用”、“ラップリンク接続用” などの名称で 市販されているケーブルを使用します。 2. "AAA" 側の準備 CD-ROM を マウントしておきます。 CD-ROM が エクスポートされていることを確認します。 /etc/sysconfig (2.2.1), /etc/rc.conf (2.2.2〜) 内で nfs_server_enable が "YES" に なっていること。 /etc/exports に /cdrom -alldirs が必要です。 パラレルIPインターフェースを活性化します。 # ifconfig lp0 inet 192.168.223.1 192.168.223.2 3. "BBB" 側の設定 インストールメディアの選択で NFS を 選択します。 『インストールファイルへのフルパス名』のダイアログには、 192.168.223.1:/cdrom と入力します。続いてネットワークインターフェースの選択ダイアログが 表示されるので “lp0”を選択します。 ネットワークの設定ダイアログでは以下を入力して下さい。 ホスト名: あなたのコンピュータの名前 ドメイン名: あなたのドメイン名 (以上は適当に決めてよい) IP アドレス: 192.168.223.2 ネットマスク: 255.255.255.0 ifconfig へのその他のオプション: 192.168.223.1 --- [管理番号 365] (最終更新 2003/05/17 21:39:22) Q. コンソールでキーボードの Ctrl キーと Caps Lock キーを交換して使いたい。 その他、任意のキーの意味を交換したい。 A. 各キーの意味を記述したキーボードマップと呼ばれるファイルをドライバに 読み込ませることにより、キーの意味を変更することができます。 /usr/share/syscons/keymaps/ に、各種キーボードマップがあります。普通は us.iso.kbd … 101キーボード用 jp.106.kbd … 106キーボード用 などを使用しますが、 us.pc-ctrl.kbd … us.iso.kbd の Caps Look を Ctrl に変更したもの (Caps Look は使えなくなる) jp.106x.kbd … jp.106.kbd の Ctrl と Caps Look を逆にしたもの というものも用意されています。 コンソールで、kbdcontrol(1) を用いて、 # kbdcontrol -l /usr/share/syscons/keymaps/jp.106x.kbd を実行することでキーボードマップが読み込まれます。キーボードマップが /usr/share/syscons/keymaps/ の下にある場合は、パスを省略して # kbdcontrol -l jp.106x としてもかまいません。 狙い通りのキーマップに変更されたことを確認したら /etc/rc.conf に keymap="jp.106x" などと記述すると、ブート時に ここに書いたキーマップが自動的に設定 されます。 キーボードマップのファイルはテキストファイルですので、編集するのは 簡単です。例えば us.iso.kbd の Caps Lock と Ctrl を交換した us.isox.kbd を新たに作成するには以下のようにします。 1. us.iso.kbd を、たとえば us.isox.kbd にコピー。 # cd /usr/share/syscons/keymaps/ # cp us.iso.kbd us.isox.kbd 2. us.isox.kbd の 029 と 058 を編集。 029 clock clock clock clock clock clock clock clock O 058 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O 3. kbdcontrol -l us.isox.kbd で確認する。 4. /etc/rc.conf を以下のように記述する。 keymap="us.isox" 5. リブート。 同様の操作で各キーの意味を変更できますが、慎重に行わないと「元に 戻すためのコマンドをタイプできない」という困ったことになります のでご注意下さい。 X Window System 上でのキーの入れ替えについては [管理番号 110] を見て ください。 --- [管理番号 366] (最終更新 2003/05/17 21:39:23) Q. Web ブラウザからユーザの追加や削除、更新を行なえるようなツールは あるでしょうか。 A. ports/package に sysutils/webmin というアプリケーションがあります。 --- [管理番号 368] (最終更新 1999/02/17 23:58:45) Q. IOデータ機器製のSCSIボードS-PCI/S-UPCIに接続された機器か らのブートは可能ですか? A. これらのボードにはBIOSが載っているのでブート可能です。 SCSIボードに搭載されているブートのためのオンボード BIOSは、 システム BIOS の I/O ベクタにブートデバイスを登録するときに 必要なものです。ブート ROM を持っているほとんどのボードは、 電源を入れるかリセットしたとき, ブートデバイスを登録する メッセージが最初に表示されます。詳しくはあなたのシステムや ボードの解説書をご覧ください。 --- [管理番号 369] (最終更新 1999/02/17 23:58:45) Q. kterm 上で 起動した mule に他のウィンドウからの日本語テキスト文字の カット&ペーストを行うと文字化けしてペーストされてしまうのですが? A. Mule の keyboard-coding-system と kterm の kanjiMode が一致していない ためです。kterm で設定している漢字コードを以下のように ~/.emacs に 設定します。 (set-keyboard-coding-system *euc-japan*) ; (eucの場合) また、mule 上で M-x set-keyboard-coding-system と入力すると、 keyboard-coding-system: のプロンプトがでますが、ここでタブキーを押下すると、漢字の候補が 出てきますので、利用している漢字コードを選ぶことができます。 --- [管理番号 370] (最終更新 1999/02/17 23:58:45) Q. X を終了した後に、 kernel: cmd XF86_SVGA pid 389 tried to use non-present SYSVSHM とメッセージが出ています。どんな意味なのでしょうか? A. System V 互換の共有メモリ機能を使おうと思ったらカーネルにサポートの 部分が入っていなかったので使わないで X サーバを起動します。という意味 です。 実は このメッセージが表示された直後に X の画面に変わり、コンソールが 表示されないために X が動作している間は見ることができません。 X が終了 すると 再び コンソールが表示されるため、X 終了後にメッセージが出た様に 見えます。 放っておいても全く問題はありませんが、気になるのであれば以下の行をカー ネルコンフィグファイルに追加してカーネルを再構築し再起動してください。 /sys/i386/conf/LINT より抜粋: ---begin # These three options provide support for System V Interface # Definition-style interprocess communication, in the form of shared # memory, semaphores, and message queues, respectively. # options SYSVSHM options SYSVSEM options SYSVMSG ---end kon を使う場合 ( 管理番号: 305 ) や Linux のバイナリを実行させようとす る場合 ( 管理番号: 326 ) には必要になる機能なので、カーネルを再構築し てしまえば後顧の憂いがなくなるかも知れません。 --- [管理番号 372] (最終更新 2001/04/18 02:12:12) Q. 以下のような、ISA PnP の LAN カードは使えますか? 例: アライドテレシス LA-ISA (ed) AceR ISA PnP Ethernet ALN-101T (ed) 3Com 3C509-TPO EtherLink III (ep) A. 使えますが、以下に述べる作業が必要な場合があります。 通常、カードの設定を参照、変更する DOS 用の utility software がつい ているはずですので (ベンダーが web で公開している場合もあります)、 それを用いて他の ISA カードと IRQ、I/O アドレスが衝突していないか確 認し、必要なら変更します。 4.0-RELEASE 以降は、ISA PnP をきちんと扱うようになっていますので、 特にリソースを指定する必要はありません。 具体的には、kernel configuration file の記述は 3Com 3C509 を使う場合、 device ep だけにし、 at isa? port 0x280 irq 10 iomem 0xd8000 のようなリソースの指定は省略します。 2-STABLE、3-STABLE では ISA PnP はうまく扱えませんので、上記 utility で PnP を OFF にし、確認した IRQ、I/O port 及び iomem の情 報を指定する必要があります。 尚、これらリソース情報は、kernel を再構築しなくても、kernel.conf ファ イルや、boot 時の userconfig で指定可能です。 --- [管理番号 373] (最終更新 2001/10/14 11:51:13) Q. FreeBSD Ports Collection の emulators/snes9x には、最近 (2000年12月現在) USB ジョイスティックをサポートするコードが入ったようですが、私の ジョイスティックは使えません。なぜですか? A. 次の項目を確認して下さい。 1) /etc/rc.conf で usbd_enable="YES" となっている (/etc/defaults/rc.conf では NO です)。 2) dmesg | grep uhid とした時に uhid0: vendor 0x0603 USB GamePad STD., rev 1.00/1.00, addr 2, iclass 3/0 のように、ジョイスティックに対応したデバイスが検出されている。 3) ls -l /dev/uhid0 とした時に、 crw-r--r-- 1 root wheel 122, 0 11/26 10:50 uhid0 のように、snes9x を使うユーザーの読み込みパーミッションがある。 以上です。 それから、Linux 用の SNES9X を FreeBSD で使う場合、 を試してみてはどうですか? xquake はこれでジョイスティックが 使えているようです。 --- [管理番号 375] (最終更新 1999/02/17 23:58:45) Q. 印刷をしたら、ハンドブックでいう「階段効果」が現れてしまいました。 プリンタの設定は変更できず、エスケープシーケンスもマニュアルがない のでわかりません。日本語版ハンドブックの訳注にある「LF を CR+LF に 置き換える cat コマンド を作る方法」を教えて下さい。 A. 以下のような 2 行だけのシェルスクリプトを作成します。 #!/bin/sh sed 's/$/\^M/' $* ここで ^M は実際の CR を表す制御文字ですから、vi では Ctrl キーを 押しながら v を押した後に Ctrl キーを押しながら m を押して下さい。 Emacs(Mule) では Ctrl キーを押しながら q を押した後に Ctrl キーを 押しながら m を押して下さい。 例えば これを /usr/local/libexec/lf2crlf という名前で保存し、 # chmod +x /usr/local/libexec/lf2crlf として実行できるようにします。 こうして LF を CR+LF に変換する cat コマンドができましたから、 /etc/printcap に if=/usr/local/libexec/lf2crlf という項目を加えてやれ ば階段効果を解消することができます。ghostscript を使ってPostScript プ リンタとして使いたい時には、ハンドブック「非 PostScript プリンタで PostScript をシミュレートする」で紹介されているフィルタの cat を /usr/local/libexec/lf2crlf に置き換えてやれば良いです。 --- [管理番号 376] (最終更新 1999/02/17 23:58:45) Q. Canon LaserShotにファイルを出力する時に テキストファイルと PSファイ ルを自動判別してくれるような printcapに書くフィルタスクリプトはありま せんか? A. LaserShot A404GII(LIPS II & III) では以下のようにすると良いようです。 ただし ^[ は ESC コードです。 #!/bin/sh # Initialize Printer echo -n '^[%@' # End of emulation mode, Text mode start printf '^[P31;300;1J^[\' # JOB Start as LIPS3, JIS printf '^[<' # LIPS printer soft reset printf '^[[?5h' # LF -> LF+CR mode printf '^[[?1h' read first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = '%!' ]; then /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=lips3 -sOutputFile=- - else echo -n '^[%0' # ShiftJIS mode ( echo "$first_line" && cat ) | /usr/local/bin/nkf -s printf '\f' fi printf '^[P0J^[\' # Job End echo -n '^[%@' # Start Text Mode exit 0 --- [管理番号 377] (最終更新 2001/10/19 21:29:32) Q. Canon LaserShot を使っているのですが、プリンタ言語 LIPS を使ったプ リントアウト用ソフトはありますか? A. FreeBSD の ports/packages に含まれているのは lipsf だけですが、他に もいくつかのソフトウェアがあり、FreeBSD で利用できます。ただし、 プリンタ名 lp で、べたテキストや ghostscript を用いて PostScript ファイルを印刷できるようにしている場合は lips など新しいプリンタ名 を用意して、LIPS コードを生のままプリンタに流せるようにしなければ なりません。どなたか自動的に LIPS コードのファイルかどうか確かめる 方法をご存知ないですか? lipsf ja-lipsf という port/package が用意されています。用紙サイズや紙の 向き、段組を指定することができます。対話的にファイルやオプションを 指定できる pols というコマンドも付属しています。 txt2lips より入手可能。 機能的には lipsf と似ている。段組時に段の間に点線を引けるのが 個人的には好き。 xwd2shot XWD 形式のファイルを LIPS に変換する。ソースに簡単な修正が必要 (プロトタイプ宣言部分をコメントアウト)。 xwd | xwd2shot -R | lp -Plips のように使うのが一般的? dvipr より入手可能。 TeX の DVI ファイルを印刷する。コンパイルはできたが、設定はまだして ない。 lips3dvi TeX の DVI ファイルを印刷する。こちらもコンパイルはできたが、まだ試 していない。同梱の dvipr は lips3dvi のフロントエンドにすぎず、上記 の dvipr とは別物です。 その他使えるかもしれないけど試してないもの pls テキスト出力 clist 横置きの A 4用紙に 2 段組に 15cpi で濃縮された形でリスト出力 hpfil ローランドのプロッタ言語 RD−GL を変換してL ASER SHOT に出力 bookbind テキスト出力 DVI ファイルの出力は、dviware に依存するスタイルファイルを使ってい たり、ゴシックフォントを内蔵してないので VFlib を使いたいといった場 合には、dvi2ps-j などのソフトで PostScript に変換して ghostscript で印刷した方がいいのでは……、と思います。もちろん内蔵フォントを使 った方が格段に速いと思われますし、dvipr も lips3dvi も使ったことな い私が云うのも、アレなんですが。 --- [管理番号 380] (最終更新 1999/02/17 23:58:45) Q. チャンドラのサウンドデバイス sbxvi0 が認識されません。 A. チャンドラは CS4236 というチップを使っています。この CS4236 は Windows Sound System (WSS) & Sound Blaster Pro (SB-Pro)互換なので当然 Sound Blaster 16 (SB16)のデバイスである sbxvi0 には反応しません。 Luigi's new audio driver を使用すると half duplex で動作するのが確認 されています。full duplex はまだ動作していません。 Luigi's new audio driver: --- [管理番号 382] (最終更新 2003/01/22 21:13:32) Q. NEC PC98で使用できる3ボタンマウスはありますか? A. NEC PC98で3ボタンマウスを使用するには以下の二通りの方法があります。 A1. バスマウス編(純正のマウスポートにつなぐ) PC98 と AT互換機のバスマウスの構造は同じなので、PC98 において AT互換機用 のバスマウスが使用できるはずです。その上で、使用報告があったものが Logitech MouseMan Bus Version M/N:M-PG15-9MD M/N: M-PD13-9MD M/N:PK32 等です。ただし、上記の製品はおそらく入手困難な上、高価でしょう。 例外1 本来の98の仕様上では、真ん中ボタンのピンはNC(Non Connection)になっており、 実際に本体側から読めるかどうかは機種によって、使えない場合もあります。 (何が対応しているかは、翔泳社刊の「FreeBSD(98) 徹底入門」に触れられています) 例外2 Logitech の 'Logitech MouseMan Bus Mouse' という製品には、MouseMan Serial に 専用の ISA のシリアルのカードが付いている製品もあり、これはマウス本体は単なる シリアルマウスだということです。 A2. シリアルマウス編(AT互換機用のシリアルマウスをPC98のシリアルポートへつな ぐ。) Logitech MouseMan、Logitech TrackMan Marble は問題なく使えるでしょう。16450 系のシリアルポート(19.2kbps以上出るもの)ならば、 Microsoft IntelliMouse 及び DEXXA M/N:M-M-31 (serial 専用) Logitech Pilot Mouse (serial 専用) が使用できるようです。ただし、IntelliMouse はXFree86 3.3 以降の対応となりま す。また、古い機種の場合、D-SUB 9pin <--> D-SUB 25pinの変換が必要でしょう。 (オスメスに注意) これ以外にも、USB が使える機種であれば、USB の 3 ボタンマウスが使える可能性 があります。i386 版で使用できているものだと動く可能性は高そうですが、動作報 告がまだありません。 --- [管理番号 383] (最終更新 1999/02/17 23:58:45) Q. mule で「研究社 新英和(第6版)・和英(第4版)中辞典」を diclookup-mule-2.0.3 を利用してオンライン辞書として使用しているのです が、提供されている od-eiwa.el の外字定義が違っており、発音記号等の外 字が読めません。 A. 以下のURLにある od-chujiten.elを入手してください。 ここには、電子ブック版「研究社リーダーズ」と「研究社リーダーズプラス」 用の外字テーブルも用意してあります。 以下のものが、入手可能です。 diclookup-mule.el : 以下の辞書を追加したものです. od-chujiten.el : 研究社新英和・和英中辞典用のファイルです. od-readers.el : リーダーズ英和(電子ブック)用のファイルです. od-plus.el : リーダーズプラス英和(12cm CD-ROM)用 od-oxford.el : オックスフォード英英辞典・シーソラス辞典用 --- [管理番号 385] (最終更新 2004/04/09 05:05:59) Q. X の画面を部分的に PS (できれば EPSF) に落したいんですが、何か良いツー ルはないでしょうか? A. ports に xgrabsc (x11/xgrab) というのがあります。たとえば % xgrabsc -cps -eps > /tmp/test.eps とやってマウスで切取りたいところをドラッグすればカラー EPSF に落せます。 切り取った部分を編集したりするには xv (graphics/xv) や ImageMagick (graphics/ImageMagick) なんかが御勧めです。 xv は controls パネルの右下の Grab をクリックして grab メニューで Grab をクリックすれば画面取得モードに入ります。このときウィンドウ単位で get したいならその画面にカーソルを持って行ってマウスの左のボタンをクリック、 部分的に切取りたい場合にはマウスの真中のボタンで切取りたい部分をドラッ グすれば get できます。get した画面はメインウィンドウに表示されますから OK なら controls パネル の save をクリックし御所望のスタイルを選択して 簡単にセーブできます。 ImageMagick は 部分的に切取る場合には display コマンド、ウィンドウ単位 で扱うなら import コマンドでできるそうです。また、直接 EPSF に書き出せ る上、8bpp を超える環境でも問題なく使えるそうです。 --- [管理番号 386] (最終更新 2000/06/25 02:30:33) Q. 一つの HDD に複数の FreeBSD のスライスを作って、最初の FreeBSD スラ イス以外のところ (2 番目以降のスライス) にルートファイルシステムを置き ました。しかし、boot のさせ方が分らないのですが? A. FreeBSD 3.1-RELEASE 以降では問題なくブートできるはずです。それより前の FreeBSD のブートコードでは、最初に見つかった FreeBSD スライスにルートファ イルシステムがないといけません。無理せず HDD の構成を見直すか、または バージョンアップが得策でしょう。もしどうしても頑張ってみたいという人は、 [管理番号 1549] [管理番号 797] を参考にしてください。 --- [管理番号 387] (最終更新 1999/02/24 04:00:30) Q. DHCP を使うメリット・デメリットは何ですか? A. メリットは、限られた IP アドレスを有効に活用し、かつ/または設定を一元 管理できることです。 デメリットは、IPアドレスとそれが割り当てられた機器の対応状況を知るには、 DHCPサーバの記録を調べるといった手間が余計にかかりますので、障害や セキュリティ上の問題が発生したときに、原因追求の壁となるかもしれません。 また、第3者が勝手に機器を接続しやすくもなるでしょうから、障害を誘発したり、 セキュリティ破りが行いやすくなるかもしれません。 静的割り当ての場合は、IP アドレスの節約はできませんし、クライアントのMAC アドレスを調べるという手間がかかりますので、一元管理ができる以外のメリッ トがそもそも少ないです。 さらに DHCP サーバが倒れたときの対処の問題があります。複数の DHCP サーバ がネットワーク上にあっても直接は問題にならないのですが、互いに配布する情 報がかち合わないように気を付けなくてはなりません。特に動的割り当ての場合、 お互いに他のサーバが割り当てた IP アドレスを知ることができないので問題に なります。 とはいうものの、ある程度の数の DHCP クライアントがあれば、クライアント側 の設定が簡単になりますので、詳しくない人にも任すこともできますし、ネット ワークの構成が変化した場合でも、サーバ側の設定を変更するだけでクライアン トへ設定を反映させることができるので、採用するメリットはあるはずです。 また、Windows95 という OS を載せたパソコンは世の中にたくさん存在しますが、 この OS は、DHCP クライアントにしてやると、プラグ&プレイで接続したネット ワークに設定をあわせることができるものの、手動設定の場合は、どんな些細な 変更でもリブートを要求するという変な仕様になっています。これらのマシンを 多数管理しなければならない破目になったときには、ほとんど必須とも言えるか もしれません。 --- [管理番号 388] (最終更新 2002/10/21 05:19:40) Q. FreeBSD(98) で Allied Telesis 社の LA-98-T が使えますか。 A. まず、board 上の dip-sw を LEGACY 側にしておきましょう。 割り込みや I/O ポートの設定を、LA-98-T に付属している MS-DOS のツール cfg.exe で調べた・設定したものと合わせて おきましょう。 --- [管理番号 390] (最終更新 2001/03/07 02:08:45) Q. ppp(8) を対話モードで起動して、ppp プロンプトから "dial セクション名" として接続すると、回線はつながるのですが 5 秒で切断されてしまいます。 A. /etc/ppp/ppp.conf にて、そのセクションの最後で "dial" を指定していませ んか? ppp.conf に dial が指定してあると、対話モードでの dial コマンド実行時に、 もう一度 dial コマンドを実行しようとして、2回目の dial コマンドの失敗 により、回線が切断されてしまいます。 切断までの時間が 5 秒なのは、ppp.conf の default: セクションで、 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK と書いてあるからです。 ^^^ここ (既に1回目の dial コマンドでモデムはデータモードに入っているから、AT コマンドに応答するはずがない) ppp.conf に dial 指定をした場合には、 ・コマンドラインからの ppp 起動時に引数でセクション名を指定する。 ・対話モードの ppp プロンプトで "load セクション名" と入力する。 のいずれかの方法を使いましょう。 --- [管理番号 392] (最終更新 2002/10/21 05:19:40) Q. FreeBSD で動く DHCP サーバ、DHCP クライアントにはどんなものがありますか? A. FreeBSD 3.2-RELEASE 以降では、DHCP クライアントは標準で Internet Software Consortium (ISC) のものを採用しました。 また標準の GENERIC カーネルで Berkeley Packet Filter (bpf) が有効となり、 インストールフロッピーでもサポートしています。使用法は dhclient(8) をご 覧くだだい。 その他では ports 及び packages に、ISC と WIDE による実装があります。 どちらも、DHCP サーバ、リレーエージェント、クライアントの機能が含まれて います。また、MacTCP を使う古い MacOS (MacOS 7.5.3 以降では RARP/BOOTP/ DHCP/MacIP に対応) や X 端末などで必要になる BOOTP サーバの機能も合わせ 持っています。 ・WIDE-DHCP (ports/net/wide-dhcp) dhcps (サーバ), dhcpc (クライアント) WIDE-DHCP については以下の QandA も参照してください。 [管理番号 189] [管理番号 190] ・ISC-DHCP Version 2 (ports/net/isc-dhcp2) ISC-DHCP Version 3 (ports/net/isc-dhcp3) dhcpd (サーバ), dhclient (クライアント) 現在のところ Version 3 は開発中のものです。 それぞれの対応プラットフォームは、付属ドキュメントなどによると | WIDE 版 | ISC 版 ----------------------+-----------+---------- Sony NEWS-OS4 | ○ | BSD/386 1.1 | ○ | BSDI BSD/OS | ○(*1) | ○ FreeBSD | ○ | ○ NetBSD | ○ | ○ OpenBSD | ○(*4) | DEC Alpha OSF/1 | | ○ Ultrix | | ○ SunOS 4.1.4 | ○ | ○ Solaris 2.[567] | | ○ Linux | | ○ HPUX | | ○(*3) Mac OS X | | ○ NextStep | | ○ Rhapsody | | ○ bpf を持つ UNIX | ○(*2) | (*1): BSD/OS 3.0 標準添付 (*2): 付属ドキュメントに「bpf(Berkeley Packet Filter) を持つ OS への移植 は容易だと思われます。」との記述あり (*3): WWW に "Partial functionality: only systems with a single network interface are supported." との記述あり (*4): 上記 URL にパッチあり となっています。DHCP サーバとして使う場合で、WIDE 版が動かないシステムと 設定ファイルを併用したり、そういった OS を今後利用する可能性がある場合は、 ISC 版がいいかも知れません。 ISC 版には、MAC アドレスの集合にはある範囲の IP アドレスを割り当てるといっ た、多対多の割り当ての機能があります。WIDE 版にはありませんが、これを可 能にする非公式なパッチが存在するようです。その他、ISC 版の長所としては、 複数のネットワークインターフェイスを持つマシン上で動かした場合に、インタ フェースと対応するネットワークの設定を自動的に使用する、という点がありま す。加えて、定義ファイルが C ライクな文法を持ち、可読性に優れているとい うのもあげておきます。 ISC 版の設定例としては があります。ここで使われている OS は Solaris ですが、設定ファイルに違い はないので、参考になる筈です。 --- [管理番号 393] (最終更新 1999/02/17 23:58:45) Q. DHCPクライアントのホスト名やそのIPアドレスは、DNSではどう扱えばいい のでしょうか?また、DNSに登録するときに、どうデータベースを作ればいいの でしょうか? A. ここで問題となるのは、DHCPクライアントへIPアドレスが自動割り当てされ るのはありがたいが、次回割り当て時には違うIPアドレスが割り当てられるかも 知れない、ということです。同様の問題は、インターネットへのダイアルアップ 接続にPPPを使っている場合にも存在します。そして、DNS上での扱いには、次の ようなやり方があるでしょう。 A-1. DNSには登録しない: 通常、ファイル共有やメールなどのサーバに使うマシンをDHCPクライアントにす るということはないと考えられます。そこで、DHCPクライアントであるホストの 名前がネットワーク上で参照される(DNS検索の対象となる)ことはないとみなし てしまいましょう。この場合、DNSに登録せずとも特に困らないはずです。 A-2. お仕着せのホスト名であらかじめDNSに登録しておく: Anonymous FTPサーバには、接続してきたホストのIPアドレスからDNSを検索し、 正しい結果が返ってくるかどうかチェックするものがあります。このような場合、 クライアントとはいえ、一応正引き/逆引き出来ないと困ることになりますので、 ホスト名決め打ちであらかじめ登録しておけばいいでしょう。ここでは一例だけ 示します。つまり、正引きのデータベース(ここではdokosoko.zone)に、 ------------------------------------------------ dhcp17 IN A 17 dhcp18 IN A 18 dhcp19 IN A 19 ... ------------------------------------------------ その逆引きのデータベース(ここではdokosoko.rev)に ------------------------------------------------ 17 IN PTR dhcp17.dokosoko.domain. 18 IN PTR dhcp18.dokosoko.domain. 19 IN PTR dhcp19.dokosoko.domain. ... ------------------------------------------------ といったエントリを、DHCP用に割り当てられているIPアドレスに応じて作ってお くわけです。この場合、DHCPクライアントがどういうホスト名を名乗りたがって いるかを無視することになりますが、そのマシンでブラウザを動かしたりメール を読み書きしたりするには困らないはずです。インターネットプロバイダがPPP 用に確保しているアドレスでも、大抵これと同様のDNSデータベースが作られて いることを考えれば、感覚的にも納得できるでしょう。 A-3. DHCPクライアントが名乗る名前をダイナミックにDNSへ反映させる: 技術的に大変興味深いやり方です。ただ、インターネット上に公開するDNSで採 用するには、実装とその普及が不十分であると思われます。 A-4. IPアドレスを動的に割り当てるのをやめ、静的割り当てを採用する: DHCPでは、あらかじめクライアントのMACアドレスとIPアドレスを一対一で決め ておき、これを割り当てることもできます。この場合、MACアドレスが変らなけ ればIPアドレスも一定ですので、昔ながらのなじんだやり方が使えるようになり ます。 --- [管理番号 395] (最終更新 1999/02/17 23:58:45) Q. FreeBSD FAQ の日本語訳はありますか? A. これは FreeBSD の配布物の中に含まれている FAQ を FreeBSD 日本語ドキュ メンテーションプロジェクトが翻訳し、日本独自の部分について加筆したもので す。従来から公開している FreeBSD ハンドブックや FreeBSD WWW ページの日本 語版と一体として機能するようになっています。 FreeBSD FAQ FreeBSD FAQ についてお気付きの点がありましたら FreeBSD 日本語ドキュメン テーションプロジェクト (E-mail: doc-jp@jp.FreeBSD.ORG) までお寄せ下さい。 日本のユーザによって編集が進められている QandA とは別のものですので、ご 注意下さい。 --- [管理番号 396] (最終更新 1999/02/17 23:58:45) Q. 2 台目の HDD に FreeBSD をインストールしたのですがブートマネージャ の画面が出ずに 1 台目の OS が起動します。 A. 1 台目の HDD にもブートマネージャを入れましょう。後からブートマネー ジャを入れる方法は、 Q. ブートマネージャを再インストールする簡単な方法は? ( 管理番号: 57 ) にあります。 --- [管理番号 398] (最終更新 1999/02/17 23:58:45) Q. Compaq社の DeskProXLシリーズの内蔵ネットワークポートを認識しません。 A. XL5**シリーズでは無理なようです。他社のボードをスロットに刺せば使用 できます。XL6**シリーズの内蔵タイプは、未確認ですが Compaq特有のBIOSの ため使用できなかったのでたぶん無理でしょう。 --- [管理番号 400] (最終更新 1999/02/17 23:58:45) Q. FreeBSD で POSIX スレッド (POSIX pThread) は使えますか? A. はい、使えます。 FreeBSD は IEEE Std 1003.1c-1995 (Threads) に準拠しています。 FreeBSD をインストール後、配布ファイルからシステムマニュアルページ (man) とソースのシステムライブラリ (lib) をインストールし、man pthread を実行すると表示される説明を読んでください。 --- [管理番号 401] (最終更新 2002/03/07 15:32:11) Q. a.out 形式のシェアドライブラリを作成、利用する例があったら教えてください。 A. 以下に例を説明します。 まず、同じディレクトリに shared.c、test_shared.c を以下の内容で作成 します。 以下は shared.c (共有ライブラリ) の内容です。 ----------------- ここから --------- int shared(int a) { a *= 5; return(a); } ----------------- ここまで --------- 以下は test_shared.c (ライブラリを使用する実行ファイル) の内容です。 ----------------- ここから --------- #include extern int shared(int); int main(void) { int a; printf("number ?:"); scanf("%d", &a); printf("result: %d\n", shared(a)); return(0); } ----------------- ここまで --------- まず、シェアドライブラリを構成するオブジェクトを作成します。オプション -fpic はシェアドライブラリを構成するオブジェクトを作成するために必要 です。オプション -c はリンクを行わないでソースをコンパイルするために 必要です。 % gcc -fpic -o libshared.SO -c shared.c 次にシェアドライブラリを作成します。 % gcc -shared -Wl,-soname,libshared.so.1 -o libshared.so.1 libshared.SO そして、ld(1) に見つけてもらうために リンクを張ります。 % ln -s libshared.so.1 libshared.so 最後に、このシェアドライブラリを利用する実行バイナリを作成します。 % gcc -L. -lshared -Wl,-rpath=. -o main test_shared.c さあ、実行してみましょう。"number ?:" の後に数字を入力してください。こ こでは 5 を入力しています。 % ./main number ?:5 result: 25 ダイナミックリンクが本当に行われているか、shared.c を変更し、 libshared.so.1.0 を再作成して、main を実行するとその変更が反映される ことを確認しましょう。たとえば、shared.c の "a *= 5;" を "a *= 10;" に 変更します。 ----参考---- コンパイル時に -fpic を付ける意味 [FreeBSD-tech-jp 2036] Linux とは違い、FreeBSD では lib${name}.so.X だけ作ればよい。 [FreeBSD-users-jp 60134] -rpath や $LD_RUN_PATH の $LD_LIBRARY_PATH との違い。 共有ライブラリとのリンクから実行までの過程。 推奨されるライブラリ作成の手順。 [FreeBSD-users-jp 60135] Executable and Linkable Format (ELF) V1.1 The Linux Japanese FAQ Project ELF HOW-TO, GCC HOW-TO など。 --- [管理番号 404] (最終更新 1999/02/17 23:58:45) Q. ML(メーリングリスト)から脱会したくなったので 本文に unsubscribe と書いたメールを送ったのですが、このメールが MLに流れる だけで脱退できません。どうすればいいのですか? A. あなたが入会したときに MLについての案内文が送られて来た と思います。 ほどんどの 管理者は この案内文の中に脱退する 方法を書いていますので それを読んで脱退の方法を確認してく ださい。 その他にも大切なことが書かれていますので 案内文はちゃんと 保管しておくべきでしょう。 また その案内文がないときは MLの管理者にその旨を連絡して 脱退方法を確認しましょう。 参加している MLが majordomo を使っていることがはっきりし ている場合、以下の方法が使えます。 1. 宛先に majordomo@ML-domain を指定します。 ML-domain は 脱退したい ML が運用されているドメイン名を指定します。 2. 本文に unsubscribe と1行だけ書きます。 の部分は 参加している リストの名前に置き換えてください。 ML に送る時のアドレス xxx@ML-domain のうち xxx に相当 する部分です。 3. これをメールします。 --- [管理番号 405] (最終更新 2002/08/24 06:22:44) Q. /etc/newsyslog.conf を編集して httpd 等のログをローテーションしようと しましたが、ローテーション後も名前が変更された古いファイルにログが 出力されつづけます。 A. 一般的な UNIX では、プロセスがファイルをオープンしているときに そのファイルのリネームを行った場合、プロセス側からは引続きリネーム 後のファイルをオープンしているように動作します。 newsyslog(8) はログローテーションを行った後に syslogd(8) に HUP シグナルを送ることで、ローテーションを行ったことを伝えるように なっています。よって、syslogd を利用しているデーモンならば ローテーション後に新しいログファイルにログが出力されるはずです。 もし syslogd を使わず独自でログファイルに記録しているデーモンが あるなら、そのデーモンのプロセス ID が書かれているファイル (pid ファイル) を /etc/newsyslog.conf に指定することで、そのデーモンに HUP シグナルが送られるようになります。 また、 - pid ファイルがない - HUP シグナルを送ってもログローテーションを認識しない というデーモンの場合でも、logger(1) によって syslogd に送るという 手もありますので、うまく工夫すれば newsyslog で処理することができます。 --- [管理番号 406] (最終更新 2000/03/22 02:28:34) Q. 次のようなスクリプトで routed のログファイルをローテーションしよ うとしましたが、ローテーション後も名前が変更された古いファイルに ログが出力されつづけます。 #!/bin/sh cd /var/log mv routedlog routedlog.0 cp /dev/null routedlog chmod 644 routedlog kill -1 routedのPID A. routed(8) は SIGHUP を受けても (kill -1 をしても)、オープン中のログ ファイルを切替えません。このような場合、次のようにいくつかの方法があり ます。 A1. 一旦 routed を殺し、ログファイルをローテーションさせてから再起動し ます。これが最も一般的です。 A2. routed 起動時に logger(1) を経由して syslogd(8) にログを送るように して、newsyslog(8) でローテーションさせます。こうすればログファイルの 管理が楽です。 A3. ローテーションを次のコマンドで行います。(これは裏技に近いので、う まくいくか様子を見た方がいいかも知れません。) cp -p routedlog routedlog.0 cat /dev/null > routedlog A4. FreeBSD ユーザたるもの routed のソースを読んで SIGHUP を受けた時に ログファイルを切替える動作を加えてしまいましょう。更にこのパッチを公開 してしまえば、みんなは幸せ、あなたは人気者になれるかも知れません。 (routedの場合に限らずこのような精神を大切にしましょう。) --- [管理番号 407] (最終更新 1999/02/17 23:58:45) Q. (サーバ) ppp 着信用サーバの設定法をおしえて A. 他に FreeBSD handbook にも解説があります。 --- [管理番号 408] (最終更新 2001/03/07 02:08:45) Q. 端末型ダイアルアップ IP 接続で、LAN ごと接続出来ませんか? A. FreeBSD 3.3-RELEASE 以降であれば、標準の ppp(8) に -nat オプションが 追加されましたので、適切に /etc/ppp/ppp.conf に設定すれば可能です。 詳しい設定方法については、日本語マニュアルの ppp(8) を参照してください。 少し記述の古い部分も見受けられますが、以下の文書も参考になると思います。 それから、佐藤淳一さんの NAT パッチを利用している人は、設定方法が異な りますので、佐藤さんの Web ページを参照してください。 --- [管理番号 409] (最終更新 2001/10/14 11:51:13) Q. 電子ブック (8cm CD) や EPWING 規格 (12cm CD) などの辞書データを使って、 辞書の検索をしたい。 A. FreeBSD の ports および packages には、電子ブック (EB, EBG, EBXA) およ び EPWING 規格の辞書で検索を行うためのソフトウェアがいくつか存在します。 ソフトウェアの開発されたまたは、改訂された時期によって利用可能なデータ の制限があります。 1. 文字のみしか扱えない。 2. 外字データを画像のまま扱える。 3. 画像や音声などにも対応している。 これらは動作の形態の違いによって、次のように分類できます。 1. 直接、辞書データを検索するもの 2. ネットワークを介した、クライアント/サーバ型のもの ネットワークのプロトコルには、次のような形式があります。 1. ndtp 日本で主に使われているようです。 2. dict RFC 2229 対応 3. http WWW ベース 1. 単体で使用するもの 単体で動作するので、そのソフトウェアだけをインストールすれば、使用で きるようになります。次のソフトウェアがあります。 * cdrom2 文字ベースの辞書検索ソフトウェアです。 * Lookup (eb Library を利用する) 文字・画像・音声に対応している。 複数の辞書も一度に扱える 2. NDTP のクライアントあるいはサーバとして動作するもの NDTP というプロトコルのクライアントとサーバをインストールします。ク ライアントとサーバを少なくとも一種類ずつインストールする必要がありま す。基本的に、クライアントとサーバは、どの組み合わせでも使用できます。 NDTP のクライアントには次のものがあります。 * Lookup (文字・画像・音声に対応) Emacs 上で動作する。単体でも動作可能。DICT にも対応しています。 複数の辞書を一度に扱えます。 * BookView (外字データを扱えます) Tcl/Tk 上で動作する。日本語対応版 Tcl/Tk が必要です。 * diclookup-mule (文字のみしか扱えません. intlfontで外字に対応) Emacs 上で動作する。Emacs あるいは Mule が必要です。 (XEmacs 上では動作させることができません。) * kenjiro (文字ベース) dserver に付属している。 * まだありますが、info ndtpd などを参照してください。 NDTP のサーバには次のものがあります。 * NDTPD (外字データや音声なども扱えます) NDTP サーバ。正確には EB ライブラリという検索ライブラリとサーバ 部分から構成されます。 * dserver (文字しか扱えません) NDTP サーバ。kenjiro というクライアントが付属しています。 DICT 形式 DICT プロトコル (RFC 2229) に対応していれば、クライアント/サーバは どれでもいいはずです。Lookup なども対応しています。 3. WWW の CGI プログラムとして動作するもの Apache のように CGI に対応している WWW サーバをインストールする必要 があります。また、検索には Netscape Communicator 等の WWW ブラウザが 必要です。サーバとクライアントは別々のマシンで動作させることもできま す。WWW ブラウザさえあれば UNIX 以外の環境からも使えます。 このタイプには、次のソフトウェアがあります。 * ebw3 正確には、CGI プログラム ebw3 と専用の検索サーバ ebw3d から構成 されています。(電子ブックのためのライブラリ eb の web 版というこ とのようです) zzz. Lookup と同じURL から辿れる場所では FreePWING なども開発している ようです。FreePWING は、EPWING 互換データを作成するスクリプトで現在でも 多くのフリー辞書が使えるようです。 なお、電子ブックや EPWING 規格であることを謳っていない辞書は、大抵がまっ たく異なる独自規格を採用しています。ここに挙げたソフトウェアでは検索は できませんので、注意しましょう。 [電子辞書オープンラボ] [FreePWING] --- [管理番号 410] (最終更新 2000/05/24 20:55:42) Q. ノートパソコンで 800x600 ドット表示できますか? A. 800x600 ドットノートパソコンの情報。 --- [管理番号 411] (最終更新 2002/08/24 06:22:43) Q. PostScript 対応でないプリンタを FreeBSD で使いたいのですが、なにか 良い方法がありませんか? A. お使いのプリンタによって、以下の方法があります。 1. エプソン製のインクジェットプリンタの場合、エプソンコーワが配布して いる PIPS を使うことで、 PostScript プリンタのように扱えます。 ports/packages が japanese/pips* として用意されていますので、そこから インストールして下さい。 # PM-700C 用のドライバはありませんが、ヘッドの仕様が同じ (たぶん) PM-670用のドライバで動かせます。 PIPS は PNG フォーマットの入力を Epson の inkjet プリンタコードに変 換するソフトで、エプソンコーワより配布されています。Ghostscript と 組み合わせたフィルタを利用することにより、PostScript の印刷時にも活 用できます (そのためのフィルタなどが付いているはず)。 Ghostscript による mjc720 や uniprint ドライバなどの Epson inkjet 用 出力に比べて 6色インクのサポートなどにより Windows ドライバ並の良い 画質が得られます。 他にも似たようなやり方をするものには、HP の inkjet の低価格機種など で、gs の出力を別のプログラムで制御コードに変換することにより印刷が 可能になるものがあります (詳しい情報求む)。 2. その他のプリンタの場合、 Ghostscript を使うことにより PostScript プリンタのように扱えるものもあります。 Ghostscript については、[管理番号 1458] を参照してください。 --- [管理番号 413] (最終更新 1999/02/17 23:58:45) Q. Hardware の FAQ (Frequently Asked Questions: よくある質問集) はありませんか? A. 私家版なら この文書は obsolete なので, 以下を参照したほうがいいかもしれません. FreeBSD FAQ のハードウェアコンパチビリティの項 FreeBSD Handbook に情報があります. --- [管理番号 414] (最終更新 1999/02/17 23:58:45) Q. Windows のファイルサーバ、プリンタサーバとして FreeBSD を使用したい。 A. Samba (ports/packages では net カテゴリにある) を使用します。この Q and A にも Samba に関する質問がいくつもありますので、そちらも参照し てください。 --- [管理番号 418] (最終更新 2000/12/07 02:35:04) Q. Windows と Macintosh 混在の LAN 上でのサーバ構築 A. 以下の Web ページが参考になるでしょう。 --- [管理番号 421] (最終更新 1999/02/17 23:58:45) Q. Netatalk を使って MAC へディスクを公開する方法 A. --- [管理番号 422] (最終更新 1999/02/17 23:58:45) Q. PCMCIA ビデオキャプチャカードで TV・ビデオ観賞, テレビ会議ができますか A. --- [管理番号 423] (最終更新 1999/02/17 23:58:45) Q. オンライン辞書(dserver)で辞典盤(ASCII)の英和・和英辞典を使いたい。 A. 以下のページを参照してください。 --- [管理番号 425] (最終更新 1999/02/17 23:58:45) Q. MIDI で楽譜の作成, 演奏や印刷を行えますか. A. --- [管理番号 426] (最終更新 1999/02/17 23:58:45) Q. データ解析などの科学技術計算がしたいのですが. A. データ解析用に次のようなものがあります (商用). (商用) 非経験的分子軌道法計算プログラムである Gaussian 94 もあります. (英語です.) --- [管理番号 427] (最終更新 2002/02/03 13:12:18) Q. CVSup の使い方を説明して下さい。 A. や、handbook の を御覧下さい。 --- [管理番号 428] (最終更新 1999/02/17 23:58:45) Q. wu-ftpd-2.4.2-beta15 を ports を利用してインストールし、anonymous FTP サービスの設定をおこないました。ところが、anonymous FTP で dir し てもファイルの UID が数字で出てしまいます。これをちゃんとユーザ名を表 示するようにするにはどうしたらよいでしょうか? ~ftp/etc/{passwd,group} は用意してあり、GID の方は問題なくグループ名が表示されます。また一般ユ ーザでの FTP 接続した場合はユーザ名も問題なく表示されます。 A. wu-ftpd に限らず、FTP の LIST コマンドや STAT コマンドで実行される /bin/ls コマンド (anonymous FTP の場合は ~ftp/bin/ls) は、ファイルのオ ーナの UID からユーザ名を参照するのに getpwnam(3) を使用します。BSD の getpwxxx(3) 関数はハッシュ化された DB を参照するので、これを用意する必 要があります。そのためには pwd_mkdb(8) コマンドを使います。 /etc/master.passwd の形式で ~ftp/etc/master.passwd を用意して、 $ /usr/sbin/pwd_mkdb -d ~ftp/etc ~ftp/etc/master.passwd を実行することで必要な DB ファイルが作成され、ユーザ名が参照されるよう になります。 --- [管理番号 429] (最終更新 1999/02/17 23:58:45) Q. anonymous FTP サービスにおいて、シンボリックリンク先のファイルやデ ィレクトリが参照できません。 A. ユーザ ftp のホームディレクトリを /home/ftp とした場合、anonymous FTP でアクセスすると /home/ftp に chroot され、/home/ftp がルートディ レクトリ (/) となります。このため、 - /home/ftp をルートディレクトリとするディレクトリツリーの外を参照する ことはできません - シンボリックリンク先が絶対パスとして指定されている場合、そのパスが /home/ftp を / としたパスになっていないと参照することができません 対処法は、/home/ftp 以下のファイルに対して相対パスでシンボリックリンク ファイルを作成するか、/home/ftp をルートディレクトリとした絶対パスを指 定してシンボリックリンクファイルを作成することです。 例) anonymous FTP ユーザから見て /foo/bar が /hoge を指すようにシンボリッ クリンクを作成する場合: 方法1. 絶対パスでリンク先を指定する $ cd /home/ftp/foo $ ln -s /hoge bar 方法2. 相対パスでリンク先を指定する $ cd /home/ftp/foo $ ln -s ../hoge bar 方法 1 の場合、作業の際に broken symbolic になるか、システムのルートデ ィレクトリ上のものを指してしまいます。方法 2 では作業中でもシンボリッ クリンク先が実体を指すので、設定ミスを起こしにくいでしょう。 --- [管理番号 430] (最終更新 1999/02/17 23:58:45) Q. anonymous FTP で、ユーザ ftp のホームディレクトリ以下にないディレク トリにアクセスしたいのですが? A. mount_null(8) を使用して、対象ディレクトリをユーザ ftp のホームディ レクトリ以下に null ファイルシステムマウントするとアクセスできます。 ユーザ ftp のホームディレクトリを /home/ftp とし、アクセスしたいディレ クトリを /some/where とした場合、 $ mkdir /home/ftp/where $ mount_null /some/where /home/ftp/where とすることで、アクセスしたいディレクトリ /some/where を anonymous FTP アクセスでは /where で参照できるようになります。 システム起動時に自動的にマウントするようにするには、/etc/rc.local で mount_null コマンドを実行させるか、/etc/fstab に、 /some/where /home/ftp/where null rw 0 0 を追加すればよいです。マウントオプションは必要に応じて適宜追加・変更し ます。 --- [管理番号 434] (最終更新 1999/08/07 23:58:28) Q. inn (InterNetNews サーバ) のインストールをやってみたいのですが。 A. この他に fj.news.system.inn に定期的に投稿される INN FAQ も参考になる でしょう。 --- [管理番号 435] (最終更新 1999/02/17 23:58:45) Q. ブート時にときどき calcru: negative time: -??? usec (??? は数字) というメッセージが出るのですが、これはどういう意味でしょ うか? A. 少なくとも FreeBSD 2.2-RELEASE〜FreeBSD 2.2.7-RELEASE でこの症状が 報告されています。 FreeBSD ではブート時に CPU のクロック周波数を検出します。例えば 133MHz の Pentium なら下記の様に表示されるはずです。(周波数は、数 % の誤差を含みます。) CPU: Pentium (132.63-MHz 586-class CPU) ところが、一部のマシンでは 下記の様に誤って 大きく異なった周波数で検出される ことがある様です。 CPU: Pentium (29.17-MHz 586-class CPU) この様な場合に問題のメッセージが表示されます。この現象については 原因が正確 には特定されておらず、根本的な解決方法もわかっていません。この現象が発生して いる時には、時間計測が異常になるようで、 select(2)が、失敗して mule が、入力を受け付けなくなったり、 shutdown 時に正常に filesystem をunmount できずに、次回起動時に fsck したり します。 大部分の環境では、リブートしたときに下記の様なメッセージが出ていなければ その後の動作に支障はありません。 calcru: negative time: -??? usec なお、一部では、ブート時には問題ないが、突然表示されることがある様です。 このメッセージが表示されない様にするには /usr/src/sys/i386/isa/clock.c というソースファイルの先頭に 下記の 定義を追加してから カーネルを再構築 すると 解決する様です。 #define CLK_USE_I586_CALIBRATION #define CLK_CALIBRATION_LOOP #define CLK_USE_I8254_CALIBRATION ソースファイルを直接編集したくない場合は カーネルコンフィグレーション ファイルに 下記の行を追加します。 options CLK_CALIBRATION_LOOP options "CLK_USE_I8254_CALIBRATION" options "CLK_USE_I586_CALIBRATION" --- [管理番号 436] (最終更新 1999/02/17 23:58:45) Q. Wnn6 を起動しようとすると、 /usr/local/bin/Wnn6jserver: Can't bind socket と言われてしまい、起動できません。 A. まずは同じポートを使っているプログラムが動いていないか (既にWnn6が 動いていないか)、また Wnn4 を同時に使おうとしていないか調べてください。 動いていなかったら /tmp/ を見てください。jd_sockV6 というファイルがあ るならそれを消せば動くと思います。 bind については、man bind でマニュアルを見てください。 --- [管理番号 437] (最終更新 1999/02/17 23:58:45) Q. FreeBSD handbook ってなに? A. FreeBSD handbook とは FreeBSD のインストール、日常の使用、管理など について FreeBSD Documentation Project がまとめたもので、FreeBSD 配布物の一つです。 インストールのような初歩的な内容から、ports/packages の作成方法、 kernel の再構成とデバッグ、ネットワークの管理, FreeBSD-current や FreeBSD-stable についての解説などの高度な内容までが含まれています。 FreeBSD を活用していく上で欠かせない文書といえます。 最新版は で見ることができます。 --- [管理番号 439] (最終更新 1999/02/17 23:58:45) Q. PnP って何ですか? A. PC に差すボードは、IRQ/DRQ/IOアドレス などの値が他と重複しないよう に管理する必要があります。広義には、これらの値(I/O 資源)をソフトウェア で調停する枠組のことを、Plug and Play あるいは PnP といいます。 PCI や PCMCIA など、比較的設計の新しいバスでは、設計の早い段階でこ の I/O 資源の調停をソフトウェアで行う枠組を考えていますが、ISA の場合 は最初はそのような調停を行っていませんでした。そこで、ISA でもソフトウェ アで統一的に設定する枠組が考えられました。これが (狭義の) PnP です。通 常 PnP と言った場合には、こちらの意味の文脈がほとんどです。 ISA バスの PnP は、ISA バスのボードが広く普及した後にあとづけで設計 された等の理由で、かなりトラブルの原因になることが多いようです。 --- [管理番号 441] (最終更新 2001/08/12 05:25:06) Q. FreeBSD のハンドブックと FAQ はどこで手に入りますか? A. 英語版は にありますが、それを日本語訳したものを で見ることができます。 ftp でも日本語訳のそれぞれの最新版を以下の URL から入手できます。 日本語版 ハンドブック: 日本語版 FAQ: また、FreeBSDのインストール時や /stand/sysinstall などで、 doc distribution をインストールしてあるなら、/usr/share/doc/ja/ 以下にハンドブックと FAQ の日本語版が入っているはずです。 (ただし 2.2.8-RELEASE 以降) --- [管理番号 442] (最終更新 1999/02/17 23:58:45) Q. Wnn6をマニュアルの記述のとおりにインストールしましたが、jserverを実行す ると次のようなエラーが出て起動できません。 Can't get host infomation from hostname A. ホスト名からIPアドレスが引けていません。ネットワークの設定を見直してくだ さい。DNSもしくは/etc/hostsの設定内容をチェックし、マシンのホスト名とIPアド レスの対応が正しいか確認してください。 マシンがネットワークに接続されていない場合は、/etc/hosts を以下のように設定 する方法もあります。 hostname(1) を実行して # hostname MYNAME.MY.DOMAIN と表示される場合、/etc/hostsには 127.0.0.1 localhost localhost.MY.DOMAIN MYNAME.MY.DOMAIN と設定します。 --- [管理番号 443] (最終更新 2002/01/27 00:09:32) Q. ports をインストールしようとして make を実行すると、 fetch: hogehoge-1.1.tar.gz: ...... >> Couldn't fetch it - please try to retrieve this >> port manually into /usr/ports/distfiles/ and try agein. となり、インストールできません。 A. Makefile の中に書かれているソースファイルを、ネットワークを使ってダウ ンロードしようとしたが失敗した、というエラーメッセージです。この原因は 主に、ファイアウォール等が存在するか、ファイルが指定された URL に無い 事が考えられます。 A1. ファイアウォール あなたのマシンがファイアウォール (firewall) の中にあるために、外部へ のアクセスに特定の制限が設けられている場合があります。その制限はファ イアウォールの構成と設定などにより異なりますが、fetch(1) の設定を変 えることで回避できるかもしれません。注意点として FreeBSD 4.1-RELEASE から、fetch(1) や pkg_add(1) が fetch(3) ベースに書き直されています ので、それまでの ftpio(3) ベースと仕様が異なる点があることです。 1. passive モードで FTP する時 # env FTP_PASSIVE_MODE=ON make 2. HTTP proxy サーバを利用する時 # env HTTP_PROXY="http://hostname[:port]" make (libfetch ベース) # env HTTP_PROXY="hostname[:port]" make (libftpio ベース) FTP_PROXY が未設定で HTTP_PROXY が設定されていると、`ftp://...' と いう URL でも HTTP proxy サーバ経由でダウンロードします。 3. FTP proxy サーバを利用する時 # env FTP_PROXY="ftp://hostname[:port]" make (libfetch ベース) # env FTP_PROXY="hostname[:port]" make (libftpio ベース) hostname[:port] の部分は、例えば proxy.foo.bar.co.jp:8080 などと指定 します。FTP proxy と HTTP proxy を併用する場合は、両方の環境変数を設 定してあげます。もっと凝った設定が必要なら、詳細はそれぞれの man ペー ジを読んでください。 上記のように実行してうまくいったら、~/.cshrc や ~/.profile に環境変 数の設定を行なうか、login.conf(5) に設定してやればシステム全体に効果 があります。 A2. ファイルが指定された URL に無い あなたの使っている ports のバージョンが古いため、既に配布ファイルが 置いてないのかもしれません。例えば、ports は hogehoge-1.1.tar.gz を ダウンロードしようとしたけれど、指定された場所には最新バージョンの hogehoge-1.2.tar.gz しか置いてない、ということが考えられます。 そのときはどこかからファイルを取ってきて、/usr/ports/distfiles/ に 置き、改めて make を行なってください。ファイルを LYCOS FTP Search サイト などで探し、 # cd /usr/ports/distfiles; fetch ftp://foo.bar.com/pub/hogehoge-1.1.tar.gz でダウンロードするのが簡単です。 --- [管理番号 445] (最終更新 1999/02/17 23:58:45) Q. ifconfig -a や netstat -i した時に、lp0 というインターフェイ スが現れます。これはなんですか。また どうしたら消せますか。 A. まず lp0 はパラレルポートを使って SLIP のような接続を行なう ``PLIP'' 接続に用いるインターフェイスです。 lp0 は INET(Internet working) が指定されている状態で lpt0 デ バイスが組み込まれると、 lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface の様に自動的に組み込まれます。組み込んだまま使用しなくても特に 問題を生じることはありませんので そのまま使っていて大丈夫です。 PLIP 接続をしないので、lp0 を組み込みたくない場合は、以下の様に boot: 時にカーネルの設定を変えるか 再構築します。 ・boot: 時に設定する方法 lpt0 が割り込みを使わないようにするには、Boot: -c として起動し、 irq lpt0 -1 とします(visual モードではこの操作はできないはずです) ・カーネルを再構築する方法 lp0 は lpt0 が割り込みを使って かつ options INETが指定されてい る場合に組み込まれます。 lp0 を外すにはこの条件を外します。 その方法としては 2通り程考えられます。 どれかひとつを実行すれば 外すことができます。 1. lpt を割り込みを使わない様に lpt0 の行を以下の様に編集 して再構築する。 device lpt0 at isa? port? tty irq ? vector lptintr 2. ソースファイルを修正します。 /sys/i386/isa/lpt.c のファイルの先頭に 次の 3行を挿入します #ifdef INET #undef INET #endif /* INET */ そして 通常通り、カーネルを再構築して入れ換えます。 他に カーネルコンフィグレーションファイルの options INET を外してカーネルを再構築することも考えられますが、この場合 他のネットワークインターフェイスもIPネットワーク機能が使えな くなるため、現実的な解ではありません。 上記の方法は FreeBSD 2.2.5 Release で確認しています。 --- [管理番号 446] (最終更新 1999/02/17 23:58:45) Q. FreeBSD だと、Ctrl + Alt + Del したら誰でも shutdown 出来ちゃうんで すが、これを止めることはできませんか? A. いくつか方法があります. A.1 (FreeBSD のバージョンに非依存) 使っている keymap を書き換えてしまいます。例えば、106 キーボードを使用 してるならば、(/usr/share/syscons/keymaps/ の下にある) jp.106.kbd の 'boot' とある部分を 'nop' などに書換えます。 (この例では 'del' としています。) (修正前) 083 del '.' del del del del boot del N ~~~~ (修正後) 083 del '.' del del del del del del N ~~~ 他の keymap でも同様に、'boot' となっている部分を 'nop' とすれば OK で す。 (注意 1)この方法はそのマシンにアカウントがあって kbdcontrol を実行でき る人には無力です。 (注意 2)書き換えに失敗すると、キーボードの刻印と、実際に入力される文字 の対応が取れなくなります。バックアップを取ってから書き換えをし ましょう。 A.2 (FreeBSD 2.2.5-RELEASE 以前) /sys/i386/isa/syscons.c にある関数 scgetc() を書き換えて対処します。 --- /sys/i386/isa/syscons.c ---------------------------------- case RBT: shutdown_nice(); break; -------------------------------------------------------------- この部分 (FreeBSD-2.2.1R だと 2986 行目付近、 FreeBSD-2.2.5R だと 3247 行目付近) を次のように書き換えます。 --- /sys/i386/isa/syscons.c ---------------------------------- case RBT: #ifndef NO_RBT shutdown_nice(); #endif break; -------------------------------------------------------------- これでカーネルの設定ファイル (/sys/i386/conf/*) に options NO_RBT をつけて再構築した kernel では、syscons から Ctrl + Alt + Del での リブートができなくなります。 A.3 (FreeBSD-2.2.6-RELEASE 以降) カーネルに, options SC_DISABLE_REBOOT を加えて, 再構築して下さい. Ctrl + Alt + Del でのリブートができなくなります. --- [管理番号 447] (最終更新 1999/02/17 23:58:45) Q. 配布物 'hoge' が見つかりません。 A. Anonymous FTP で公開されているファイルを検索するコマンド archie ま たは xarchie で探して見つからなければ、以下の web page で検索すること をお勧めします。 --- [管理番号 448] (最終更新 2001/10/19 21:29:41) Q. emacs (mule) で Vz風のキーバインドを使うにはどうすれば良いですか。 A. vz.el という emacs lisp library があります。 ws-mode.el というものもありますが、vz.el の方が 1024倍くらい Vz です。 オリジナルは、NIFTY-Serve FEXTで配布されています。また、 にも情報があります。 --- [管理番号 450] (最終更新 1999/02/17 23:58:45) Q. XF86Config は XF86Setup を使用して作成しました。 xinit(または startx )で X Window System を起動する事が出来ましたが、 使われている色が 256 色しか出ていない様です。もっとたくさんの色を使え るよにするには、どうすればよいのでしょうか? A. まず、X Window System を起動して、今現在の設定で、X Window System が何色の色を使っているかを xdpyinfo で調べます。具体的には、以下のよ うな手順で調べます。 % xdpyinfo name of display: :0.0 version number: 11.0 : screen #0: dimensions: 1152x864 pixels (390x293 millimeters) resolution: 75x75 dots per inch depths (1): 16 : visual: visual id: 0x20 class: TrueColor depth: 16 planes : "depth:" という項目に "8 planes" などと表示されていれば、8bpp で起動し ているので、もう少し色が出るでしょう。 (上記の例では、16bpp で起動しています。) % xinit -- -bpp 16 などとして X Window System を起動してみましょう。 ( 8bpp で起動した時よりも解像度が下るかもしれません。) これできちんと表示されるようなら XF86Config の Screen Section に DefaultColorDepth 16 と書いておくと、次回から % xinit(または startx ) とすると、16bppで起動します。 --- [管理番号 451] (最終更新 2000/01/20 19:44:12) Q. ウィンドウマネージャに twm を使用したときは きちんと表示 できた色やアイコンが、fvwm や Afterstep、その他カラフルな ウィンドウマネージャを使用した場合では、白黒になってしまいます。 A. fvwm を使用していて、なおかつ GoodStuff で、いろいろな所から集めた xpm のアイコンを使用するような設定にしていると、それぞれのアイコンが 別々の色を要求するため、かなり色数を消費してしまいます。特に Netscape Navigator を同時に使うと、すぐに色が足りなくなってしまいます。 Afterstep は、アイコンやタイトルバーのグラデーション部分で 数百の色数を必要としますが、減色したアイコンを使うと 色の消費を抑えることができます。 適当な場所 (例えば /usr/X11R6/lib/X11/afterstep/icons/) に展開し、 ~/.steprc や ~/.fvwmrc などを IconPath /usr/X11R6/lib/X11/afterstep/icons/reduced:/usr/X11R6/lib/X11/afterstep/icons PixmapPath /usr/X11R6/lib/X11/afterstep/icons/reduced:/usr/X11R6/lib/X11/afterstep/icons と書き換えると、最初に減色アイコンである icons/reduced/ を探し、 見つからなければ icons/ を探すようになります。 なお、Afterstep-1.6/1.7 などは、8bpp 用の減色済アイコンが 用意されていますので、アイコン用パスの設定変更だけで大丈夫です。 根本的には、カラフルなウィンドウマネージャを 8bpp (256色) で 使うのは少し無理があります。できればメモリ 4MB 以上のビデオ カードを購入し、16bpp (65536色)・24bpp (1677万色) を表示可能な 環境を整える方がよいでしょう。 --- [管理番号 453] (最終更新 1999/02/17 23:58:45) Q. -lxpg4 をつけてコンパイルするにはどうすればよいですか。 A. /usr/X11R6/lib/X11/config/host.def に、 #define ExtraLibraries -lxpg4 と書きます。 以後 xmkmf を実行 (あるいは ports を使って make) する際には -lxpg4 オ プションをつけてコンパイルする Makefile が作られるようになります。 --- [管理番号 454] (最終更新 1999/02/24 04:12:45) Q. xdm で login すると普通に login して startx したのと挙動が違います。 どうして? A. xdm の動作 /usr/X11R6/lib/X11/xdm/xdm-config に xdm の動作環境が書かれています。 XFree86 3.3.1 の初期設定では、resource としてここの Xresources、login に成功して最初の session としてここの Xsession が起動されます。 Xsession では user の home ディレクトリに .xsession があれば、それを実 行します。 普通に login した場合、shell は .cshrc や .login (bsh 系は .profile) による環境設定を行いますが、.xsession は、通常 bsh script であることが 多く、これらの 初期設定 file を読み取りません。(csh の場合 .cshrc は読 み込まれます。) bsh 系 script では、 . $HOME/.profile csh 系 script に変更して source ~/.login など、明示的に読み込む必要があります。 --- [管理番号 457] (最終更新 1999/02/17 23:58:45) Q. FreeBSD には、Windows でいうところの「デフラグ」はありますか? A. FreeBSD が採用している FFS というファイルシステムは、できるだけ一つ のファイルがばらばらに配置されることがないように作られていますので、基 本的にデフラグの必要はありません。もしデフラグしたとしても劇的な速度アッ プは起こらないでしょう。 どうしても、というなら dump でバックアップを取り、newfs して restore で 書き戻すのがいいでしょう。 また、fsck を使うと、 % fsck (中略) 33527 files, 581040 used, 1491171 free (17803 frags, 184171 blocks, 0.9% fragmentation) ↑これ などと表示されますが、これは「どれくらいファイルブロックが分散してしまっ たか」を表すものではなく、「ディスク領域を有効に使うために、どれくらい ファイルブロックを分割しているか」というものを意味しています。この値が 高いからと言って、パフォーマンスの低下につながるわけではありません。 --- [管理番号 458] (最終更新 1999/02/17 23:58:45) Q. MuleでMew/MHを使っていますが、サマリモードで漢字が化けます。 A. MHの設定の問題です。2つの設定が必要です。 まず、結論として、.mh_profileにて file-coding: ja_JP.jis7 process-coding: jp_JP.jis7 display-coding: jp_JP.jis7 という指定を加え、mhに対して、ファイルや通信、表示に使われる漢字コード を指定します。 さらに、ヘッダ解析のためのファイル(例えばmew-1.70/Mail/scan.jis.form) を入手して、~/Mail/scan.jis.formとし、同じく.mh_profile Path: Mail inc: -form scan.jis.form scan: -form scan.jis.form として認識させます。以上で、サマリモードで正しく漢字が表示されます。 なお、mewは1.70までmhを使っていましたが、それ以降はimを使うようになった ので、それらについてはまた別問題になります。 --- [管理番号 460] (最終更新 1999/08/08 00:24:25) Q. QandA に登録されているものを検索することはできますか? A. QandA のトップページ から全文検索が可能です。また、 では、他のメーリングリストと組み合わせて検索することができます。 最初はシンプルな単語、項目、名称で検索し、候補が多い場合は絞り込んで (単語を増やす、バージョンを入れてみる)検索するのが効果的です。 --- [管理番号 461] (最終更新 1999/02/17 23:58:45) Q. システムをシャットダウンする場合は、必ず root になってから root# shutdown -h now 等とやらなければいけないのでしょうか? A. /sbin/shutdown コマンドは operator グループに所属しています。あなたを /etc/group の operator グループに追加すると、root にならなくても shutdown コマンドを実行できます。あなたのユーザ名が YourLoginName なら、 /etc/group を wheel:*:0:root,YourLoginName daemon:*:1:daemon |<省略> operator:*:5:root,YourLoginName とすれば良いでしょう。これで、 YourLoginName% shutdown -h now とやれば、シャットダウン出来ます。 --- [管理番号 462] (最終更新 1999/02/17 23:58:45) Q. wu-ftpdをバージョンアップしたらアクセスコントロールがされなくなりまし た (ftpaccessが無視される)。 A. 最近の academ 版 wu-ftpd ではオプションが変更され、デフォルトでは ftpaccess を参照しないようになっています。参照するようにするには -a コ マンドライン引数を指定する必要があります。具体的には、/etc/inetd.conf では、 ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -al ^ の様に ``a'' を追加します (``l'' は syslog を利用してアクセスのログを 残すオプション)。これによりwu-ftpdの設定ファイルである、ftpaccessが参 照されるようになります。 デフォルトでは ``A'' オプションを指定したのと同じ、ftpaccessを参照しな い設定になっています。 詳しくは wu-ftpd の ftpd のマニュアルを参照してください。 --- [管理番号 463] (最終更新 1999/02/17 23:58:45) Q. 拡張子 tgz のファイルを展開したいのですが、gtar がみつかりません。 gtar のインストールの仕方を教えてください。 A. gtar とは、GNU の tar ということでしょうか。それならば標準の tar (/usr/bin/tar) が GNU の物です。よってインストールの必要はありません。 中身を見たい時は、 % tar tfz hogehoge.tgz 展開したいときは、 % tar xfz hogehoge.tgz もし仮に GNU の tar がなくても GNU の zcat または、gunzip がインストー ルされていれば、これらのコマンドと tar を組み合わせることで拡張子 tgz のファイルを展開することができます。幸い FreeBSD では、これらのコマン ドも標準で入っています。(GNU の tar は、内部で gunzip を呼び出していま す。) 中身を見たい時は、 % zcat hogehoge.tgz | tar tf - 展開したいときは、 % zcat hogehoge.tgz | tar xf - --- [管理番号 464] (最終更新 2003/11/17 02:28:48) Q. コンソールから root でログインしようとしましたが、パスワードを忘れて しまいログイン出来ません。どうしたら良いでしょうか? A. root のパスワードを忘れてしまうなど言語道断です。手始めに security(7) を読むなどして、ちゃんとセキュリティに関して勉強し、ルートの心を学んで ください。最近ではインターネットに常時接続されるマシンも多くなっていま すから、もし悪意のある攻撃を受けたらひとたまりもないでしょう。これから は絶対に忘れないようにするということで、以下に対処方法を説明します。 まずマシンが動作中であれば、なんとかしてシステムを止めなければなりませ ん。shutdown(8) コマンドや CTRL+ALT+DEL キーが使えれば安全にリブートで きますが、どちらも不可能であれば、sync(8) コマンドを2,3回タイプしてか ら、リセットまたは電源を切るようにしてください。もし sync もできないよ うなら…、神様にお祈りするしかないでしょう。 次にパスワードの変更方法ですが、/etc/ttys で console が `insecure' に 設定されていると、シングルユーザ・モードのシェルが起動される前に、root のパスワード入力を求められてしまいお手あげなので、fixit floppy などを 利用することになります。デフォルトのままなら console は `secure' です ので、シングルユーザ・モードに落して passwd(1) コマンドを使うだけです。 # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure ^^^^^^ ここを確認 1. console が `secure' の場合 (FreeBSD のデフォルト) (1) シングルユーザ・モードに落します。 `shutdown now' でシングルユーザに落します。それができないならリブー トして次のような loader(8) のメッセージが表示されたら、スペースバー を叩いて autoboot を停止させ、コマンドプロンプトから `boot -s' と タイプします。 Hit [Enter] to boot immediately, or any other key for command prompt. Booting [/boot/kernel/kernel] in 7 seconds... FreeBSD 2.2.x では "boot:" の表示が出たら "-s [RET]" と入力します。 (2) "Enter root password, or ^D to go multi-user" と表示される場合は、2. の方法を試してください。 "Enter pathname of shell or RETURN for /bin/sh:" と表示されたら、そのままリターンキーを押して次へ進みます。 (3) 念のためファイルシステムの整合性をチェックします。 # fsck -p システムを強制リセットした場合、ファイルシステムが損傷を受ける可 能性があります。重大な不整合が発見されたとき `fsck -p' はエラーで 終了しますので、エラーが報告されたパーティションに対し、個別に fsck(8) をかける必要があります。 (4) ファイルシステムをマウントします。 # mount -u / # mount -a -t ufs (5) ここで、 # passwd として root のパスワードを設定して下さい。 (6) root のパスワード設定が終わったら # exit して下さい。OS が起動されます。 2. console が `insecure' の場合 要点は別のシステムからブートすることです。その際、厳密に FreeBSD の バージョンが同じでなくともかまいませんが、できるだけ同じものを使うこ とを勧めます。もし、別の HDD, スライスからブート可能であれば、それを 使うのも良いですし、"live filesystem" CD/DVD や fixit floppy を使う のでもかまいません。ここでは fixit floppy を使うものとして説明します。 (1) kern.flp, mfsroot.flp でインストーラを起動し、メニューから Fixit モードに入ります (Main Menu -> Fixit -> Floppy または CDROM)。 マシン構成によっては、kern.flp のカーネルをカスタムカーネルに差し 替えておく必要があるかもしれません。 (2) 必要とするデバイスファイルを作成します。既に /mnt2/dev に存在する なら、それを使ってもかまいません。 # ln -s /mnt2/etc/group /etc # ln -s /mnt2/dev/MAKEDEV /dev # cd /dev && sh MAKEDEV da0s2a FreeBSD のバージョンによっては、MAKEDEV には修正が必要です。これで エラーとなるようなら次のようにしてみてください。 # sed 's%/sbin/mknod%/mnt2/stand/mknod%' /mnt2/dev/MAKEDEV > /dev/MAKEDEV (3) ファイルシステムをマウントします。 # fsck -p /dev/da0s2a || fsck /dev/da0s2a # mount /dev/da0s2a /mnt まずルートパーティションを /mnt にマウントし、/usr パーティション を /mnt/usr へというふうに階層的にマウントしてあげます。fixit.flp では /usr が必要ですが、CDROM が使える場合はルートだけで足ります。 (4) root のパスワードフィールドを空にします。 # vi /mnt/etc/master.passwd root:$1$xxxxx:0:0::0:0:Charlie &:/root:/bin/csh ^^^^^^^^ ここを削除 (5) パスワードデータベースを再構築します。 # ln -s /mnt/usr/lib* /usr # /mnt/usr/sbin/pwd_mkdb -p -d /mnt/etc /mnt/etc/master.passwd fixit.flp には pwd_mkdb(8) が入ってないので、共有ライブラリを準備 してシステムのものを利用します。もし CDROM を使えるときは、単に次 のように実行すれば良いでしょう。 # pwd_mkdb -p -d /mnt/etc /mnt/etc/master.passwd (6) 終了。あとでパスワードを再設定するのを忘れずに。 # reboot --- [管理番号 466] (最終更新 2004/04/09 05:05:47) Q. FreeWnn (Wnn4) または Wnn6 をインストールしたのですが、漢字変換がで きません。何を確認すれば良いでしょうか。 A. まず、jserver が「jserver を動かしたいマシン上で」起動していること を確認してください。 ps -ax などで jserver が存在すれば、jserver は起動しています。動いて いない場合は、Wnn のマニュアルにしたがって jserver を起動してください。 ports&packages からインストールした場合は起動 script が /usr/local/etc/rc.d にインストールされているはずです。 jserver の動作が確認できたら、client の環境設定が正しいかどうか調べ ましょう。 Wnn の client と jserver の通信がうまくゆかず、変換出来ない場合によ く見られる間違いに、jserver の動いている host を指定していないというも のがあります。 ほとんどの Wnn client は default では jserver という名の host で動い ている jserver daemon と通信しようとします。ここで、実際に jserver が 動いている host が jserver という名でなければ通信に失敗してしまい、変 換が行なえません。解決法は以下のいずれかになるでしょう: (a) jserver が動いている host に jserver という別名をつける。 (b) client を起動する時に jserver が動いている host を教える。 (c) client が default で接続しに行く host の名前を変える。 他の原因も考えられますが、ソフトウェアによってかわってきますので、一 概にはいえません。あなたが入力を行ないたいと思っている環境について ドキュメント、QandA、メーリングリスト、その他を検索して調べ、分からな い場合はメーリングリスト、netnews 等で質問して下さい。 kinput2 と kterm の組合せについては [管理番号 356] も御覧下さい。 Jserver と通信出来ない場合の解決法として示されることが最も多いのは (b) ですが、あなたが管理者で、ユーザーにそれを徹底させるのが大変な場合 は (a) または (c) が有効かもしれません。 (a) jserver が動いている host に jserver という別名をつける。 DNS や /etc/hosts 等で jserver という host を設定します。 (b) client を起動する時に jserver が動いている host を教える。 Wnn client には主なもので emacsen で動く たまご(egg、emacs 19 以前)、 eggV4 (emacs 20 相当以降) の他、kinput2、xwnmo、uum、onew 等があり ますが、egg V4 以外に共通して jserver host を指定する方法として 環境変数 JSERVER に jserver の動いている host 名を設定する方法があります。 ほとんどの wnn client はこの環境変数を参照しているはずです (egg V4 の場合は、特に指定しなければ localhost の jserver に接続 するようです)。 あなたの環境に応じて、.login、.cshrc、.profile、.xsession、.xinitrc などで環境変数 JSERVER を設定して下さい。 jserver が localhost で動いている場合は csh 系の shell: setenv JSERVER localhost sh 系の shell: JSERVER=localhost; export JSERVER または export JSERVER=localhost jserver が 動いている host が jserverhost.domain であれば setenv JSERVER jserverhost.domain と記述します。 xdm で login する場合は [管理番号: 454] もご覧下さい。 これ以外に client によって異なった方法で jserver host を指定すること が出来ます。主な例として、egg と kinput2 について例を挙げておきます。 詳しくは各 client の説明 (man、info 等) を御覧下さい。 たまご: egg では set-wnn-host-name 関数を用いて .emacs などから設定すること ができます。 localhost で動いている場合: (set-wnn-host-name "localhost") 他の host (この例では jserverhost.domain) で動いている場合: (set-wnn-host-name "jserverhost.domain") 尚、set-wnn-host-name 関数は指定された host名を jserver-list 変数の 先頭に追加しますので、jserver が動いている host が複数あって、どれに 接続しても良い場合は set-wnn-host-name を複数回実行します。その際、 最初に接続したい host は最後に指定するようにして下さい。 egg V4 については事情が異なりますので、調べてみて下さい。 kinput2: manual に載っているように、jserver が動いている host を option: -jserver resource: Kinput2*CcWnn.jserver 及び Kinput2*CcWnn.jserver2nd で指定する事が出来ます。 例1: % kinput2 -wnn -jserver localhost -ccdef ccdef.kinput2.egg & 例2: .Xdefaults、.Xresources 等に Kinput2*CcWnn.jserver: localhost を追加する。 (c) client が default で接続しに行く host の名前を変える。 jlib を使用する client は、jserver を指定されなければ、起動時に /usr/local/lib/wnn/serverdefs ファイルを参照して接続する host を決定します。 従って、jserver (または他の使用している server) に対応する 2カラム目 の machine name を jserver からお望みの host名に変更すればよいでしょう。 但し、eggV4 のように、jlib を使用していない client についてはその client の設定を変更する必要があります。各 client の説明を参照して下 さい。 --- [管理番号 467] (最終更新 1999/02/17 23:58:45) Q. WIDE-dhcp と qpopper の syslog(3) が、同じ facility "local0" を使っ ているために syslog.conf(5) で local0.* /var/log/dhcp.log としても、dhcp.log に qpopper の syslog が含まれてしまいます。こ れらを違うファイルに分離して保存することはできませんか? A. FreeBSD では syslog.conf が拡張されており、特定のプログラムからの syslog メッセージを取り出して保存することができます。 syslog.conf に以下のような内容を追加して、syslogd(8) に HUP シグナルを 送って syslog.conf を再読み込みさせてください。 (# kill -HUP `cat /var/run/syslog.pid` のようにして行ないます。) !dhcps *.* /var/log/dhcp.log !popper *.* /var/log/popper.log ただし、あらかじめ空の dhcp.log と popper.log というようなファイルを touch(1) コマンドなどで作成しておかないといけません。 --- [管理番号 470] (最終更新 1999/02/17 23:58:45) Q. 98note の内蔵 HDD(SASI) に FreeBSD(98) をインストールしたいのですが、 可能でしょうか? A. 可能です。98Note の内蔵 HDD は、BIOS で SASI に見せかけているだけで 実はIDEなので、FreeBSD(98) で使用することが出来ます。 --- [管理番号 471] (最終更新 2000/12/07 02:40:10) Q. キーボード無し、CRT 無しのマシンで、シリアルポート (COM1) を使用し てコンソール操作をしたいのですが、どうしたら良いのでしょう。 A. FreeBSD ハンドブックの「14.6 シリアルコンソールの設定」を読んでください。 ほとんどの場合、「14.6.2 シリアルコンソールを設定するための 6 ステップ」 を読めばまず成功すると思います。 --- [管理番号 472] (最終更新 2001/08/12 02:51:17) Q. Netscape Navigator/Communicator で、フォームに kinput2 を使って 直接入力はできませんか? また、フォーム内の日本語が正しく表示され ないのですが、なんとかなりませんか? A. ports/packages の ja-netscape をインストールすれば、kinput2 による 直接入力が可能です。 また、フォーム内の日本語表示は、libxpg4-ns というライブラリを インストールすることで、ある程度は対応可能です。 両方とも、この ports を作成された佐田さんのページ で詳しく解説されています。 --- [管理番号 473] (最終更新 1999/07/24 15:02:57) Q. /bin/ls が壊れました。ls の代わりになるコマンドはありませんか? A. /stand/find があります。例えば ls -ls /bin や ls -ld /bin の代わりに /stand/find /bin -ls や /stand/find /bin -type d -ls を試してみましょう。 ほかに、echo *、echo */* のように、シェルの内部コマンドを使う 方法もあります。もし tcsh を使っているのなら、"ls -F" と ほぼ 同じ "ls-F" という組み込みコマンドもあります。 また、こういう時のために、Live CD-ROM というものがあります。 Walnut Creek 製を購入したのであれば 2枚目がそれにあたります。 壊れたコマンドをコピーしましょう。 --- [管理番号 474] (最終更新 2001/04/18 02:12:14) Q. コンソール画面で漢字/日本語が表示できません。 A. IBM PC/AT 互換機のコンソールはそのままでは漢字を表示できません。 ports/packages から kon2 をインストールすれば漢字を表示できます。 原理は DOS/V と同じです。 FreeBSD のバージョンによって、パッケージ名は多少変更されていますが、 現在では以下のどちらかをインストールすれば良いでしょう。どちらを入れて も実体は同じで、設定ファイル (/usr/local/etc/kon.cfg) を編集すれば、 切り換えることが可能です。 1. ja-kon2-16dot (ports/japanese/kon2-14dot) 2. ja-kon2-14dot (ports/japanese/kon2-16dot) --- [管理番号 475] (最終更新 2001/11/17 19:15:35) Q. PDF ファイルを読みたいのですが、どのソフトウェアを使ったらよいので しょうか? A. 以下の方法があります。 1. Adobe から Linux 用の Acrobat Reader が出ているので、Linux の バイナリを実行できる環境を整えて、これを使う。 日本語の PDF ファイルは、acroread-4.0 と ja-acroread-jpnfont-1999.7.20 を ports/packages からインストールして、 からフォントを持ってくることで読めます。 フォントのダウンロード方法は の「Which font pack do you need?」で Language -> 「Japanese」を選択 Platform -> 「UNIX (Acrobat Reader 4.0)」を選択 Nearest FTP -> 「Japan」を選択、そして「Download」ボタンを押す。 次ページで個人情報を入力し、「Regist」を押すと jpnfont.tar.gz というファイルのダウンロードが始まります。 2. xpdf を使って読む。 xpdf (ver 0.80 以降) を X 上で動かせば日本語を表示できます。 フォントは代替表示のためか少しずれるようですが、文章を読む には十分という程度です。PDF ファイルの種類によりますが、 Acrobat Reader よりも xpdf の方が高速に表示できる場合が 多いようです。 ただし、xpdf に付属する PostScript への変換ツール、pdftops(1) は、 (少なくとも ver 0.90 では) 日本語を扱えません。 3. ghostscript の Ver.3 以降を使って読む。 また ghostscript Ver.5 を使うと日本語を含む PDF ファイルを PostScript ファイルに変換することができます。しかし日本語は画像と して表現されているようです。 なお、PDF によっては xpdf では読めるが、ghostscript では読めない、 またはその逆という事もあるようです。 4. java 実行環境(java or jre [1.1.8以降]) と、 Acrobat Viewer for other Java-enabled platforms を使用して、PDF を読み込む方法があります。 後者は、print/acrobatviewer として ports/packages で提供されています。 日本語表示可能であり、Linux 用の Acrobat Reader 同様、日本語を画 像ではなくテキストとして表現しています。 その一方で、とても重たいアプリケーションなので、処理能力が高く、 メモリーが十分あるマシンでないとつらいでしょう。 --- [管理番号 477] (最終更新 1999/02/17 23:58:45) Q. QandA を送りたいのですが、書式は決まっているのでしょうか。 A. はい決まっています。 QandA は、質問の部分とそれに対する回答の部分からなっています。質問部分 の始めは、行の頭のQ. で始めます。.(ピリオド)の後のスペースも必要です。 回答部分の始めは、行の頭のA. で始めます。ここでもピリオドの後のスペー スが必要です。それと Q A . スペースは、いわゆる半角文字である必要があ ります。それから、質問の部分と回答の部分の間には、見やすくするために空 行があった方がいいと思います。 もう一つ重要なことは、QandA を受け付けるアドレスに送る手紙には一つの QandA のみを書いて送るという事です。複数の QandA をつくったときには、 それぞれを別々の手紙にして送ってください。 さらに詳しいことは をどうぞ。 --- [管理番号 478] (最終更新 1999/02/17 23:58:45) Q. FreeBSD-users-jp@jp.FreeBSD.org にメールを出したところ、 ある購読者の方のメールの設定がおかしいらしく、エラーメールが 戻ってきてしまいました。連絡しようにも該当するメールアドレスに メールを出してもメールは届かないと思うのですが、どうしたら よいのでしょうか? A. メールの配送に関するトラブル、質問その他に関しては メーリングリストの管理者にメールで連絡してください。 管理者のアドレスは owner-<メーリングリスト名>@jp.FreeBSD.org です。この質問の場合に owner-freebsd-users-jp@jp.FreeBSD.org になります。 ダイジェスト版と通常配送版は管理者が同じですので、 -digest まで書いても書かなくてもかまいません。 なお、メールの本文は日本語で明確に書いてください。 --- [管理番号 483] (最終更新 1999/02/17 23:58:45) Q. 起動できなくなりました。/bin も壊れたので single user mode でも作業 できません。 A. CD-ROM や ftp サイトの boot.flp (== install FD) と同じところに fixit.flp があります。これを rawrite.exe などで FD に書き込んで fixit FD を作成します。boot FD を入れて起動し menu から Fixit を選ぶと指示が あるので fixit FD と入れ換えます。この状態で最小限の作業ができますので HDD を mount するなりして作業しましょう。いざというときのために boot FD と一緒に fixit FD も作る習慣にすると良いでしょう。 --- [管理番号 484] (最終更新 2001/10/19 21:29:37) Q. FreeBSD のマスコット「デーモン君」の T-Shirts や Polo-Shirts がある、 と聞いたのですが、どうすれば買えるのでしょうか? A. 詳しくは、Walnut Creek の以下の WebPage を見てください。通信販売で購入できます。また、国内では 「ぷらっとホーム」や「ふぁすとばっく」でも扱っているようです。 ちなみに FreeBSD 専用ではありませんが BSD Daemon だと というのもあります。 --- [管理番号 485] (最終更新 1999/07/02 16:24:36) Q. cron でエラーになるんですけど。 A. cron がコマンドを実行するときには、シェル変数や環境変数がほとんど 設定されていません。ですから、手元で確認しているときには存在していた 変数設定がなくてエラーになることがよくあります。たとえば、 xxxx: not found. の場合、PATH の設定が足りないことが多いです。確認してみましょう。 cron で実行されるスクリプトのデバッグを行うには、 % env - sh で、自分の設定をクリアしたシェルを起動して、その上で実行してみると よいでしょう。 --- [管理番号 486] (最終更新 1999/02/17 23:58:45) Q. FreeBSDをインストールしようと bootディスクを作成し、インス トールを始めましたが Booting 0:fd(0,a) kernel@0x?????? text=0x?????? と表示されたあと、いくらか棒が回転した後で Error: D:0x0 C:?? H:?? S:?? が延々と表示されてしまい、reboot するしかありません。 (注意: ? は任意の英数字) A. インストールに使用している floppy disk が物理的に壊れている場合 にこのような現象が発生することがあります。 別の floppy disk を利用してみましょう。 --- [管理番号 487] (最終更新 1999/02/17 23:58:45) Q. プロバイダのメールサーバ経由でメールを送ろうとしているのですが /etc/sendmail.cf: line xx: unknown control line "mailserver.hoge.or.jp" (xx は任意の数字)と言うエラーがでて sendmailが起動しません。 A. /etc/sendmail.cfの記述に誤りがあると思われます。 プロバイダの メールサーバのホスト名を指定する マクロ 'DR' と サーバのホスト名 の間に空白またはタブなどが入っていませんか? 'DRmailserver.hoge.or.jp' という様に 続けて記述します。 --- [管理番号 489] (最終更新 2004/04/09 05:05:23) Q. FreeBSD 上から FAX を送受信するにはどうしたらよいですか? A. FAX を送受信できるソフトウェア (FAX サーバー) をインストールしましょう。 FAX サーバーには,筆者の知る限り以下の3つが存在します。 - hylafax - mgetty+sendfax - efax このうち、mgetty+sendfax だけは、class 1 の FAX モデムに対応していません。 class 2/2.0 は、すべてのソフトによってサポートされています。FreeBSD の ports コレクションには、hylafax と mgetty+sendfax が含まれています。 mgetty+sendfax の ports/packages をインストールすると、自動的に設定スク リプトが実行されるので、質問に答えていけば設定が完了します。受信を行う ためには、/etc/ttys を変更して mgetty を実行する必要があります。また、 Software Design 1997年12月号に、mgetty+sendfax に関する記事があります。 hylafax は、ports/packages からインストールした後、次に何をすべきか表示 されるので指示にしたがってください。やるべきことは、 - /usr/local/sbin/faxsetup を実行する。 - inted に HUP シグナルを送る。 - /etc/ttys を修正し、faxgetty で FAX を受信できるようにする。 - init に HUP シグナルを送る。 - せっかくだから、/usr/local/etc/rc.d/hylafax.sh.sample を hylafax.sh に変更し、実行許可ビットをたてておく。 です。faxsetup ではまりそうなところは、 - なぜか結果が /var/spool/fax/etc/config.cuaa# に反映されないことが ある (自分が悪いのか faxsetup が悪いのか謎)。あとで、エディターで 修正すれば良い。 - hfaxd を inetd から起動するように書き換える。 - ModemClass は FAX モデムプロトコルのクラスではない。したがって、 "Class1" とかではなく、 group名:デバイス名 を正規表現であらわす。 - /usr/local/lib/fax/typerules のバイトオーダーが逆になっているので 頑張って全部または必要な部分だけ修正する。 - 日本語を通すには、 * 日本語の分かる ghostscript をインストールする。このとき tiffg3 か tiffg32d のデバイスを有効にしておく必要がある。 * /usr/local/lib/fax/typerules を書き換え、ascii ファイルの変換 を textfmt ではなく a2ps-j で行うようにする。当然、a2ps-j が インストールされている必要があるが、これも ports/packages にある。 というところです。 --- [管理番号 490] (最終更新 1999/02/17 23:58:45) Q. kermitをインストールしたのですが,マニュアルページにあるckermit.ini などのファイルが見つかりません.どこにあるのですか? A. packagesには含まれていません.また,portsでもこれらのファイルはイン ストールされません.kermitのWWWページである からたどっていくと(What's Available and How to Get It),C-Kermitのソー スとテキストの場所が示されるので,そこから"Text files"を取ってきて展開 してください.その中に含まれています. --- [管理番号 491] (最終更新 1999/02/17 23:58:45) Q. FAXサーバーもkermitも準備して,通信しようとわくわくして実行したので すが,"NO DIALTONE"と言われてしまいました. A. まず 電話回線の配線が正しく接続されているか確認します. 配線が間違っ ていることはよくあることです. また電話回線のケーブルに傷などがないかも チェックしましょう. 一般公衆回線の場合は,モデムのマニュアルを良く読んでみましょう.おそ らくモデムのメーカーかNTTに相談ということになると思います. 一般公衆回線ではなくPBXなどを経由する回線の場合(ホームテレホンなどを 含む)は,仕様が一般公衆回線と異なる場合があるのでそれが原因である可能 性があります. PBXなどを経由した構内回線に接続する場合は,必ず回線の電気的仕様が一 般公衆回線と同一かどうか確認してください.異なる場合は,モデムを使用可 能かどうか必ず確かめてから接続してください. 構内回線に直接接続できる場合,モデムを接続する前に市販の電話器などを 接続し, 受話器から聞こえる音を聞いてみましょう. 'プー' という音が聞こ えることを確認してください. (公衆電話で カードまたはコインを入れた後に 聞こえる音と同じ音であることを確認します) この 'プー' という音がダイア ルトーン (DIALTONE)と呼ばれています. このあとモデムを接続します. もし 'プー' という ダイアルトーンが聞こえない、または 違う音がする場 合には ダイアルトーンの検出を無効にすると解決するでしょう. モデムには 以下のコマンドをダイヤルする前に送ります. ATX3 ATコマンドについて 詳しくは モデム等のマニュアルを読んで確認してくだ さい. --- [管理番号 492] (最終更新 2004/04/09 05:05:18) Q. FreeBSD などの BSD 系の OS で、「daemon」や「daemon process」という 名前をよく聞くのですが、daemon とは何ですか? A. 真夜中に FreeBSD を使っていると、何もしてなくてもハードディスクが カリカリ鳴る体験をしたことがないですか? FreeBSD は default の設定 だと cron が、(install 後設定を変更していなければ) 真夜中に /etc/periodic/daily ディレクトリ下の実行ファイルを起動して、システム のチェックを自動的に行なってくれます。この cron のように、人知れず いろいろ重要な処理をしてくれるプロセスのことを、BSD 系の OS では 「daemon process」と呼んでいます。 辞書では、 daemon : (ギリシャ神話の)ダイモン、守護神 demon : 悪魔、鬼 となっています。このように、BSD 系の OS では、 「daemon == (人知れず仕事をしてくれる、便利な)小人さん」 というような意味で用いられています。決して、「daemon == demon」ではあ りません。さらに詳しく知りたい人は、 や、 Eric S. Raymond: "The New Hacker's Dictionary" 福崎俊博訳: 『ハッカーズ大辞典』、アスキー出版局、ISBN4-7561-0374-X を見てください。 # 「ゾンビ」なんてのもあるんですよ :) 自分のマシンで、どんな daemon process が動いているかを知るには、 % ps -ax してみてるといいでしょう。この表示中の、(pagedaemon), (vmdaemon), syslogd や getty などが daemon process です。 --- [管理番号 494] (最終更新 1999/02/17 23:58:45) Q. 2.2.5-RELEASEのpackagesのlynxが、コンソールではカラーで表示できます が、kterm 上では白黒でしか表示されません。 A. 環境変数 TERM に xterm-color をセットしてください。 csh系の場合は以下の様に入力します。 setenv TERM xterm-color これで、カラーで表示されます。 --- [管理番号 496] (最終更新 1999/02/17 23:58:45) Q. Xクライアントの設定を変更しようと /usr/X11R6/lib/X11/app-defaults/???? を編集したのですが 反映されない。 A. $HOME/.Xresourcesや $HOME/.Xdefaults で同じ項目を設定していませんか? そちらの方が優先されます。 X Window System 管理ガイド - O'Reillyによれば、 X11においてリソースを読む順番は、以下の様になっています。 1. システムデフォルトのリソース 例えば/usr/X11R6/lib/X11/app-defaults/XXXXX 2. $HOME/XXXXXで指定されたクライアント固有のリソース 3. $HOME/.Xdefaults-ホスト名 で指定されたホスト固有のリソース 4. xrdbでリソースデータベースに直接格納されたリソース 5. xrdbでリソースデータベースに直接格納されたリソースがない場合、 $HOME/.Xdefaultsで設定されたリソース 6. -xrmオプションを使用してコマンドラインで指定されたリソース の順番で読み込まれ、後にある定義がそれ以前の定義よりも優先される。 --- [管理番号 497] (最終更新 2002/02/14 00:39:59) Q. 巨大なメールを受け取れません。root 宛にそれに関するエラー報告のメー ルはありません。 A. /var/tmp (FreeBSD 4.1.1-RELEASE以降) や、 /tmp (FreeBSD 4.1-RELEASE以前)が あるファイルシステムの空き容量が少ないときに起こります。mail.local(8) コマンドがこれらのディレクトリにテンポラリファイルを作ろうとして 失敗するためです。 root に報告が行かないのはエラー報告メールも容量制限を 越えるためです。 --- [管理番号 498] (最終更新 1999/02/17 23:58:45) Q. 生成されて 3日未満のファイルとか、3日を越えてアクセスされてないファ イルの一覧を findコマンドで表示させたいのですが、オプションの指定の 方法がわかりません。 find /path -ctime 3 -print などと実行すると ちょうど 3日のファイルしか表示できません。どうすれば、 3日未満や 3日を越えるファイルを表示できますか。 A. find(1) の -ctime や -atime の n 日の日付指定は、「ちょうど n 日」 であり「n 日を越える」や「n 日未満」ではありません。 「n 日を越える」ならば、+n 「n 日未満」ならば、-n と +- をつけて指定してみましょう。 ちなみに、/path 以下の 3 日を越えてアクセスしていないファイルを表示する には、 find /path -atime +3 -print とします。 -delete オプションを使うと一括削除されます。うっかり必要なファイルを 消去したりしないように十分注意しましょう。 --- [管理番号 499] (最終更新 1999/02/17 23:58:45) Q. ThinkPad 760EでFreeBSD上からからハイバネーションを使用するにはどう したらよいでしょうか. A. PC DOS,Windows 3.1,Windows 95,Windows NTまたは OS/2 Warp のいず れかを内蔵ドライブにFATで インストールしておく必要があります.すなわち, ハードディスクすべてをFreeBSDで使用してしまったり, FATがない場合 (Windows NTを NTFSのみ, OS/2 Warp を HPFSのみ),ハイバネーションを使用 することはできません. 上記のOSのいずれかがインストールしてあれば,ThinkPad機能設定プログラ ムでハイバネーションファイルを有効にすれば,FreeBSD上からもハイバネー ションを使用することができます. ただし,ハイバネーションファイルの大きさは,実メモリサイズ + 1MBにな るので,ディスクに十分なスペースが存在しなければなりません. --- [管理番号 500] (最終更新 1999/02/17 23:58:45) Q. ThinkPad 760でAccelerated-X LX laptop server Version 4.0を使おうと したところ,`ThinkPad 760XD'と`Trident Cyber9385/2M'の2つが見つかりま した.このどちらを使えば良いのでしょうか. A. 実体は同じです.どちらでもかまいません. --- [管理番号 501] (最終更新 1999/02/17 23:58:45) Q. ThinkPad 760E で Accelerated-X LX laptop server version 4.0 を使っ ています。X を終了してコンソールに戻ると、表示サイズが 1024x480 ドット になってしまいます。 A. Xi Graphics では ThinkPad 760XD でのみテストを行っていて、ThinkPad 760E の症状は再現できないそうです。もし自分の ThinkPad 760E を Xi Graphics に送っても良いという方がいたら、直接コンタクトをとってみて ください。とりあえずの対処としては、Fn+F7 キーで画面出力を切り替えると もとの 640x480に戻ります。 --- [管理番号 502] (最終更新 1999/02/17 23:58:45) Q. root に対する r コマンドを有効にしたくて /.rhosts ファイルを作成し たのですが、どうしてもうまくいきません。SunOS 等ではうまくいくのですが… A. root のホームディレクトリは、SunOS では / ですが、FreeBSD では /root ですので、root の .rhosts ファイルは /.rhosts ではなくて /root/.rhosts です。 --- [管理番号 503] (最終更新 2004/04/09 05:05:59) Q. ファイルを暗号化したいのですが、どうすればいいですか? A. FreeBSD に標準で含まれる OpenSSL を使うとよいでしょう。 plain.txt を AES 256 ビットで暗号化し、crypted に出力する には以下のようにします。 % openssl enc -e -aes256 -in plain.txt -out crypted.dat enter aes-256-cbc encryption password: (鍵を入力) Verifying - enter aes-256-cbc encryption password: (確認のためもう一度鍵を入力) 復号化する場合は以下のようにします。 % openssl enc -d -aes256 -in crypted.dat -out plain-decrypted.txt enter aes-256-cbc decryption password: (暗号化の際に使用した鍵を入力) AES 256 ビットでなく、DES で暗号化します。 % openssl enc -e -des -in plain.txt -out crypted.dat OpenSSL で使用可能な暗号は enc(1) を参照してください。よく わからなければ、AES を使っておきましょう。2004 年現在では、 安全性・速度などを考えると、AES が最もバランスのよい暗号で あると考えられています。 なお、crypt(1)・bdes(1) という古いコマンドもありますが、 特に使用する必要はないでしょう。 --- [管理番号 504] (最終更新 1999/02/17 23:58:45) Q. 半角カナを全角カナに変換する FreeBSD 上のツールってありますか? A. nkf、ack、kc などがあります。それぞれオプションをつけることにより変 換のコードを変えることができます。詳しくは、マニュアルを読んで下さい。 これらのツールは、たいてい、入力のコードを自動的に判定し、指定したコー ドに変換し出力してくれてとても便利です。しかし、ときどき、入力コードの 判定に失敗することがあるので注意しましょう。この場合、出力におかしなコー ドが混入して文字が化けたりします。入力ファイルのコードが判っているなら ば、それを明示的に指定するとよりよい結果が得られるようです。 たとえば、nkf で質問の操作をしてみましょう。半角カナのあるファイルが SJIS だと判っていて、出力を EUC にしたければ、 nkf -Se in > out のようになります。オプションの "-S" が入力が SJIS であることを、"-e" が出力を EUC にすることを指定しています。 特に指定しない限り nkf は半角カナ (X0201) を全角カナ (X0208) に変換し ます。 上記で言っている「半角カナ」は、JIS X0201 で規定されている、1 バイトで 表現されるカタカナのことです。NEC PC-9801/PC-9821 などは、メーカ独自拡 張文字として 2 バイトで表現される半角カタカナのフォントが漢字フォント ROM に入っていますが、このような文字は nkf の処理対象ではありません。 また、メーカ独自拡張文字は利用すべきではありません。 --- [管理番号 505] (最終更新 1999/02/17 23:58:45) Q. QandA@jp.FreeBSD.org に質問を送ったのに返事がありません。 A. どこで QandA のアドレスをお聞きになったか存じませんが QandA は皆様 からの質問を受け付ける窓口ではありません。 QandA では「よくある質問や自分がはまった点をどう解決したか」という 質問とその答えをセットにしたものを募集しています。 単なる質問は をよく読んで FreeBSD のメーリングリスト (FreeBSD-users-jp) や NetNews などで質問 してください。 --- [管理番号 506] (最終更新 2002/02/14 00:39:59) Q. FreeBSD でテレビ電話やテレビ会議をする方法はありませんか? A. 画像送受信ツール(vic や nv など)と音声送受信ツール(vat や tel など)を組み 合わせれば可能です。 vic と vat は ports/packages に含まれています。 関連して、 FAQ IP multicast を有効にするには? HandBook サウンド [管理番号 507] FreeBSDでビデオキャプチャボードは使えますか? [管理番号 508] FreeBSDで音声入力したいのですがどうすればいいですか? を参照してください。 --- [管理番号 507] (最終更新 2002/02/14 00:39:59) Q. FreeBSD でビデオキャプチャボードは使えますか? A. FreeBSD でサポートされているものとして、以下のものがあります。 (1) CORTEX-I frame grabber (2) Video spigot (3) Matrox Meteor frame grabber (4) QuickCam (5) BT848/BT848A/BT849/BT878/BT879の載ったボード 現在開発中のものとして以下のものがあります。 (6) IEEE1394 (FireWire, i.LINK) を使った DVキャプチャ 日本国内で研究用に FreeBSD 用のドライバーも提供されている商品として、 以下のものがあります。 (7) Argocraft capture board PAO でサポートされているものとして、以下のものがあります。 (8)IBM Smart Capture Card(SCC, 含むSCC2) 下記の URL も参考にしてください。 現時点では、ビデオカードに附属したキャプチャ機能に対応する FreeBSD 用 のドライバーはありません。 --- [管理番号 508] (最終更新 2004/04/09 05:05:59) Q. FreeBSDで音声入力したいのですがどうすればいいですか? A. 音声入力するためにはサウンドカードと対応するドライバーが必要です。 ハンドブックのサウンドの節や、 pcm(4) を参照してください。 音声送受信するなら全二重対応のサウンドカードを使った方がいいでしょう。 商用ソフトウェアとして OSS/FreeBSD(Open Sound System for FreeBSD) がありますのでこちらも 参考にしてください。 --- [管理番号 509] (最終更新 2000/05/24 21:07:45) Q. Xlib を用いた C プログラムをコンパイルすると % cc file.c -lX11 file.c:1: X11/Xlib.h: No such file or directory file.c:2: X11/Xutil.h: No such file or directory と、エラーになってしまいます。 A. そのソースコードには #include #include と書いてあるはずですが、このファイルが見付からなかったということです。 #include 命令で インクルードされるファイルの指定には "" で囲む方法 と <> で囲む方法の2通りがあります。 C コンパイラ (正確にはプリプロセッサ) は #include "file.h" と書いてあった場合、インクルードファイルを ソースファイルと同じ ディレクトリの中から探し、もし見付からなければ次に標準のディレクトリ から探します。 一方、 #include と書いてあった場合は、ソースファイルと同じディレクトリは探さずに、 最初から標準のディレクトリだけを探します。 通常 標準のディレクトリは、/usr/include/ になっていますので、 /usr/include/X11/Xlib.h や /usr/include/X11/Xutil.h が存在しないため 上記のエラーが発生したのです。 X11/Xlib.h や X11/Xutil.h などの X の include ファイルは /usr/X11R6/include/ に置いてあるため、この問題を回避するには コンパイラが /usr/X11R6/include/ を探すようにすればいいわけです。 以下に示す解決策のうち、いずれかを選んで下さい。 1. -I オプションで、インクルードファイルが置いてあるディレクトリを 指定できます。コマンドラインからは、 % cc file.c -I /usr/X11R6/include などと入力します。この例では、標準のディレクトリである /usr/include と、-I で指定した /usr/X11R6/include から インクルードファイルを探します。 ただし、最終的にリンク時にライブラリが見付からないというエラーに なるでしょうから、 % cc file.c -I /usr/X11R6/include -lX11 -L /usr/X11R6/lib としなければいけません。→[管理番号 1609] 2. imake/xmkmf (Imakefile というファイルがある場合) や autoconf (configure というファイルがある場合) などの、Makefile を自動的に 生成するツールを使っているものは、インクルードファイルの検索対象 ディレクトリを指定するためのオプションが用意されていることが 多いです。それぞれのプログラムに付属するドキュメントをよく読んで みましょう。 --- [管理番号 510] (最終更新 1999/03/01 17:08:20) Q. netatalk-1.4b2 の papd で作った疑似 LaserWriter に Macintosh から印刷 しようとすると、プリントモニタがタイプ4のエラーで強制終了してしまいます。 A. MacOS8 に付属の LaserWriter 8.4.3 は、papd と相性が悪いようです。古 いバージョンの MacOS に付属のLaserWriter 8.2、および本 QandA 執筆時点 で最新の LaserWriter 8.5.1 では、正常に動作することが確認されています。 で、これらのファイルを探してみて下さい。 --- [管理番号 511] (最終更新 1999/02/17 23:58:45) Q. 受信したメールで、行頭の '.' が '..' になってしまうことがあります。 なぜですか。 A. 古いメールソフトには、行頭の '.' が '..' になってしまうものがあります。 この場合、新しい版のものにするか、別のメールソフトにしましょう。古い fetchmail でも発生すると聞いています。 sendmail がメールの本文を送信するとき、本文の終りを示すために、'.' を 使います。本文中に '.' があるとき、本文の終りだと誤認されないために、 '..' へ変換してから送信します。 受信する側は '..' を '.' へ変換して受信 することになっています。この変換がうまくできないソフトだと、メールが途中 で切れたり(聞いたことがないけど可能性があります)、'.' が '..' になってし まいます。ご質問のトラブルは、後者の現象が出たものですね。 なお、fetchmail-4.3.1 (2.2.5-RELEASEのports/packagesではこのバージョンで す)で試したところでは、大丈夫のようです。 --- [管理番号 512] (最終更新 2002/10/21 05:19:40) Q. FreeBSD(98)2.2.5R 以降、FreeBSD(98) の公開版は FreeBSD(98)2.2.5R-Rev01 というようなリビジョンの付け方になっていますが、以前の-ALPHA, -BETA, -RELEASE という表記と、-Rev 表記の対応関係はどうなっているのでしょうか? A. 対応関係はありません。 FreeBSD 2.1.0 位までは、移植チーム内で十分テストが行われて来たので、 ALPHA, BETA, RELEASE という名前がそれなりに意味を持っていました。その後、 (1) 本家に PC98 版のソースが取り込まれた (2) FreeBSD98-testers ML でテストを行うようになった (3) 配布物を作成する人の時間的制限 などの理由により、-ALPHA という名前が付けられていても、一般的な環境におい ては問題無く使用する事ができるようになって来ています。ですが、今まで通り の慣例でいくと、 (1) 更に (-BETA,) -RELEASE と出さなければならない (2) -RELEASE を出した後にバグが見付かったり、バグを直したい時、 次のリビジョン名をどうするのか、という問題が生じる という欠点があるため、2.2.5R 以降、Rev01, Rev02....というように、公開した 順番をゼロサプラスなし十進数二桁で表すという形式となりました。 --- [管理番号 513] (最終更新 1999/02/17 23:58:45) Q. FreeBSD(98)の公開版は、リビジョンがいくつに上がるまで待てば、安定した とみていいのですか? A. 現在では、一般公開されているバージョンならば、たとえRev01でも安定して いると思って間違いないでしょう。 --- [管理番号 514] (最終更新 2002/02/03 13:12:18) Q. FreeBSD をインストールしたいんですが、ブートマネージャは HDD に書き込み たくありません。HDD の MBR を変更せずに FreeBSD を boot できるようにす る方法はありませんか? A. インストールフロッピー (3.0-RELEASE 以降なら kern.flp、それより前なら boot.flp) が使えます。 まず最初に FreeBSD をインストールしますが、そのときブートマネージャ (Boot Manager) を MBR に書き込むかどうかの問い合わせに `None' を選択し ます。そしてインストール終了後、もう一度上記のフロッピーをドライブに セットして reboot しますが、そのままでは loader(8) が読み込まれてしまい ますので、すかさず Enter 以外のキーを打ちます。すると次の樣なプロンプト が表示されます (FreeBSD 2.2.x では何もしなくても同様の状態になります)。 >> FreeBSD/i386 BOOT Default: 0:fd(0,a)/boot/loader boot: ここで、`ad(0,a)' などとタイプすれば HDD から FreeBSD を起動することが できますが、FreeBSD をインストールした HDD によって以下のように指定し ます。 ad(0,a) IDE の Primary Master 1:ad(2,a) IDE 二台で Secondary Master da(1,a) SCSI だけのシステムで二台目の HDD 1:da(0,a) IDE + SCSI で SCSI HDD より一般的には、 :(,a) という形式で、 BIOS から見たディスクの番号。最初のドライブは `0'。 コントローラを指定します。 IDE … 4.0-RELEASE 以降 `ad'、それより前では `wd' SCSI … 3.0-RELEASE 以降 `da'、それより前では `sd' コントローラ上のドライブのユニット番号。 +-------------------------------+----------------------+ | IDE | SCSI | +---------------+---------------+----------------------+ | Primary | Secondary | | | Master Slave | Master Slave | 見付けた順に 0,1,2… | | 0 1 | 2 3 | | +---------------+---------------+----------------------+ /boot/loader または /kernel ですが、通常は省略できます。 詳しくは boot(8) を参照してください。日本語訳を次の URL でも読むことが できます。 これで HDD からのブートに成功したら、いちいち入力する手間を省くために [管理番号 88] の設定を行ないます。 --- [管理番号 515] (最終更新 1999/02/17 23:58:45) Q. ThinkPad 535 で Fn+* のキーが刻印通りに使うことができません。 PC DOS J7/V などを使っているときはちゃんと動作しています。 A. ThinkPad 535の場合、起動時に sc0 のデバイスで キーボードをリセット しているのが原因だと思われます。リセットをしない様に修正すると Fn+* が 刻印通りに使える様になるという報告があります。 なお、Fn+F3 でサスペンドする様にするには apm に対してパッチ修正する必 要があります。 FreeBSD 2.2.5-RELEASE 以降を使っているときは以下の例の様に sc0 デバイ スに flags 0x20 を追加します。 # syscons is the default console driver, resembling an SCO console device sc0 at isa? port "IO_KBD" tty irq 1 flags 0x20 vector scintr FreeBSD 2.2.2-RELEASE やそれ以前の場合このフラグが定義されていませんか ら、/sys/i386/isa/syscons.c を修正 (以下のパッチを当てる) してから sc0 デバイスに flags 0x20 を追加します。 以下のパッチは 2.2.2-RELEASE に 2.2.5-RELEASE の該当する部分をマージし たものです。 --- /sys/i386/isa/syscons.c.orig Fri Jan 16 10:01:30 1998 +++ /sys/i386/isa/syscons.c Fri Jan 16 10:00:25 1998 @@ -369,6 +369,19 @@ printf("sc%d: keyboard scancode set %d\n", dev->id_unit, codeset); #endif /* DETECT_XT_KEYBOARD */ + if ( dev->id_flags & NORESET_KBD ) { + write_kbd_command(sc_kbdc, KBDC_ECHO); + printf ("sc%d: Noreset for keyboard.\n", dev->id_unit ); + + if (read_kbd_data(sc_kbdc) != KBDC_ECHO) { + empty_both_buffers(sc_kbdc, 10 ); + test_controller(sc_kbdc); + test_kbd_port(sc_kbdc); + if (bootverbose) + printf("sc%d: failed to get response from the keyboard.\n", dev->id_unit); + goto fail; + } + } else { /* reset keyboard hardware */ if (!reset_kbd(sc_kbdc)) { /* KEYBOARD ERROR @@ -390,6 +403,7 @@ printf("sc%d: failed to reset the keyboard.\n", dev->id_unit); goto fail; } + } /* * Allow us to set the XT_KEYBD flag in UserConfig so that keyboards --- /sys/i386/isa/syscons.h.orig Wed Jan 14 17:20:21 1998 +++ /sys/i386/isa/syscons.h Fri Jan 16 09:52:57 1998 @@ -71,6 +71,7 @@ #define CHAR_CURSOR 0x00004 #define DETECT_KBD 0x00008 #define XT_KEYBD 0x00010 +#define NORESET_KBD 0x00020 /* attribute flags */ #define NORMAL_ATTR 0x00 --- [管理番号 518] (最終更新 1999/02/17 23:58:45) Q. dump(8) を、 # /sbin/dump 0afu /dev/nrst0 /dev/wd0 のようにテープドライブに実行すると、途中のメッセージやドライブの音から は、ちゃんと dump はできているようですが、 DUMP: DUMP IS DONE のメッセージの後、テープを取り出してみるとテープの位置がまったく最初の ままです。nrst0 (no rewind) とやっているので実行後に巻き戻らないはずだ と思います。 A. テープを取り出す際に巻戻すのはドライブの仕様です。"no rewind" は 「close(2) 時に巻き戻さない」という意味です。 --- [管理番号 520] (最終更新 1999/02/17 23:58:45) Q. X のクライアントを多数起動しようとすると、 Xlib: Maximum number of clients reached と言われるのですが、この Maximum number を増やす方法はないでしょうか? なお、この状態からでも非 X のプロセスは起動可能です。 [FreeBSD 2.2.5R + XFree86 3.3.1] A. kernel configuration や /etc/login.conf を変更しただけでは、X のク ライアント最大数を増やす事はできません。xc/programs/Xserver/os/osdep.h で定義される MAXSOCKS の値で制限されているからです。 MAXSOCKS の値は sys/syslimits.h で定義されている OPEN_MAX の値を基準に、 #if OPEN_MAX <= 128 #define MAXSOCKS (OPEN_MAX - 1) #else #define MAXSOCKS 128 #endif と決定されるので、OPEN_MAX か、あるいは MAXSOCKS そのものを増やすよう にそれぞれが定義されているヘッダファイルを変更し、その後 X Window System をソースから build/install する事で解決します。 X をソースから build/install しない解決策としては、Xnest を使用する方 法があります。詳細は man Xnest を御覧下さい。 --- [管理番号 521] (最終更新 1999/02/17 23:58:45) Q. FreeBSD 2.2.5-RELEASE を使っているのですが、ブート時に cannot alloc 5519969 bytes for typemap /dev/rccd0e: CAN'T CHECK FILE SYSTEM. /dev/rccd0e: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. と出て、シングルユーザモードになってしまいます。どうしてでしょうか? A. /etc/rc から起動されるプロセスは、login class が daemon になるので すが、FreeBSD 2.2.5 の /etc/login.conf は、daemon の datasize が 32M しかないので、大容量のディスクを fsck しようとすると、malloc に失敗す る事があります (12GB の HDD でそうなりました)。 daemon の datasize を infinity にするか、2.2-STABLE の /etc/login.conf に置き換えると解決するでしょう。 --- [管理番号 522] (最終更新 2000/01/20 19:45:27) Q. MP3 (MPEG audio layer3) データのデコード (再生)・エンコードを 行うソフトはありますか? A. プレイヤーは、mpg123、xmms、amp、x11amp、splay などがあります。 FreeBSD 3.3-RELEASE では、全て ports/packages が作成されています。 GUI を持つのは xmms と x11amp のみで、その他は CUI ですが、Tcl/Tk や GTK+ で書かれた GUI な frontend が多数用意されています。 を参照して下さい。 MP3 エンコーダは、特許の関係から、完全にフリーなのは ISO が作ったもの (dist10) のみです。そのため、その他のソフトは dist10 を元に作成されて います。 この dist10 は、FreeBSD では mp3encode というパッケージ名で用意されて います。この他に dist10 を元にしたものとして、gogo (午後のこ〜だ)、 lame、bladeenc があり、FreeBSD 3.3-RELEASE では 全て ports/package 化 されています。 ちなみに、FreeBSD2.2.7-RELEASE + Celeron 233MHz で、52MB の WAVE ファイルの エンコード時間を計ったところ、 mp3encode (dist10) 32分 2秒 bladeenc-0.76 12分58秒 lame-3.51 4分50秒 gogo-222c 2分22秒 となりました。厳密な計測ではないので、参考程度にとどめて下さい。 音質については、どなたか聞き比べてレポートして下さい :-) --- [管理番号 523] (最終更新 1999/02/17 23:58:45) Q. XFree86 で、X が Ctrl+Alt+Backspace しても終わらないようにするには どうしたらいいのでしょうか? A. XF86Config ファイルに以下のセクションを追加します。 Section "ServerFlags" DontZap EndSection これで、次回 X 起動後から設定が有効になります。詳しくは XFree86(1) お よび XF86Config(4/5) を参照してください。 --- [管理番号 524] (最終更新 1999/02/17 23:58:45) Q. POP3 Server に正常にアクセスできません。 % telnet POPSERVER pop3 としたところ、次のメッセージが返って来ました。 -ERR System error, can't open temporary file, do you own it? A. 次のような解決策があります。 A1. popper を port/package を使って導入する。 例えば 2.2.5-RELEASE では qpopper-2.4b2 の port/package が用意されています。 A2. /var/mail の permission を変更する。 % su # chmod 1777 /var/mail のようにして working file が作成されるようにします。 A3. あらかじめ working file を作っておく。 user の名前が USER、所属 group が GROUP だとして、 % su # cd /var/mail # touch .USER.pop # chown USER:GROUP .USER.pop # chmod 600 .USER.pop という風にします。 A4. popper用のアカウント``pop''をbinグループに所属させる。 A5. qpopper をつかわないで、imap4 についてる pop server を使う。 A6. mbox 形式に見切りをつけ qmail に(以下略) --- [管理番号 526] (最終更新 1999/02/17 23:58:45) Q. login shell を csh から bash に変えたのですが、環境変数や path の設 定がおかしくなってしまいました。なぜですか? A. まず、うかつに shell を変えるべきではありません。 csh と bash は確かに「shell」という大きな仲間に属しますが、shell コマ ンドの構文や初期設定に使われる shell スクリプトのファイル名が全く違い ます。このため、shell を変える場合には初期設定ファイルを全て直す覚悟が 必要です。新旧の shell の manpage をよく読んでから入れ替えましょう。 ちなみに、shell にはおおまかにわけて二つの系統が存在します。 /bin/sh の子孫: sh (bourne shell, bsh), bash(bourne-again shell) /bin/csh の子孫: csh(c shell) tcsh おなじ系統に属する shell にはある程度の互換性があるため、おなじ系統内 での shell の変更は簡単である場合が多いです。もちろん、完全な互換性が あるわけではないので、よく確認しなければなりません。 --- [管理番号 527] (最終更新 2001/10/19 21:29:33) Q. DMA を使用する ISA サウンドカードやフロッピードライブなどを BOUNCE_BUFFERS オプションを外したカーネルで使用することはできますか? A. できます。 BOUNCE_BUFFERS オプションは実装メモリ 16MB 以上のマシンでISA バスマス タな SCSI カードを使用する場合に限り必要なものです。それ以外の DMA デ バイスは別のバウンス・バッファ機構を利用しているため、BOUNCE_BUFFERS オプションを外したカーネルでも ISA サウンドカードやフロッピーの使用に は何の問題もありません。 --- [管理番号 528] (最終更新 1999/02/17 23:58:45) Q. login shell の変更のため /etc/passwd を編集したい。 A. /etc/passwd は vi などのエディタで直接編集してはいけません。 chpass(1) や vipw(8) を使いましょう。 --- [管理番号 530] (最終更新 1999/02/17 23:58:45) Q. メモリを 16MB 以上実装しています。カーネルに BOUNCE_BUFFERS オプショ ンを指定しておく必要がありますか? A. ISA バスマスタな SCSI カードを使用しないのであれば、BOUNCE_BUFFERS オプションを指定する必要はありません。必要もないのに BOUNCE_BUFFERS オ プションを指定していると、実装メモリ 64MB あたり 1MB を無駄にすること になりますので、できれば外しておいた方がよいでしょう。 --- [管理番号 532] (最終更新 1999/02/17 23:58:45) Q. メモリをたくさん使ったり fork しまくる daemon などがうまく動作しま せん。 A. 標準では resource limits が低い値に抑えられているため、多量の資源を 消費するプロセスはそのままでは動作しないことがあります。 一般ユーザー権限で起動する場合には limits(1) を使って制限を緩めるのが 普通ですが、対象が daemon などのシステムプロセスで、かつ、2.2.5-RELEASE 以降の場合、/etc/login.conf を適切に記述することで対処できます。 (2.2.2-RELEASE の場合、/etc/rc 実行時は login.conf を参照しないようです。) また、一般ユーザーのデフォルトの resource limits の変更も、login.conf で行うことができます。 login.conf の記述については、 管理番号: 533 を参照してください。 login.conf が使えない場合は、/etc/rc に limits(1) を直接書き込むなり、 limits(1) してから目的のプロセスを呼び出す shell script を書くなりして 対処してください。 --- [管理番号 533] (最終更新 1999/02/17 23:58:45) Q. resource limits を緩めるには、login.conf をどう書けばいいですか。 A. まず、/etc/login.conf が使えるのは 2.2.2-RELEASE 以降のバージョンです。 2.2.5-RELEASE 以降の場合は元から /etc/login.conf が存在していますが、 2.2.2-RELEASE の場合には、初めに以下の手順で login.conf を準備する必要 があります。 | usr/src/etc(2.2.2-RELEASE/src/setc.aa)を展開してlogin.conf | を/etcにコピーします。 次に /etc/login.conf を編集して、値を変更します。メモリをたくさん使い たい場合には datasize(-cur)= の項目を、プロセス数を増やしたい場合は maxproc(-cur)= の項目を、それぞれ増やします (または infinity にします)。 詳しい解説は、login.conf(5) 及び passwd(5) を参照してください。 なお 2.2.5-RELEASE 以降では、/etc/rc 実行中は login class が daemon に なっています (rootではありません) ので注意してください。2.2.2-RELEASE の場合は、そもそも login.conf を見にいかないようです。 最後に、変更した login.conf からデータベースを作成します。 | # cap_mkdb /etc/login.conf --- [管理番号 534] (最終更新 1999/02/17 23:58:45) Q. Ultra WIDE な Disk を繋いでいますが、FreeBSD がその Disk を Ultra SCSI もしくは Ultra WIDE のどちらで認識しているのか知る方法はありませ んか? A. これらのメッセージは boot 時に表示されます。 SCSI ドライバルーチンの中で表示していますので、使っている SCSI コント ローラごとに表示が異なります。 たとえば、ncr の SCSI コントローラ chip を使ったカードの場合 (Tekram DC-390F など) は詳細に表示してくれます。 ncr0 rev 3 int a irq 11 on pci0:11 (ncr0:0:0): "IBM DORS-32160 WA6A" type 0 fixed SCSI 2 sd0(ncr0:0:0): Direct-Access sd0(ncr0:0:0): 20.0 MB/s (50 ns, offset 15) 2063MB (4226725 512 byte sectors) (ncr0:1:0): "IBM DCAS-34330W S65A" type 0 fixed SCSI 2 sd1(ncr0:1:0): Direct-Access sd1(ncr0:1:0): WIDE SCSI (16 bit) enabled sd1(ncr0:1:0): 40.0 MB/s (50 ns, offset 15) 4134MB (8467200 512 byte sectors) ncr0:0:0 にある sd0 (2063MB) のほうは 20.0 MB/s ですので Ultra SCSI と して認識されています。 ncr0:1:0 にある sd1 (4134MB) のほうは WIDE SCSI (16 bit) と表示され、 40.0 MB/s ですので Ultra WIDE SCSIとして認識されています。 一方、Adaptec aic7880 などの SCSI コントローラ chip を使ったカードの場 合 (Adaptec AHA-2940UW など) は boot の時には表示してくれません。 (ahc0:0:0): "IBM DCAS-34330W S65A" type 0 fixed SCSI 2 sd0(ahc0:0:0): Direct-Access 4134MB (8467200 512 byte sectors) boot のときに -v を指定すると詳細に表示してくれます。 ahc0 rev 0 int a irq 11 on pci0:12 ahc0: Probing channel A ahc0: target 0 using 16Bit transfers ahc0: target 0 synchronous at 20.0MHz, offset = 0x8 (ahc0:0:0): "IBM DCAS-34330W S65A" type 0 fixed SCSI 2 sd0(ahc0:0:0): Direct-Access 4134MB (8467200 512 byte sectors) 「ahc0: target ? using 16Bit transfers」 これで WIDE であることがわかります。 「ahc0: target ? synchronous at 20.0MHz」 これで Ultra であることがわかります。 この二つから該当ディスクが Ultra WIDE であることがわかります。 --- [管理番号 535] (最終更新 1999/02/17 23:58:45) Q. FreeBSD で動く Disk の転送速度を測るベンチマークソフトはどんなもの がありますか? A. iozone と bonnie というプログラムがあります。どちらも ports/packages が用意されています。 --- [管理番号 536] (最終更新 1999/02/17 23:58:45) Q. X で DPMS を使いたい。 A. XFree86 3.3 以降でしたら以下のようにして使う事ができます。 % xset dpms StandbyTime SuspendTime OffTime たとえば % xset s 60 % xset dpms 180 300 600 のようにすると、1分で画面がブランクになり、3分で standby モード、5分で suspend モード、10分で off モードになります。 --- [管理番号 537] (最終更新 1999/02/17 23:58:45) Q. FreeBSD では Ultra WIDE な SCSI Disk を利用できますか? A. はい、利用できます。 SCSI コントローラのデバイスが Ultra Wide にいつ頃対応したかによるので すが、ahc ドライバだと 2.2 か 2.2.1-RELEASE あたり、ncr ドライバだと 2.2.5-RELEASE から利用できるようになったと思います。 --- [管理番号 538] (最終更新 1999/02/17 23:58:45) Q. FreeBSD(98) では X 使用時の GRPH キーの動作が AT 互換機版 FreeBSD の ALT キーの動作と違うようなんですけど? A. XF86Config の Section "Keyboard" に XkbDisable という1行をつけて下さい。 ただし、XkbDisable は下位互換性のためのオプションなので、前向きな解 決法とはいえません。より前向きな解決法を募集しています;-) --- [管理番号 539] (最終更新 1999/02/17 23:58:45) Q. 「パッチ」とはなんですか? A. オリジナルのソースコードとそれを更新したものを diff コマンドで比較 した差分です。 --- [管理番号 540] (最終更新 1999/02/17 23:58:45) Q. パッチの作り方は? A. パッチを作るには diff コマンドを使います。パッチの形式には unified diff 形式と context output format 形式の 2 種類があります。 以下に実行例を示しますので、参考にしてください。 以下、オリジナルを test.org/prog.c、更新後を test/prog.c とします。 unified diff 形式の場合 : % diff -urN test.org/prog.c test/prog.c --- test.org/prog.c Thu Aug 13 03:05:21 1998 +++ test/prog.c Thu Aug 13 03:07:07 1998 @@ -1,6 +1,10 @@ int main() { int num=0; +#if defined(TEST_OPT) num++; +#else + num * 2; +#endif return num; } context output format 形式の場合 : % diff -crN test.org/prog.c test/prog.c *** test.org/prog.c Thu Aug 13 03:05:21 1998 --- test/prog.c Thu Aug 13 03:07:07 1998 *************** *** 1,6 **** --- 1,10 ---- int main() { int num=0; + #if defined(TEST_OPT) num++; + #else + num * 2; + #endif return num; } 詳しくは, diff(1) を参照してください. また、パッチの当て方については [管理番号 541] を参照してください。 --- [管理番号 541] (最終更新 1999/02/17 23:58:45) Q. パッチの当て方は。 A. パッチの最初の 2 行には、相対ディレクトリを含むファイル名が次のよう に 2 行目の '+++' の後ろに書いてあります。 +++ test/prog.c Sat Jan 24 04:13:36 1998 パッチを当てたいファイルがそのファイル名の位置にあるようなディレクトリ にパッチ (ここでは patch.txt) をコピーします。 このディレクトリで以下を実行します。 % patch < patch.txt Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- test.org/prog.c Sat Jan 24 04:12:35 1998 |+++ test/prog.c Sat Jan 24 04:13:36 1998 -------------------------- Patching file prog.c using Plan A... Hunk #1 succeeded at 3. done --- [管理番号 542] (最終更新 1999/02/17 23:58:45) Q. 日本語 106 キーボードを使ってるんですが X を起動するとキートップと 画面に出る文字が異なって困っています。キートップの通りの日本語キーボー ド配列で使うにはどうしたらいいでしょうか? A. XF86Config の "Keyboard" セクションに Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "jp106" XkbLayout "jp" EndSection を加えます。 これは XF86Setupでキーボードレイアウトを選択すれば設定できます。 --- [管理番号 543] (最終更新 1999/02/17 23:58:45) Q. man Hogehoge とすると、 The diagnostics produced by Hogehoge are fully enumerated and explained in Appendix A of Hogehoge - The UNIX Hogehoge Program. (診断メッセージは、Hogehoge の Appendix A にすべて列挙され説明さ れています。) などと書かれていますが、具体的にはどこにありますか? A. /usr/share/doc/ に psd (UNIX Programmer's Supplementary Documents), usd (UNIX User's Supplementary Documents), smm (UNIX System Manager's Manual) のディレクトリがあります。 そしてたとえば fsck なら、 /usr/share/doc/smm/03.fsck/paper.ascii.gz にあります。 --- [管理番号 544] (最終更新 2002/03/07 15:32:11) Q. Accelerated-X は、どこで売っているのでしょうか。 A. 秋葉原では、 ぷらっとホーム 日本橋では、 ふぁすとばっく 3points などがあります。また、オンラインショップでの購入もできる ようです。 Xi Graphics から、試用版の Accelerated-X を取ってくることができると思いますので、 試用版で動作確認をしてから購入する事をお勧めいたします。 --- [管理番号 545] (最終更新 2000/04/19 21:35:01) Q. kernel に device od0 を加えているのにも拘らず、MO を /dev/od0 でマ ウントできません。 A. まず、あなたが使用している FreeBSD のバージョンが 3.0R 以上なら、 [管理番号 22] を見てください。 MO がハードディスクモードになっている可能性があります。 dmesg の出力を見てください。 (ahc0:4:0): "FUJITSU M2512A 1502" type 0 removable SCSI 1 このうち、type のあとの数字に注目します。 type 0 の場合は、ハードディスク互換モードになっています。このモードの 場合、MOは固定されたディスクとして扱われるため、電源を切らないとメディ アの抜き挿しができないなど、いろいろと不便です。ディップスイッチなど で、MOモードにしましょう。 type 7 の場合はMOモードとして正常に認識されていますので、別の原因があ るかもしれません。 --- [管理番号 546] (最終更新 1999/02/17 23:58:45) Q. メールを出してしばらくすると、MAILER-DAEMON さんから メールが送られ て来ました。これは一体なんなのでしょうか? A. なんらかの原因で相手にメールを届けられなかった時は MAILER-DAEMON と いう人からメールが返送されてきます。これをエラーメールと言います。この MAILER-DAEMON というのはメール配送プログラムのことです。Subject を見るとだいたいの原因がわかります。メール アドレスは、ユーザー名@ホスト名 となっているとします。 Subject: Returned mail: User unknownこれは、ユーザー名が間違っているか、 そのようなユーザがいなかったことを表しています。ユーザー名の大文字と小 文字は区別されるので、小文字のところは小文字で、大文字のところは大文字 で正確に書いてください。 Subject: Returned mail: Host unknown これは、ホスト名が間違っているかそのようなホスト名が存在しないことを表 しています。 詳しい原因は、返送されてきたメールの中に記録されています。これを良く読 み取り対処しましょう。 また、メーリングリストに送ったときには、そのメーリングリストに参加して いるほとんどの人には届いているのに、だれかに何らかのエラーにより届けら れなかったときも送られてくることがあります。自分が送ったものがメーリン グリストサーバから送られてきているときには、メーリングリストには問題な く届いているので、ほとんどの参加者には届いています。そのためもう一度送 り直す必要はありません。 --- [管理番号 548] (最終更新 1999/02/17 23:58:45) Q. Panasonic Let's note AL-N2 で XFree86 を動かすと画面が右にずれます。 A. BIOS-SETUP で、テキスト拡張表示を「有効」にしてください。 --- [管理番号 549] (最終更新 2000/06/06 23:24:37) Q. DEC HiNote Ultra II のハードディスクの交換方法を知りたいです。 A. 以下の URL が参考になるでしょう。 DEC HiNote Ultra II --- [管理番号 550] (最終更新 1999/02/17 23:58:45) Q. Mew を使っています。あるメーリングリストからメールが来るのですが、 これに返信を書く場合には From: とは違う返信用のアドレスに送る必要があ ります。返信を書くドラフトモードにしたときに、メーリングリストのアドレ ス (From:についているアドレス) も送信先に含まれてしまいます。手動で消 すことができるのですが自動的には付かない様にする方法はありませんか。 A. ~/.emacs ファイルに以下の設定を書き加えます。 (setq mew-mail-address-list (append (and (boundp 'mew-mail-address-list) mew-mail-address-list) '("anyone@jp.hoge.foo.or.jp"))) ここで anyone@jp.hoge.foo.or.jp が自動で加えたくないアドレスです。 詳しいことは Mew のマニュアルを読んでください。 もちろん、手動で To: や Cc: を書けば、そのアドレスにも送信できますので 安心してください。 --- [管理番号 552] (最終更新 2003/11/17 02:28:48) Q. ローカルプリンタへ lpr で印刷できません。 $ lpr hogehoge lpr: connect: No such file or directory jobs queued, but cannot start daemon. と言われます。 A. FreeBSD では、デフォルトの状態ではプリンタデーモンである lpd(8) を起動しません。/etc/rc.conf で lpd_enable="YES" と設定し、リブートしてください。 --- [管理番号 553] (最終更新 1999/02/17 23:58:45) Q. 「RFC 何番を読め」と言われたんですが、RFC とか Internet Draft って 何ですか? A. おもにインターネット関連のプロトコル (通信の規約) を記述した文書の ことをさします。 Internet Draft は 6 か月の期限つきのドラフト文書です。公開後 6 か月何 もしないと消されてしまいます。 RFC は ``Request for Comments'' の略で、文書には通し番号が振られて、ずっ と残ります。RFC にはインターネット技術に関する標準文書と言うべき STANDARD TRACK とそれ以外とに大別されます。STANDARD TRACK 文書は PROPOSED STANDARD、DRAFT STANDARD、STANDARD という具合に進みます。 STANDARD になると、STD という種類の番号つき文書に出世します。STANDARD TRACK 以外のものとしては、おしらせ的な INFORMATIONAL、実験的な EXPERIMENTAL、歴史的な HISTORIC、今はこれがせいいっぱいな BEST CURRENT PRACTICE があります。INFORMATIONAL な RFC の内、特に有用なものは FYI という種類の番号つき文書に出世します。BEST CURRENT PRACTICE は、同時に BCP という種類の番号つき文書になります。 インターネット関係の技術の標準化を行なう団体として、IETF (Internet Engineering Task Force; ) があります。IETF での通信プロトコルなどの標準化は、大雑把に言うと、 (1) プロトコルの提案者が Internet Draft という文書を提出する (2) みんなで議論する (3) (1) と (2) を納得いくまで繰り返す (4) 合意が得られ、動くコードがいくつか開発されたら RFC として登録 というプロセスを踏むことになっています。 RFC、Internet Draft の入手先としては、以下をはじめとして多数あります。 RFC (マスタサイト) Internet Draft (マスタサイト) 毎年 4 月 1 日には joke な RFC も出されています :-) --- [管理番号 554] (最終更新 2000/11/08 02:05:57) Q. QandA ってなんですか? A. メーリングリストや NetNews で出た質問と答えをまとめたものです。 QandA プロジェクトが管理しています。FreeBSD に関するあらゆる QandA を 登録していますので、質問をして答えをもらった人は、[管理番号 477] や を参考に、 QandA 形式にまとめて、QandA@jp.FreeBSD.org に送ってくださいね。 --- [管理番号 555] (最終更新 1999/02/17 23:58:45) Q. QandAプロジェクトってなんですか? A. メーリングリストやNetNewsにて同じ質問が何度か繰り返される様子を見て、 「どうせなら、質問と答えをまとめてFAQリストを作ろう」と東京工業大学の 飯島さんが始められたのがきっかけです。97年10月上旬に本格的にプロジェクト をスタートさせ、現在に至ります。詳しくは以下のURLを見てくださいね。 --- [管理番号 556] (最終更新 1999/02/17 23:58:45) Q. QandAプロジェクトに参加するにはどうすればいいの? A. FreeBSD QandAプロジェクトのWebページを見てね。 --- [管理番号 558] (最終更新 1999/02/17 23:58:45) Q. FreeBSD 2.2.5-RELEASEにおいてリモートプリンタに印刷しようとすると、 印刷が途中で止まってしまい、lpqコマンドで調べると `Warning: no daemon present' と言われてしまいます。何故でしょう? A. 2.2.5-RELEASEでは、リモートプリンタへの出力中に/etc/printcapの`ct'の 項目に指定している時間(デフォルトでは120秒)が経過すると実際にデータを 転送している子プロセスをlpdデーモンが殺してしまうそうです。 回避策としては、/etc/printcapのリモートプリンタの項に`ct#0'(0はこ の場合無限大を意味する)という記述を加える、あるいは、lpdを2.2-stable のものと入れ替えるといった方法があります。以下のパッチを当ててもよ いでしょう。 Index: src/usr.sbin/lpr/common_source/displayq.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/lpr/common_source/displayq.c,v retrieving revision 1.4.2.5 retrieving revision 1.4.2.6 diff -u -u -r1.4.2.5 -r1.4.2.6 --- displayq.c 1997/10/15 12:25:35 1.4.2.5 +++ displayq.c 1997/11/07 13:20:29 1.4.2.6 @@ -242,6 +242,7 @@ savealrm = signal(SIGALRM, alarmhandler); alarm(CT); fd = getport(RM, 0); + alarm(0); (void)signal(SIGALRM, savealrm); if (fd < 0) { if (from != host) Index: src/usr.sbin/lpr/lpd/printjob.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/lpr/lpd/printjob.c,v retrieving revision 1.11.2.3 retrieving revision 1.11.2.4 diff -u -u -r1.11.2.3 -r1.11.2.4 --- printjob.c 1997/10/15 09:56:00 1.11.2.3 +++ printjob.c 1997/11/07 13:20:37 1.11.2.4 @@ -1474,6 +1474,7 @@ savealrm = signal(SIGALRM, alarmhandler); alarm(CT); pfd = getport(cp, port); + alarm(0); (void)signal(SIGALRM, savealrm); if (pfd < 0 && errno == ECONNREFUSED) resp = 1; @@ -1541,6 +1542,7 @@ savealrm = signal(SIGALRM, alarmhandler); alarm(CT); pfd = getport(RM, 0); + alarm(0); (void)signal(SIGALRM, savealrm); if (pfd >= 0) { (void) snprintf(line, sizeof(line), "\2%s\n", RP); --- [管理番号 561] (最終更新 1999/02/17 23:58:45) Q. システムがクラッシュしてしまったので、fsckをかけたら、 > ** /dev/rsd0s1e > BAD SUPER BLOCK: MAGIC NUMBER WRONG > Floating point exception (core dumped) と出て、fsckが動きません。復旧する手段はありませんか? A. まず、 # fsck -y -b 32 /dev/rsd0s1e を実行してみて下さい。大抵の場合は復旧する事ができるでしょう。 もし復旧できないようなら、 # newfs -N /dev/rsd0s1e を実行して、出てくる数字を順番に入れると復旧できる可能性が あるでしょう。 --- [管理番号 563] (最終更新 2000/05/24 20:56:55) Q. 現在、日本で手に入れることのできる FreeBSD の CD-ROM パッケージには どのようなものがありますか? A. このような情報を集めているプロジェクトがあります。Web ページは以下の URL で参照できます。また、新情報にもとても素早く対応されています。 --- [管理番号 564] (最終更新 1999/02/17 23:58:45) Q. スーパーフロッピー形式でフォーマットしたMOをマウントすると、 od0(amd0:0:0): ILLEGAL REQUEST asc:21,0 Logical block address out of range というメッセージがコンソールに出てきます。 A. odドライバの作者である秋山氏によれば、MBRの内容が不正なため、各スラ イス上のディスク・ラベルを読み込もうとしてエラーとなるそうですが、使用 する上で問題になることはないらしいです。 この問題を解決するには mei を使ってフォーマットします。 mei は ports/sysutils/mei/ で ports 形式になっているので、それを利用す るのが便利です。 --- [管理番号 566] (最終更新 1999/02/17 23:58:45) Q. いままで IDE ばかり使っていたので、SCSI 接続された MO を認識する kernel の作り方がわかりません。 A. まず、購入した SCSI カード は FreeBSD 上ではどのようなデバイスとし て認識されるのか、LINTや解説本などで調べます。 以下は Tekram の DC-390として話を進めます。このカードは amd ドライバと して認識される、PCIバスのカードです。このカードでMOを使う場合は controller amd0 #Tekram DC-390 controller scbus0 device od0 #SCSI optical disk という内容を追加したカーネルを作成します。DC-390以外の場合は、LINT を 見ながら controller amd0 #Tekram DC-390 の行を適切なものに変更します。また、MO本体のディップスイッチを確認して、 動作モードが「MOモード」になっていることを確認しておきます。もし、 「HDD互換モード」の場合は変更しておきましょう。 新しい kernel でブートします。成功している場合は、 amd0 rev 16 int a irq 9 on pci0:18 amd0 waiting for scsi devices to settle (amd0:0:0): "FUJITSU M2513A 1500" type 7 removable SCSI 2 od0(amd0:0:0): Optical od not present というメッセージが出てきます。もし、type 7以外の数字だったり、 uk0(amd0:0:0): Optical od not present や sd0(amd0:0:0): Optical od not present の場合、MOの設定がおかしい場合があります。説明書やQandAの他の項目を参 考にして再設定します。 ここまでうまく行けば、あとは、例えばスーパーフロッピー形式(Windows95な どでフォーマットしたMO)であれば、 # mount_msdos /dev/od0 /mnt などで /mnt 以下にマウントできます。 --- [管理番号 567] (最終更新 1999/02/17 23:58:45) Q. ファイルの中身を16進数(8進数、10進数、文字)で見るには。 A. hd(1)、od(1)、hexdump(1)コマンドなどを利用できます。 man -k dump コマンドを実行するとそれらが検索されます。 1バイトずつ 16進数で見るには hd(1)がいいでしょう。 % hd hoge --- [管理番号 568] (最終更新 1999/02/17 23:58:45) Q. 私の使っている shell が何であるかを判定したいのですが。 A. ps $$ してください。 --- [管理番号 569] (最終更新 1999/02/17 23:58:45) Q. ホームディレクトリに .emacs というファイルがありますが、これは なんですか? A. mule (emacs) は emacs Lisp で書かれたプログラムを実行することができま す。mule (emacs) 起動時に 実行したい処理は ホームディレクトリの .emacs ファイルに記述しておくと実行されます。 mule (emacs) の環境設定とは、すなわち .emacs ファイルを編集することです。 --- [管理番号 570] (最終更新 1999/02/17 23:58:45) Q. package から Canna 対応 Mule と Canna をインストールしたのですが、 Mule で Cannaを Onにできません。 A. Mule(Emacs) 起動時に canna.el という Emacs Lisp が実行されていない ことが原因だと思われます。 ホームディレクトリの .emacs ファイルに 以下の行を追加して下さい。( .emacs がなければ新規作成して下さい) (if (and (boundp 'CANNA) CANNA) (progn (load-library "canna") (canna))) Canna を使うモードには Ctrl+o で移動できます。英数入力に戻るときも 同じです。このキー配置を変更したいと思ったら一度 canna.el を眺めて みましょう。 このファイルは packageで Mule をインストールした場合には、 /usr/local/lib/mule/19.28/lisp/canna.el にあります。 --- [管理番号 571] (最終更新 2002/04/11 03:59:26) Q. FreeBSD で CD-R を焼くことはできますか? A. お使いの CD-R のインターフェースによって、方法が異なります。 1. ATAPI CD-R FreeBSD 4.0-RELEASE 以降に含まれている burncd(8) を使います。 ただし、FreeBSD 4.4-RELEASE と MATSHITA CD-RW CW-7585 等の組み合わせ ではうまく動かず、ATAPICAM パッチを当てて cdrecord のアルファ版 (cdrecord-1.11a13 等) を使うと動作したという情報が以下にあります。 2. SCSI CD-R Cdrecord (sysutils/cdrtools) というプログラムがあります。 Cdrecord では、Sony 製や YAMAHA 製などの国内で流通している メジャーなドライブが使えます。使用可能なドライブの情報などは、 から得られます。 この他に cdrdao (audio/cdrdao) というプログラムもあるようです。 なお、FreeBSD 3.*-RELEASE 以前に含まれている worm ドライバで 使えるドライブは、 Phillips CDD 522 PLASMON RF4100 HP 4020i の3種類です。ただし、上記ドライブを国内で入手するのは非常に困難です。 また、自作の CD-ROM を作成するためには、CD-ROM のファイルシステムを 作成する mkisofs (sysutils/mkisofs) などが必要です。 --- [管理番号 573] (最終更新 2004/04/09 05:05:54) Q. ports や packages はどれを使っても良いのでしょうか? A. ports は、最低限 FreeBSD の -current と -stable で動くように 開発されています。よって、古い RELEASE バージョンなどではうまく make 出来ないことがあるでしょう。 FreeBSD-current、-stable 以外で、より新しいバージョンを使いたいと いった理由で、ports-current を使いたい場合は 「ports-current の使い方」 を参照して下さい。 packages については、それぞれの RELEASE でコンパイルした バージョンを使うのが一番よいでしょう。新しい RELEASE 用の package を古いバージョンの FreeBSD で使用すると思わぬ不具合 が出る場合があります。 --- [管理番号 574] (最終更新 2003/10/16 23:20:26) Q. 内蔵モデムボードを使えるようにする設定方法を教えて下さい。 A. 内蔵モデムボードと言っても ハードウェア的にシリアルポートとその先に モデムが接続されている様に見えるものがほとんどです。このタイプであれば、 外付けモデムが シリアルポートに接続されている場合と同じ様に考えて設定す れば利用できる様になります。 従って内蔵モデムカードであっても シリアルインターフェイスの部分は、 通常のシリアルポートと同じように設定します。 もし、内蔵モデムボードが Windows 専用とされている、いわゆる WinModem で、 シリアルポートとしてカーネルに認識してもらえない場合でも、ものによっては 使える場合があります。[管理番号 832] を参照してください。 内蔵モデムカードを利用するときは、既にマザーボードなどにある シリアル ポートとポートアドレスや割り込みが競合しない様にしなければなりません。 MS-DOS での 一般的なポートと I/O アドレス, IRQ の割り当ては以下のように なっています。 COM デバイス I/O IRQ ---- -------- ---- --- COM1 sio0 3F8 4 COM2 sio1 2F8 3 COM3 sio2 3E8 4 COM4 sio3 2E8 3 COM1 と 3, COM2 と COM4 で IRQ が重なっていますので、これらは同時使えない 仕様になっています。 もし同時に使うのであれば IRQ を使われていない別の 番号に割り当てる必要があります。 --- [管理番号 575] (最終更新 1999/02/17 23:58:45) Q. リムーバブルディスクをufsフォーマットしたいのですが? A. まず,あなたがフォーマットしようとしているメディアのドライブが 何と認識されているか確認します. 起動時のメッセージ(dmsgコマンドで表示されます)や/var/log/messages で確認できます. ここではsd2と認識されていると仮定します. 次に,/etc/disktab をみて,フォーマットしようとしているメディアが リストアップされているか調べます.もしリストアップされていないとき には他の行を参考にして書き加えます. 例えば,100MBのzipディスクであれば以下のようになります. #-------------------------------------------------------- zip100|zip 100:\ :ty=removable:se#512:nc#96:nt#64:ns#32:\ :pa#196608:oa#0:ba#4096:fa#512:\ :pb#196608:ob#0:bb#4096:fb#512:\ :pc#196608:oc#0:bc#4096:fc#512: #-------------------------------------------------------- 詳しくはdisktabのマニュアルを見て下さい. /etc/disktab を確認したら,以下のコマンドを root になって実行します. (例. sd2と認識されているzipドライブの場合) # dd if=/dev/zero of=/dev/rsd2 count=2 # disklabel -Brw sd2 zip100 # newfs -t 0 -u 0 /dev/rsd2a これでフォーマットは終了です. また,マウントするときは # mount /dev/sd2a /zip とすれば/zip というディレクトリにマウントできます. (あらかじめ/zip というディレクトリを作成しておいてください) も参照してみてください. --- [管理番号 576] (最終更新 1999/02/17 23:58:45) Q. CDやPCMなどの音量のバランスを変更したいのですが (サウンドカードを認識した直後からノイズが発生するのですが)。 A. 全体の音量や各デバイスの音量については mixer(8)で調整できます。 ノイズについては % mixer speaker 0 とするといいでしょう。 --- [管理番号 577] (最終更新 1999/02/17 23:58:45) Q. NEC PC-9801/PC-9821でBIOSの仕様上、IDE-HDDの容量に制限が有るマシンで スペックを越えるHDDを使用し、MS-DOSとFreeBSDを共存させるには? A. 以下の方法があります。 1: MS-DOSのスライス、カーネルが置かれるwd?s?aのパーテーションを マシンの仕様を越えない位置に切る。 これは、9801/9821 E-IDE Q and A集に有ります、 --- [管理番号 578] (最終更新 1999/02/17 23:58:45) Q. Mule で Canna を Onにするキーが Ctrl + o なのですが、これを Wnn と 同じように Ctrl + \ に変更したい。 A. Mule の中での canna 設定ファイル canna.el を見てみましょう。 このファイルは packageで muleをインストールした場合には、 /usr/local/lib/mule/19.28/lisp/canna.el にあります。 この中で 最初に実行する canna() という関数の途中で (global-set-key "\C-o" 'canna-toggle-japanese-mode) こういう設定をしています。\C は Ctrlキーを意味します。 もし Ctrl + \ キーに変更したいのであれば、 (global-set-key "\C-\\" 'canna-toggle-japanese-mode) この関数をどこかで実行してあげれば追加されるでしょう。 もし .emacs ファイルの中で (canna) を実行しているのであれば、以下の ようにその付近に今の関数を置くのもよいでしょう。 (if (and (boundp 'CANNA) CANNA) (progn (load-library "canna") (global-set-key "\C-\\" 'canna-toggle-japanese-mode) (canna))) --- [管理番号 579] (最終更新 1999/11/03 04:52:52) Q. Tekram DC-390U に接続した CD-ROM ドライブや MO ドライブの容量が、 起動時に can't get the size と表示され、うまく認識できません。 A. Tekram は、FreeBSD や Linux 用に自社製品用のデバイスドライバなどを 配布しているので、これを使うとよいようです。 に、カーネルソースへのパッチ一式が置いてありますので、それを当てて カーネルの再構築をして下さい。詳しくは付属のドキュメントを読んで 下さい。 なお、このパッチを適用しなくても、起動時の容量の認識に失敗する 以外は、特に問題なくこれらのデバイスを利用することができます。 --- [管理番号 581] (最終更新 2003/10/16 23:20:36) Q. ある NFSサーバに mount しようとすると以下のメッセージが出て接続ができません。 > NFS Portmap: RPC: Program not registered その NFS サーバには他のプロトコルでは接続できています。 A. NFS サーバ側のカーネルと /etc/rc.conf の内容を確認してください。 1) カーネルのコンフィグレーションファイルに options NFS #Network File System を入れていること、 options NFS_NOSERVER #Disable the NFS-server code. を入れていないことを確認します。 2) /etc/rc.conf で nfs_server_enable= が "NO" になっていたら "YES" にします。/etc/rc.conf では、同じ変数を二回以上指定 した場合は 後優先になるので、気を付けて読んでください。 以上の手順を踏んでから reboot させます。 これでもうまくいかない場合、/etc/hosts.allow を確認してください。 ALL : ALL : allow という行をコメントアウトしていませんか? コメントアウトする こと自体はセキュリティを高めるためのよい方法ですが、NFS を 使用する際は portmap ののポートを開けておかなくてはいけません。 例えば、マウントしたいサーバが 192.168.12.34 ならば、 portmap : 192.168.12.34/255.255.255.0 : allow のように、NFS サーバとの通信を許可する設定を追加してください。 --- [管理番号 582] (最終更新 2002/02/14 00:39:59) Q. 夜中(午前 2 時や 3 時)にハードディスクへのアクセスが発生するのですが。 A. /etc/crontab で、 # do daily/weekly/monthly maintenance 1 3 * * * root periodic daily 2>&1 | sendmail root と設定されていますので、毎日午前 3 時に /etc/periodic/daily ディレク トリ以下の実行ファイルが実行されます(FreeBSD 4.2-RELEASE以前は午前 2 時)。 それによって行なわれる処理の為、ディスクアクセスが発生します。そのうちの 450.status-security で、セキュリティをチェックする /etc/security というスクリプトが実行さ れます。その /etc/security の中の find $mount -xdev -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ \( -perm -u+s -or -perm -g+s \) -print0 の前後で、前日と比べて s ビットが立ったアプリケーションが追加・削除さ れたファイルをリストアップしてメールで root 宛に送ります。特に owner が root の s ビットが立った実行ファイルは危険です。 FreeBSD をひとりだけで使っていたり、ネットワークに常時接続していない 場合はこの 3 行をコメントアウトしてもいいでしょうが、そうでないなら /etc/crontab を 0 5 * * * root periodic daily 2>&1 | sendmail root などと、利用者の少ない時間に変更するといいでしょう。なお、変更後リブー トは必要ありません。 --- [管理番号 583] (最終更新 1999/11/03 04:52:35) Q. FreeBSD で CD-ROM チェンジャ (多連装 CD-ROM ドライブ) は使えますか? A. 使えます。 SCSI CD-ROM チェンジャの場合 ほぼ無条件に使えますが、SCSI カードなどの設定が必要な場合があります。 うまくいかないときは [管理番号 822] を参照してください。 ATAPI CD-ROM チェンジャの場合 FreeBSD のバージョンによりサポート状況は異りますが、1999年8月現在、 ほぼ問題なく使用できるようになっています。 wcd acd 2.2.7-RELEASE 以前 NG -- 2.2.8-RELEASE NG OK ; 3.0-current で acd が追加され、 3.0-RELEASE OK OK ; それから 2.2.8-R へ MFC 3.1-RELEASE 以降 -- OK ; wcd は削除されて acd が標準へ 4.0-current OK -- ; acd がリネームされて wcd へ 2.2.8-RELEASE では標準の CD-ROM ドライバは wcd なので、acd を有効に する必要があります。カーネルコンフィグレーションから device wcd0 #IDE CD-ROM をコメントアウトして、代わりに device acd0 #IDE CD-ROM & CD-R/RW を追加します。wcd と acd は排他的で両立できません。 なお、デバイスファイルを作成するのを忘れないようにしてください。 --- [管理番号 584] (最終更新 1999/02/17 23:58:45) Q. ports の japanese/vfghostscript5 (ja-vfghostscript-5.10) で pdf ファ イルを印刷しているんですが、14 ページ目で Error:/VMerror in --dict-- VM status: 1 958546 1037640 Current allocation mode is local Last OS error: 12 となり以降のページは表示せずにまた最初からリピートして印刷しだします。 何なんでしょうか? A. datasize に limit がかかってますね。あなたの御使いのシェルかまたは lpd デーモン自体に設定されている datasize の上限値を超えてしまったからです。 これに対する対処法は [管理番号 316]、[管理番号 532]、[管理番号 533] にありますのでそちらを参考にして対処してください。 --- [管理番号 585] (最終更新 1999/02/17 23:58:45) Q. INN を使用していますが、active ファイルに 0x00 が埋まったゴミが入っ てしまいます。 A. config.data の ACT_SYNC が MMAP になっていませんか? INN は Solaris/SunOS などの VM アーキテクチャに依存する動作を mmap() に期待し ていますが、FreeBSD では VM アーキテクチャが異なるために問題が発生しま す。ACT_SYNC を READ に変更して INN をコンパイルし直せば、この問題は発 生しなくなります。 なお、ports-current の INN 1.7.2 では ACT_SYNC は READ になっています ので、これを使用するとよいでしょう。 --- [管理番号 587] (最終更新 2003/10/16 23:20:14) Q. gccで "long double" を使用して数値計算を行ないましたが、同じ CPU での Linux の結果と比べて計算精度が悪く、計算結果が異なります。 A. FreeBSD の標準カーネルでは浮動小数点の仮数部の精度が (IEEE754 と異なり) 53bit に設定されているために起きる現象です。 long double の仮数部の精度は64bitです。(double の仮数部の精度は 53bit です) Intel x86 系の FPU の仮数部の精度は 24/53/64bit に設定可能です。 FreeBSD では仮数部の精度が 53bit に設定されているために、long double を使用しても仮数部の精度が 53bit (つまり、double と同じ) しかありません。 精度を上げて数値計算を行なうには: 1. 関数 fpsetprec()/fpgetprec() を使用して、FPU の仮数部の精度を 64bit に変更する事が出来ます。fpsetprec(3) を御覧下さい。 2. GNU Multiple Precision Arithmetic Library (GMP)、PARI 等 FreeBSD 標 準以外の数値演算ライブラリを利用してもよいでしょう。 1. fpsetprec()/fpgetprec() について FreeBSD users MLの以下のメールから始まるスレッドが参考になるでしょう。 Subject: [FreeBSD-users-jp 24352] gcc bug Subject: [FreeBSD-users-jp 46648] long double その他、オンラインマニュアル fpsetround(3)、math(3)、ieee(3)などが参考 になります。 ただし、fpsetprec は double の内部演算も 64bit 精度にしてしまうという 副作用があります。double での演算結果が変わってしまう可能性がありますの で注意して下さい。 long double 使用上の注意点: * FreeBSD の printf(3) は 5.1-RELEASE から long double に対応しました。 それ以前 (少なくとも 4.8-RELEASE までと、5.0-RELEASE) は、書式で "%Lf" 等を使用してもエラーにはなりませんが、double の精度でしか表示されません。 * long double 用の算術関数 sqrtl(), sinl() 等が標準で用意されていません。 ([管理番号 588] 参照) プログラム例: ---------------------------- #ifdef __FreeBSD__ #include #endif ... int main() { long double tmp1, tmp2; ... #ifdef __FreeBSD__ fpsetprec(FP_PE); /* 仮数部の精度を 64bit にする。 */ #endif ... } ---------------------------- 2. 非標準の数値演算ライブラリについて GMP (ports/math/libgmp4) は、任意多倍長の整数、整数を法とした計算 (modular arithmetic)、有理数、浮動小数点数の四則などが出来ます。但し、 三角関数、対数関数などの初等的な関数もないので、用途が限られるかも知れ ません (自分で頑張って書けば、勿論問題ないですが)。 PARI (ports/math/pari) は、GMP 同様の数の他、p 進数や、それぞれの数 を係数とした多項式、羃級数、行列やベクトルの計算ができ、初等超越関数 (三角関数や指数対数関数) の他、これでもかというくらい様々な関数が実装 されています。本来は、整数論用のライブラリ集 (と、対話的に計算するため の gp というコマンド (bc の様な感じ)) で、ちょっとした用途には大げさ かも知れません。 いずれも C から使うことになるでしょう。(PARIは、Fortran や Pascal から も使えるようです)。 他に参考になるものとしては SAL: があります。 --- [管理番号 588] (最終更新 2000/06/25 02:30:06) Q. FreeBSD には long double 用の算術関数 sqrtl()、sinl() はないのですか。 A. ありません。しかし、FPU を持っている CPU の場合は、次のような方法が あります。 一部の算術関数は gcc に最適化フラグ -O -ffast-math -mfancy-math-387 を付ける事により、builtin function 扱いになり、アセンブラ上に FPU の 命令が直接生成され、使えるようになります。 ただし fmodl() など、使えない算術関数もあります。 どういう関数が使えるかは、gcc の i386.md ファイルを参照して下さい。 (/usr/src/contrib/gcc/config/i386/i386.md) FreeBSD では long double の算術関数のプロトタイプ宣言が math.h で 行なわれていないので、プログラム中で宣言が必要です。使う関数の プロトタイプ宣言を Cの参考書等を参考にして追加してください。 FreeBSD の long double は使用上の注意点があります。[管理番号 587] をご覧ください。 プログラム例 -------------------------------------------------------- #include #include #ifdef __FreeBSD__ /* [管理番号 587] を参考ください */ #include #endif /* __FreeBSD__ */ #ifdef __FreeBSD__ /* プロトタイプ宣言 */ extern long double sinl(long double); extern long double sqrtl(long double); #endif /* __FreeBSD__ */ int main() { long double ld; double d; #ifdef __FreeBSD__ /* [管理番号 587] を参考ください */ fpsetprec(FP_PE); /* 仮数部の精度を 64bit にする。 */ #endif /* __FreeBSD__ */ ld = sinl(1.1); d = sin(1.1); printf("double = %.20f\n", d); printf("long double = %.20Lf\n", ld); printf("ld-d = %e\n", (double)(ld-d)); return 0; } --- [管理番号 589] (最終更新 2001/10/14 11:51:14) Q. Netscape でビットマップフォントを指定するとギザギザで汚いのですが。 A. X TrueType Server を使うと良いでしょう。 これは、 FreeType という TrueType エンジンライブラリを X Server に組み 込むことによって、 X Window System 上で TrueType フォントを使用するこ とができるようにするパッチです。 現在、日本語 (JIS X 0201, 0208, 0212)、欧州語 (ISO8859-1) のほか、幾つ かのコ−ドセットに対応しています。 まだβクオリティですが、ある程度実用に耐えます。 くわしくは、 X-TrueType Server Project Xで日本語スケーラブルフォントを使おう: を参照してください。 --- [管理番号 590] (最終更新 2004/04/09 05:05:59) Q. カラー tiff データを白黒 tiff データに変換する方法を教えて下さい。 A. ImageMagick 附属の convert コマンドでできます。 ImageMagick は ports の graphics/ImageMagick にあります。 package 名は ImageMagick-4.0.2 などです。 例: convert -monochrome color-tiff-file.tiff output-file.tiff この convert コマンドはいろいろな画像イメージデータを変換できます。 --- [管理番号 592] (最終更新 2003/10/16 23:20:15) Q. パーミッションの実行許可 (rwx の x) がよく理解できません。ファイルの 場合は、そのファイルが実行可能かどうかを表しますが、ディレクトリだと どうなるのでしょうか。 A. ディレクトリの実行許可を より正確に表記すると、 「実行/検索 (execute/search) 許可」 となります。これは、そのディレクトリ名をパス名 (ファイル名) の一部 として使っていいかどうかの判断に使われます。 それではどうしてまた、パス名の一部に使っていいかどうかを示すのに、 「検索」などというのでしょう。だいたい「検索」って何を探しているの でしょう。これは、カーネルの内部動作を示していて、その動作の内容を 知らないと意味不明な言葉なのです。 UNIX では、ファイルを示すのにパス名を使います。一方、カーネル内部で は、ファイルを扱うときに inode を使います。このため、カーネルは、シ ステムコールなどでパス名を指定された場合、そのパス名が示す inode を 知らなければなりません。 カーネルが最初から知っているのはルート("/")とカレント(".")の 2つの ディレクトリの inode だけです。 なので、パス名で指定されたファイルをカーネルが扱うには、この2つのど ちらかの位置から、ひとつひとつディレトリを辿り、目的のパス名の最後 の要素が入っているディレクトリを探し当て、そこに書かれた inode番号 から目的とするファイルの inode を探し求める旅に出ることになります。 この「ディレクトリを辿ってパス名で示されたファイルの inode を探す」 ことをパスの検索(path search)といい、namei という有名なカーネル関数 がその仕事をしています。この inode を探し求める旅で、通過するディレ クトリの中を「検索」していいかを決めるのが、ディレクトリの search permission ということになります。直訳すれば「検索許可」。「検索権」 とも呼ばれます。 たとえば、/etc/hosts を "/etc/hosts" という絶対パス名を使ってアクセ スして読みたい場合には、/etc/hosts そのものの読取り許可だけでなく、 "/" と "/etc" 両方のディレクトリに検索許可が必要です。 カーネルの動作をもう少し細かく書きましょう。 "/etc/hosts" を指定されたカーネルは、これを "/", "etc", "hosts" に 分解してひとつづつ調べていきます。"/" の inode をカーネルは知ってい ますから、"/" の中を検索して "etc" というエントリを見つけます。が、 その前に "/" を検索していいかどうかを確認します。この時使うのがディ レクトリの実行/検索許可です(注)。許可がなければここでエラーになり、 許可があれば中を検索して "etc" を見つけ出します。 見つけたエントリにはファイル名(ディレクトリ名)とその inode番号の組 が書かれていますから、inode番号から inode が手に入ります。次にやる のは "etc" の中を検索して "hosts" を見つけ出すことです。そう、もち ろん検索の前には、"etc" に実行/検索許可があるかどうかを確認します。 許可があって "hosts" が見つかったなら、"/etc/hosts" の inode が手に 入り、検索はここで終ります。 カレントディレクトリ(".")からの相対指定でも、同様の検索をおこなって 目的ファイルの inode を求めます。カレントディレクトリが /usr/X11R6 だとして、grep -i green lib/X11/rgb.txt を実行するには、".", "/usr/X11R6/lib", "/usr/X11R6/lib/X11" の3つのディレクトリに検索許 可が必要になります。 "lib/X11/rgb.txt" を指定されたカーネルは、パス名が "/" で始まってい ないので、カレントディレクトリから検索をおこないます。カレントディ レクトリの inode をカーネルは知ってますから、中を読んで "lib" とい うエントリを検索します。もちろん検索の前にはカレントディレクトリの 実行/検索許可を確認し… あとは同じです。 このように、カーネルにとっては単純に「検索許可」であるものが、カー ネルの外からは「パス名の一部に使っていいかを制限している」と説明す るしかない風変りなものに見えるのです。 関連項目 intro(2) DEFINITIONS節の File Name から File Access Permissions。 UNIXカーネルの設計, 4.4節 パス名のiノードへの変換 Lion's Commentary on UNIX(r) 6th Edition, unix/nami.c /sys/kern/vfs_lookup.c 注 ディレクトリの中を検索するとき、当然これらをカーネルは「読」んで いますが、この時に必要なのは検索許可であり、読取り許可は問われな いことを覚えておきましょう。読み取り許可は、ユーザープロセスが読 む時に使われるものです。 --- [管理番号 594] (最終更新 1999/02/17 23:58:45) Q. NFS サーバーとして設定した FreeBSD で、リブートせずに /etc/exports の変更を反映させるにはどうしたら良いのでしょう。 A. man exports の SEE ALSO に mountd(8) があります。 man 8 mountd を見てみると、そのものずばりが書いてあります。 # kill -HUP `cat /var/run/mountd.pid` で /etc/exports の変更内容を反映させることができます。 --- [管理番号 596] (最終更新 2001/11/03 13:54:21) Q. /kernel など一部のシステムファイルに対して、削除、上書き、名前の変更を しようとすると、Operation not permitted といわれてしまいました。 A. まず、Operation not permitted というエラーメッセージが表示される状況に は二つのケースが考えられます。 1. スティッキービット: sticky(8) 具体的には /tmp ディレクトリなどの様に、ファイルモードの最後が `t' に なっているディレクトリで、ファイルのオーナとは異なる一般ユーザが rm し ようとした場合です。スーパユーザにはこの制限はありません。 % ls -ld /tmp drwxrwxrwt 13 root wheel 1024 Oct 29 22:56 /tmp/ % ls -l /tmp/list -rw-r--r-- 1 foo wheel 18561 Sep 21 14:58 /tmp/list % su bar % rm -f /tmp/list rm: /tmp/list: Operation not permitted 2. ファイルフラグ: chflags(1) これはそれらのファイルに schg フラグが設定されているからです。実際に どのファイルにフラグが設定されているかは、FreeBSD のバージョンにより異 なりますが、このフラグが付いているファイルは、スーパユーザでも変更する ことができません。フラグを確認するには ls(1) に -lo オプションを付けて 実行します。また、find(1) を使えばファイル一覧を得ることができます。 # ls -lo /kernel -r-xr-xr-x 1 root wheel schg 2383647 Sep 19 22:30 /kernel* # find / -flags schg -exec ls -lo {} \; -r-sr-xr-x 1 root wheel schg 354504 Sep 21 22:05 /bin/rcp -r-x------ 1 root wheel schg 388072 Sep 21 22:13 /sbin/init -r-sr-xr-x 1 man wheel schg 28944 Sep 21 22:08 /usr/bin/man ...省略... これらのファイルを変更するには、例えば # mv /kernel /kernel.old mv: rename /kernel to /kernel.old: Operation not permitted # chflags noschg /kernel # mv /kernel /kernel.old と chflags(1) コマンドで schg フラグを消去してから操作します。カーネル については make installkernel したとき自動的に行われます。注意点として、 カーネルのセキュリティレベルが 1 以上では、chflags でフラグを消去する ことも禁止されます。この場合、システムをシングルユーザ・モードでブート し必要な作業を行なってください。securelevel(8), security(7) を参照。 # sysctl kern.securelevel kern.securelevel: 2 # chflags noschg /kernel chflags: /kernel: Operation not permitted --- [管理番号 597] (最終更新 2003/01/22 21:13:32) Q. NEC 製パソコンの製品情報 (カタログスペック) はどこかにありませんか? A. NEC は、自社で出荷したパソコンおよび周辺機器などの製品仕様を で公開しています。トップページから [レスキュー(アイコン)]に入り、 [商品情報]の中にある[商品情報検索]で表示される画面で機種などを 入力し検索してください。 現在は出荷されていない機種の情報や、グラフィックアクセラレータ チップなども分かります。 また、非公式なものですが、PC-98 の仕様一覧をまとめた MS-Excel 及び CSV 形式のファイル (LHA で圧縮されています) が の「PC-98スペック一覧」から入手可能です。 --- [管理番号 598] (最終更新 1999/02/17 23:58:45) Q. システムに付属のftpdでanonymousFTPサーバにしました。ユーザanonymous では問題なくログインできますが、一般ユーザではログインできません。なぜ でしょう? /etc/ftpusersにはそのユーザのログイン名は載っていません。 A. ログインするユーザのシェルが/etc/shellsに書かれていないのではありま せんか?ログインするユーザは getusershell(3) が返す標準のシェル (=/etc/shellsに書かれているシェル)を持っていなければなりません。例えば bashを使っているのなら、bashのフルパス名(ex:/usr/local/bin/bash)が /etc/shellsにあるかどうか調べてみましょう。 --- [管理番号 600] (最終更新 2001/04/18 02:12:14) Q. 標準の vi では日本語が正常に表示されません。そこで package の nvi をインストールしてみたのですが、やはり日本語が正常に表示されません。 pkg_info で見るかぎり、きちんとインストールできているのですが。 A. まず始めに、 % which nvi と入力してみてください。結果が /usr/bin/nvi となるようでしたら、それは FreeBSD システムに標準の、日本語に対応して いない nvi が実行されているからです。ports/packages でインストールさ れるソフトウェアは、特に指定しない限り /usr/local 以下に配置されます。 標準の vi(1) は nvi(1) との hard link になっています (実体が同じもの という意味です)。日本語対応版である パッケージ名 | FreeBSD Ports Collection -------------------+-------------------------------- nvi-m17n | ports/editors/nvi-m17n ja-nvi-sjis | ports/japanese/nvi-sjis ja-nvi-iso2022jp | ports/japanese/nvi-iso-2022-jp ja-nvi-eucjp | ports/japanese/nvi-euc-jp などは /usr/local/bin/nvi としてインストールされるので、コマンド検索 PATH で /usr/local/bin を先に参照するように設定するか、alias を設定す るなどしてください。 それでも正常に表示されない場合は、次に画面表示の設定を確認しましょう。 [管理番号 356]、[管理番号 474] 等を参考にしてください。 他の端末エミュレータを使っている場合は、そのソフトウェアの日本語機能 やその設定を確認する必要がありますので、マニュアル等で調べてください。 --- [管理番号 601] (最終更新 1999/02/17 23:58:45) Q. 2.2.6-RELEASE になったら、mule の ange-ftp が使えなくなりました。 A. 2.2.6-RELEASE になって、ftp が変わったのが原因です。ftp の -e オプ ションを使用して、コマンドライン編集機能を無効として下さい。 また、転送状況表示 (transfer progress bar) も不具合の原因となるので無 効とするのがよいです。無効とするには、環境変数 TERM を dumb にします。 以上を実現するには、具体的には .emacs に以下の記述を追加します。 (setq ange-ftp-ftp-program-name "env") (setq ange-ftp-ftp-program-args '("TERM=dumb" "ftp" "-i" "-n" "-g" "-v" "-e")) --- [管理番号 602] (最終更新 2002/02/20 10:50:33) Q. Ninja SCSI という PCMCIA SCSI カードは FreeBSD で使えますか? A. 3.5-RELEASE 用の PAO3 からは、NetBSD/pc98 から移植された nsp ドライバで サポートしています。また、4.2-RELEASE 以降は FreeBSD 自体にマージされま したので、パッチなしでデフォルトのまま使えるようになりました。 --- [管理番号 603] (最終更新 1999/02/17 23:58:45) Q. ログイン画面からシャットダウンできるように設定したい。 A. 誰もログインしていないとき shutdown アカウントでログインすると、自 動的にシャットダウンする例を以下に説明します。 root になります。 vipw コマンドで以下の行を追加します。 ----------- ここから --------- shutdown:*:0:1::0:0:Shutdown Account:/:/usr/local/shutdown/shutdown.sh ----------- ここまで --------- パスワードを設定します。 # passwd -l shutdown /usr/local/shutdown/shutdown.sh を次の内容で作成します。 ----------- ここから --------- #!/bin/sh num=`who |wc -l` if [ $num = "1" ] then /sbin/halt exit 0 else echo '****************************************************************' echo 'ERROR: You can not SHUTDOWN, because anyone below is working now.' echo '****************************************************************' who exit 1 fi ----------- ここまで --------- 上記シェルスクリプトに実行パーミションを設定します。 # chmod 544 /usr/local/shutdown/shutdown.sh --- [管理番号 604] (最終更新 2000/03/04 08:15:28) Q. Linux emulator (エミュレータ)を使って Linux バイナリを実行しようと したのですが、うまく動きません。どうしたら良いでしょう? A. いろいろな原因が考えられます。順に候補を挙げていきますので、 症状や自分の環境に合わせて、適宜対応して下さい。 1. can't load library 'libXp.so.6' のようなエラーが出る場合は、 対応する Linux 用のライブラリを Linux マシン等から入手して、 /compat/linux/lib/ の下に置いて下さい。 2. ./my-linux-elf-binary というバイナリを実行した時に、 % ./my-linux-elf-binary ELF binary type not known Abort と、表示されるようでしたら、以下のようにして下さい。 % brandelf -t Linux ./my-linux-elf-binary 3. Segmentation fault を起こして動作しない場合は、環境変数 LD_LIBRARY_PATH が設定してないか確かめて下さい。もし % echo $LD_LIBRARY_PATH で何か表示されるようなら、 % unsetenv LD_LIBRARY_PATH で、環境変数をクリアして下さい。 4. Acroread4 を使おうとしたけれど、Segmentation Violation Caught. というウインドウがでてきて使えない場合は、X のリソース設定 ファイル (~/.Xresources や ~/.Xdefaults) に、 AcroRead*inputMethod: none という行を追加してください。 あるいは、以下のような簡単なスクリプトを書き、ラッパとして使用する 方法もあります。 #!/bin/sh # Wrapper Script for Linux Acrobat Reader XMODIFIERS="@im=none"; export XMODIFIERS acroread4 5. Applixware (TurboLinuxPro 3.0 および 4.2) について。 3.0 の場合: メニューを日本語にしたい時は % setenv AXLANG 17 として下さい。 4.2 の場合: 一応、動くようです。ただし、日本語の入力ができたという例は、 FreeBSD-users-jp ではないようです(1999年12月28日現在)。 詳しくは、[FreeBSD-users-jp 47668] と関連するスレッドを ご覧下さい。 6. hogehoge: error in loading shared libraries :undefined symbol: __register_frame_info というエラーが出る場合。 Linux 用の X server (XFCom_Rage128) などを Linux エミュレータで使用して いる場合に出るようです。この場合は、 から regframe.rpm を持ってきてインストールします。 % rpm2cpio regframe.rpm | cpio -ivd で展開する事ができるので、できた libregframe.so を /usr/local/lib にコピーして、/etc/ld.so.preload を新しく作り、 /usr/local/lib/libregframe.so と書く事で、実行できるようになります。 --- [管理番号 606] (最終更新 2002/02/20 10:50:36) Q. 東芝 Libretto のフロッピードライブや他のオプションは、共用できるの でしょうか? A. カード・ケーブル・ドライブとスリーピースだった Libretto {20,30,50} 用のフロッピードライブは Libretto {60,70} でも使用できます。逆に、 新しい一体型のフロッピードライブを Libretto {20,30,50} で使うことも できます。 バッテリは Libretto {20,30,50} 用と 60 用と70 用で異なるため、共用 できません。大容量バッテリパックは共用できます。 --- [管理番号 607] (最終更新 1999/02/17 23:58:45) Q. ccd を利用して disk image の mirroring を行いたい。 A. /etc/ccd.conf に、flags が 6 (== CCDF_UNIFORM|CCDF_MIRROR) で、かつ、 その後ろに同じ大きさのパーティションが二つ書かれているエントリを追加し ます。 エントリの例 (/dev/sd0s1e と /dev/sd1s1e で mirroring を行う) : ccd0 32 6 /dev/sd0s1e /dev/sd1s1e この後、ccdconfig -C → newfs という手順をとります。 --- [管理番号 608] (最終更新 1999/11/19 15:51:44) Q. ccd を利用して disk image の mirroring を行っていたら、mirroring に 使用しているうちの片方のディスクが壊れてしまいました。 A. /etc/ccd.conf を書き換えて壊れたディスクに含まれているパーテション を除去します。 次に umount してから、ccdconfig -U で古い設定を解除します。 ccdconfig -C を行って新しい設定を有効にし、mount すると、とりあえず壊 れていない方のディスクのみでシステムを稼働させ続けることが可能です。 例: ccd0 32 6 /dev/sd0s1e /dev/sd1s1e で、sd1 が壊れた場合、このエントリの flags を 6 から none に変更し /dev/sd1s1e を除き、 ccd0 32 none /dev/sd0s1e とします。この時、ccdconfig -C に続けて newfs を行う必要は *全く* あり ません。 新しいディスクが調達できたならば、dd コマンドを利用して壊れなかった方 の disk image を新しい方にコピー (例: dd if=/dev/rsd0s1e of=/dev/rsd1s1e bs=1m) し、/etc/ccd.conf を変更 (元に戻) して同じ手続きを行ないます。 --- [管理番号 609] (最終更新 1999/02/17 23:58:45) Q. コマンドの実行結果をファイルに残したり、結果を別のコマンドに渡したい と思うのですが、どのように操作するのでしょうか。 A. UNIX の Shell(シェル)にはリダイレクトというとても便利で柔軟な機能が あります。コマンドの実行結果を別のコマンドの入力にしたり、ファイルに残 したりできます。この機能の利用方法は使用しているシェルによって若干異 なってきます。 1. 結果をファイルに記録する csh, tcsh など % make > file.log sh, bash など $ make > file.log 2. 標準エラー出力も記録する csh, tcsh など % make >& file.log sh, bash など $ make > file.log 2>&1 3. コマンドの結果を別のコマンドに渡したい csh, tcsh など % ls | more sh, bash など $ ls | more 4. エラー出力も渡したい csh, tcsh など % ls |& more sh, bash など $ ls 2>&1 | more 5. 画面を見ながらその結果を片っ端から記録したい csh, tcsh など % telnet hoge.hiyo.ac.jp |& tee file.log sh, bash など $ telnet hoge.hiyo.ac.jp 2>&1 | tee file.log これでTELNETのログができます。 注) tee とは 標準入力からデータを読み込み、その内容を指定された ファイルと 標準出力に出力するコマンドです。 詳しくは jman tee (日本語版 マニュアルの場合) を参照。 6. 画面を操作しながらその結果を片っ端から記録したい script(1)コマンドは、シェルによらず動作出来るので、とても有用です。 % script file.log これで画面への入力及び出力の全てを file.log に記録する事が出来ます。 ただし、Enter/C-p/C-nなどのシェルに対するキー入力も、コントロール コードとして そのまま記録されてしまいます。 file.logへの記録を終えたいときは exitしてください。 --- [管理番号 610] (最終更新 1999/02/17 23:58:45) Q. XFree86 を3.3.2にバージョンアップして startx としたら以下のようなメッ セージがでて起動しません。 Fatal server error: xf86OpenConsole: Server must be running with root permissions You should be using Xwrapper to start the server or xdm. We strongly advise against making the server SUID root! A. ホームディレクトリの .xserverrc ファイルを以下のように設定していま せんか。 /usr/X11R6/bin/X -bpp 24 XFree86 3.3.2 では、セキュリティ上の問題から、一般ユーザーが .xserverrc の中から /usr/X11R6/bin/X コマンドを実行することは出来なくな りました。かわりに /usr/X11R6/bin/Xwrapper というコマンドが用意されてい ます。ですから、.xserverrc ファイルは以下の様にしてください。 exec /usr/X11R6/bin/Xwrapper -bpp 24 つまり、最初に exec をつけ、X の部分を Xwrapper に変えます。詳しくは XFree86 FAQ ``Q.E14 What is Xwrapper and why can't startx or xinit find it? '' () や xinit(1) を参照してください。 --- [管理番号 611] (最終更新 2001/03/07 02:08:45) Q. ppp + natd で、ネットワークに接続し直すとパケットが流れなくなってしま います。 A. natd(8) へのオプションに -dynamic yes は付けてありますか? # natd -p 6668 -n tun0 -dynamic yes こうしておかないと、natd が IP アドレスの変更を検出できないためです。 FreeBSD 2.2.7-RELEASE 以降なら、/etc/rc.conf で以下のように設定すれば 良いでしょう。 nat_enable="YES" # Enable natd (if firewall_enable == YES). nat_interface="tun0" # Public interface or IPaddress to use. nat_flags="-dynamic" # Additional flags for natd. また、FreeBSD 3.3-RELEASE 以降であれば、ppp と natd を組み合わせる よりも、ppp(8) の -nat オプションを使うことを考慮した方が良いでしょう。 --- [管理番号 612] (最終更新 1999/02/17 23:58:45) Q. vipw を使うことを知らなかった為 /etc/passwd を エディタ で直接編集 してしまいパスワードファイルを壊してしまいました。 とりあえず 現在の /etc/passwd をなんとか復元したいのですが、どうすれ ばいいですか? A. まず rootのパスワードをブランクにして master.passwdを正常な状態に 編集します。 この状態で # pwd_mkdb -p /etc/master.passwd としてしてください。これで vipw が使える様になるはずです。 vipwできるようになったら passwd(1) でrootのpasswdをすぐ設定しましょう。 --- [管理番号 613] (最終更新 2001/11/17 19:15:36) Q. /etc/termcap に端末の設定を追加したのですが、vi を起動しようとすると、 `vi: xxxx: unknown terminal type' や `vi: No terminal database found' と表示されて起動できません。どうしてでしょうか? A. vi(1) など ncurses(3) を利用したアプリケーションは、cap_mkdb(1) により ハッシュ化されたデータベースを利用していますので、/etc/termcap (実体は /usr/share/misc/termcap) を変えただけでは変更は反映されません。 # cap_mkdb /usr/share/misc/termcap のようにすると、端末設定の変更を反映させることができます。 --- [管理番号 614] (最終更新 1999/02/17 23:58:45) Q. オンラインマニュアル (英語/日本語) を綺麗に印刷するにはどうやったら いいですか? A. man -t マニュアル名 (英語版) または jman -t マニュアル名 (日本語版) を実行するとPSファイルが作られます。{man,jman} -t マニュアル名 > hoge.ps を実行すれば hoge.psというファイルに保存されます。 PSプリンタであればこれを lpr hoge.ps としてやれば出力されるでしょう。 PSプリンタではない場合でも FreeBSDから印刷できる場合があります。 [管理番号 411] を参照してください。 --- [管理番号 615] (最終更新 1999/02/17 23:58:45) Q. 一台の PC に二つのドメインを収容していますが、各ドメイン宛の同じユー ザ名のメールを別々のメールボックスへ振り分けるにはどうすればいいでしょ うか。 A. 収容している二つドメインを xxxx.or.jp と yyyy.co.jp とし、 webmaster@xxxx.or.jp へのメールを user1 のメールボックスへ、 webmaster@yyyy.co.jp へのメールを user2 のメールボックスへ振り分ける場 合を例に取って説明します。 【環境】(FreeBSD 2.2.1-R + sendmail 8.8.5 + CF 3.5Wpl3で確認) ifconfig(8) の alias を使って二つの IP アドレスを振り、xxxx.or.jp と yyyy.co.jp の二つのドメインを一台の PC に収容。named(8) の MX と sendmail.def の ACCEPT_ADDRS にホスト名を設定して、二つのドメイン宛の メールを受信することができるように設定。adduser(8) で user1 と user2 のアカウントを設定。 【手順】 sendmail.def に追加: USERTABLE_MAPS='xxxx.or.jp=hash:/etc/ut.xxxx \ yyyy.co.jp=hash:/etc/ut.yyyy' (CFのディレクトリで) $ make sendmail.cf (CFのディレクトリで、root権限で) # install -c -o bin -g bin -m 444 sendmail.cf /etc # reboot /etc/ut.xxxxの内容: webmaster:maildrop user1 /etc/ut.yyyyの内容: webmaster:maildrop user2 # makemap hash /etc/ut.xxxx.db < /etc/ut.xxxx # makemap hash /etc/ut.yyyy.db < /etc/ut.yyyy /etc/ut.xxxx や /etc/ut.yyyy の内容を変更しても sendmail を再起動 する必要はなく、makemap(8) するだけで有効になります。 --- [管理番号 616] (最終更新 1999/02/17 23:58:45) Q. 複数のドメイン宛のメールを一台のマシンに集めるにはどうしたらいいで しょうか? A. 一台に集めるだけなら DNS の MX レコードを定義するだけです。 メール配送プログラム (MTA) はメールを配送する時に送りたい相手のメール アドレスを見て、どのマシンに送りつけるべきかを判断しています。その場合 に DNS の MX レコードを検索して送りつけるべきホスト名を得ます。これを 利用して各ドメインの MX レコードに同じホスト名を記述すればメールを一台 のマシンに集めることは簡単にできます。 ただし集まったメールを実際にそのマシンが受け取って Disk に保存するかは 別問題です。MX はメールを送りつけるホスト名の定義だけであって、そのマ シンがメールを受け取るかの設定ではありません。 --- [管理番号 617] (最終更新 1999/02/17 23:58:45) Q. メール配送プログラムが届いたメールを受け取ってくれません。 A. メール配送プログラム (MTA) はメールを配送する時に送りたい相手のメール アドレスを見て、どのマシンに送りつけるべきかを判断しています。その場合 に DNS の MX レコードを検索して送りつけるべきホスト名を得ます。 ただし送りつけられたメールを実際にそのマシンが受け取って Disk に保存す るかは別問題です。MX はメールを送りつけるホスト名の定義だけであって、 そのマシンがメールを受け取るかの設定ではありません。 メールを受け取るかどうかの設定はメール配送プログラム (MTA) の設定に依 存します。代表的な MTA である sendmail(8) の場合は 設定ファイル sendmail.cf の中に記述、新種の MTA である qmail () の場合は control/locals に記述します。 --- [管理番号 618] (最終更新 1999/02/17 23:58:45) Q. コマンドラインから mount_nfs するとマウント出来るディレクトリに対し て、amd を使ってオンデマンドにマウントしようとするとうまく行きません。 A. mount_nfs(8) や mount -t nfs でマウントする時に、何か特別なオプショ ンが必要でしたか? もし必要ならば、それに相当するオプションが amd(8) でサポートされていることを確認してみて下さい。type:=nfs の場合、amd は 自前の mount_nfs (/sbin/mount_nfs ではない!) を使用するからです。また、 amd は自分の知らないオプションに対しては黙って無視してしまうので注意が 必要です。 特に、mount_nfs の場合 -c オプションを、mount -t nfs の場合 -o -c や -o noconn というオプションを付けないとマウントできない、という条件に当 てはまりますか? (IP address を二つ持っているファイルサーバに nfs マウ ントしようとする場合などは、現状 (1998/02/24) ではこれが必要なようで す。) もしそうなら、amd.map の opts に noconn を追加してみて下さい。 /defaults に一括して記述すればよいのですが、各キーやサーバ毎それぞれに 独自の opts がある場合には、そこにも noconn を追加してみて下さい。 (参考文献:/usr/src/usr.sbin/amd/doc/amdref.ps など) --- [管理番号 619] (最終更新 1999/02/17 23:58:45) Q. IP address を二つ持っているファイルサーバに nfs マウントしようとする とうまく行きません。 A. mount_nfs の場合 -c オプションを、mount -t nfs の場合 -o -c や -o noconn というオプションを付けてみて下さい。 また FreeBSD の Problem Report も参考になるかも知れません。これは current について報告していますが、 2.2.5-STABLE にも当てはまるようです。しかしこの状況 (1998/02/24現在) はいずれ改善されると思われます。 --- [管理番号 621] (最終更新 1999/02/17 23:58:45) Q. NIS を利用して group の情報を共有しています。NIS server の /etc/group の wheel にユーザ hoge を追加しました。NIS client で "ypcat group" す ると wheel に hoge が追加されていることが確認できるのですが、NIS client 上で hoge が su で root になることが出来ません。 A. su コマンドは、/etc/group の先頭から順に検索し、最初に見つかったグルー プ番号 0 の グループ (wheel) のエントリを元に、ユーザのチェックを行いま す。ここで、/etc/group の情報を NIS で共有している場合、NIS client の /etc/group に追加した "+:::" の行の部分が NIS が提供する情報に置き換えら れます。このため、wheel グループの行が +::: より前にあると、NIS で提供さ れる wheel グループの情報が無効になります。 一般的に、NIS で共有したいグループは、NIS クライアントの /etc/group か ら削除します。しかし、wheel グループはシステムにとって特別なグループのた め、起動時や NIS サーバが見つからない場合に問題が生じるかも知れません。 NIS クライアントの /etc/group の先頭に "+wheel:::" あるいは "+:::" の 行を追加することで、問題を回避できるでしょう。ただし、/etc/group と NIS マップの検索順序が変化しますので、他のエントリに対する影響についても 考慮してください。また、root 権限を持つことができるユーザを規定する wheel グループの情報を外部のホストに依存すると、セキュリティ的に弱くなる という点についても留意してください。 管理の手間を厭わないならば、インストール時から既に /etc/group に書かれ ているグループについては、NIS で共有せず、各 NIS クライアントの /etc/group に NIS サーバと同様の記述をするようにしましょう。 --- [管理番号 623] (最終更新 1999/02/17 23:58:45) Q. DEC 2114x チップの NIC を使っていますが、 de0: abnormal interrupt: transmit underflow (raising TX threshold to 96|256) de0: abnormal interrupt: transmit underflow (raising TX threshold to 8|512) de0: abnormal interrupt: transmit underflow (raising TX threshold to 1024) de0: abnormal interrupt: transmit underflow (switching to store-and-forward mode) というようなメッセージが出ます。 A. このメッセージは、de ドライバが「2114x が送信アンダーフロー割り込み を発生した」ことを検出したという意味です。 結論から先に言うと、問題は (ほとんど) ありません。 この「送信アンダーフロー割り込み (transmit underflow)」は、2114x が送 信データをメインメモリから自分の FIFO に取り込み、イーサネットに送信す る過程で、FIFO に取り込むスピードよりもイーサネットに送信するスピード が速いために FIFO が空になることにより発生します。 これは、PCI バスの転送スピードが遅く、イーサネットがすっからかんのとき に顕著になります。 de ドライバは送信アンダーフロー割り込みが発生した場合、できるだけ自分 の FIFO にデータを溜めてから送信をするように、送信スレッショルドをだん だん大きくします。これが raising TX threshold to xxx の意味です。 # ちなみに、xxx の数字は、プログラムのミスで # 72|128、96|256、128|512、160|1024 # となるのが正しいようです。(/sys/pci/if_de.c を見てください。) さらに、それでもアンダーフローが発生するようであれば 1 パケット分のデー タが FIFO に溜るまで送信しない store-and-forward モードになります。(メッ セージの最後の行です。) この状態まで来ると、もうアンダーフローは発生し なくなるはずです。 送信アンダーフローが生じた際には、それまで FIFO に溜まっていたデータま でしか送出されず、送出されるイーサパケットは途中で切れた形となります。 したがって、通信の相手先では変なパケットを受け取ることになり、たとえば、 それがイーサパケットの最後尾に付加されるべき CRC (Cyclic Redundancy Check) が付いていない状態のパケットとみなされた場合は、次のような bad crc とのメッセージが表示されるでしょう。 de0: receive: xx:xx:xx:xx:xx:xx: bad crc 送信アンダーフローは PCI バスの転送速度が足りないことから発生しますの で、根本的な対策は PCI バスの転送速度を 2114x のために確保することです が、以下に、いくつか ad hoc な対策をあげておきます。 1.BIOS の設定メニューで PCI バスのレイテンシタイマを調整してみる。 2.PCI バスに接続している不要なデバイスを減らす。(できれば...だけど) 3.PCI バス上で 2114x の転送優先順位を上げる。(BIOS の改造が必要だけど) 4.PCI バスの転送速度を上げる。(規格外の改造が必要だけど) 5.イーサネットに他の機器を接続して、イーサネットを混ませる。(イミなし) 6.時々へんなパケットがイーサネット上に送信されるが気にしない。 送信アンダーフローが頻発するようであれば、イーサネット上を変なパケットで 占有されてしまうため、貴重なネットワーク資源を無駄にする可能性もありますが 送信アンダーフローが頻発しないのであれば 6 で良いのではないでしょうか? 注意: 以上の説明は、いろいろな意味で「正常」なシステムを前提にしています。 ハードウェアの不具合や相性問題等が直接的または間接的 (他のデバイスが PCI バスを占有している等) 原因になっていないとも限りません。PCI バス が混んでいるはずが無いのにアンダーフローが発生するとかアンダーフロー があまりに頻発するようであれば、いろいろな角度からシステム全体のチェッ クをしてみた方が良いでしょう。 --- [管理番号 627] (最終更新 1999/02/17 23:58:45) Q. FreeBSDで X (Xlib を使った) のプログラミングをしようと思ったのですが、 コンパイルがうまくいきません。先頭に #include #include を入れるとうまくコンパイルできないのですが、どうしたらよいでしょうか? A. コンパイル時に注意することはいくつかあります。 まず最初に Xlib.h Xutil.h をインクルードする際には、Xlib.h → Xutil.h の順番にインクルードする必要があります。だからソースの先頭は #include #include と書かなければ失敗します。注意しましょう。 その他 file.c:??: X11/Xlib.h: No such file or directory (?? の部分は 数字) の様なエラーが発生するときは [管理番号 509] を参照してください。 --- [管理番号 629] (最終更新 1999/02/17 23:58:45) Q. どのマニュアルが jman 化されているのかを知る方法は無いでしょうか。 A. が参考になるかも知れません。 --- [管理番号 630] (最終更新 1999/02/17 23:58:45) Q. cshを使っています。 リダイレクトは % hogehoge >log 標準エラー出力もだと % hogehoge >&log 他のコマンドに渡すときは % hogehoge | hiyohiyo もしくは、 % hogehoge |& hiyohiyo ですが、これを/etc/daily.localに書くと怒られます。 シェルがshですので、同じ事をshの文法で書くとどういう風になるのでしょうか。 A. jman shを">"という文字で検索してみましょう。 パイプライン という部分で パイプラインによる標準入出力の接続はリダイレクトに先立って 行われるため、パイプラインの接続をリダイレクトによって修正 することができます。たとえば、 % command1 2>&1 | command2 という例が載っています。 というわけで、shの場合は、以下のようにします。 リダイレクトは % hogehoge > log 標準エラー出力もだと % hogehoge > log 2>&1 他のコマンドに渡すときは % hogehoge | hiyohiyo もしくは、 % hogehoge 2>&1 | hiyohiyo リダイレクト('<'や'>')やパイプ('|')にはファイルディスクリプタを 指定することが出来ます。 ファイルディスクリプタは番号で表現しますが、約束ごとで、 0 標準入力 1 標準出力 2 標準エラー出力 となっています。">"が"1>"と同じ意味であり、"n>&m"が 「nをmに混ぜてしまう」ということが理解できれば、 % hogehoge > log 2>&1 の代わりに % hogehoge 2> log 1>&2 とするといった応用もできるようになります。 --- [管理番号 631] (最終更新 1999/02/17 23:58:45) Q. XFree86 3.3.2をインストールしたのですが、X332jdoc.tgzやX332jset.tgz はどのようにインストールするのでしょうか? /stand/sysinstallで追加の配布物をインストールなどを選んでも X332jdoc.tgz等はありませんのでインストールできません。 A. 以下の2通りの方法があります。 1. 附属のインストールコマンドを使う X332jdoc.tgz 等と同じディレクトリにある extract というコマンドで インストールできます。root になって以下のように実行します。 # cp extract /var/tmp/extract # chmod +x /var/tmp/extract # cd /usr/X11R6 # /var/tmp/extract /cdrom/XF86332/X332j*.tgz 2. tar を使う rootで、X332jdoc.tgz等があるディレクトリに移り、以下のようにします。 # zcat X332jdoc.tgz | ( cd /usr/X11R6 ; tar xvf - ) もしくは # tar xvzf X332jdoc.tgz -C /usr/X11R6 --- [管理番号 632] (最終更新 1999/02/17 23:58:45) Q. あるホストのディスクを、他のホストのテープ装置を使ってバックアップ したいのですが。 A. tar、dump コマンドは バックアップの出力先ファイルに ユーザー@ホスト:出力先ファイル という形式を指定できます。rmt(8)、rcmd(3) のマニュアルを参照して下さい。 以下に具体的な使用例を示します。 hostA テープ装置のあるホスト hostB バックアップしたいホスト 1. hostAの設定をします。 テープ装置をアクセスするユーザーを追加します。 tape:*:888:5::0:0:tape:/home/tape: このユーザーは operator グループに所属している必要があります。 /home/tape/.rhosts に 以下の行を記述します。 hostB root このファイルは、tape または root に所有され、所有者以外の書き込みが禁 止されている必要があります。 /etc/inetd.confファイルの以下の行を有効にします。 shell stream tcp nowait root /usr/libexec/rshd rshd 2. hostBでのバックアップ。 # dump 0uf tape@hostA:/dev/nrst0 /dev/rwd0s1a # tar cvpf tape@hostA:/dev/rst0 . [注] FreeBSD の デバイスファイルは tar (GNU tar) で正しくバックアップをとる ことができません。このためシステム全体のバックアップをとる場合は dumpや cpio 等を使う方が良いでしょう。 また、この設定は、場合によってはセキュリティホールとなる場合も考えられ ますから tcp_wrapper(tcp_wrappers)等を併用することも検討して下さい。 --- [管理番号 633] (最終更新 1999/02/17 23:58:45) Q. kterm などの X 上のプログラムを立ち上げたまま X を終了すると waiting for X server to shut down kterm: fatal IO error 32 (Broken pipe) or KillClient on X server ":0.0" などというエラーメッセージが表示されます。 A. kterm などが X サーバにより強制的に終了させられているために出るもので、 全く気にする必要はありません。 --- [管理番号 634] (最終更新 2000/06/25 02:30:43) Q. NT4.0 にサービスパック3を入れたので、samba を DES 対応の物に変えました。 そうしたら、今まで使えていたパスワードが全て無効になってしまいました。 A. DES 対応の samba は FreeBSD のパスワード (/etc/passwd など) とは、別の ファイルにパスワードを格納します。附属のドキュメントや の Samba Server HOWTO などを参考にしてユーザ・アカウントに関する設定を 行なってください。 暗号化パスワードに関しては [管理番号 301] も参考にして下さい。 --- [管理番号 635] (最終更新 2001/08/12 05:24:59) Q. PC-9821 の内蔵 2nd シリアルポート(COM2/sio1)を使うことはできますか? A. FreeBSD(98) 3.1R-Rev01 以降のバージョンで対応しており、sio1 で使用する 事が出来ます。 --- [管理番号 638] (最終更新 1999/02/17 23:58:45) Q. MS-DOS/Windows から,FreeBSD のスライスにあるファイルを参照すること はできますか? A. 一台のマシンに,FreeBSD と MS-DOS/Windows をインストールして,交互 にリブートして利用している環境の場合,FreeBSD のスライス内にある file を MS-DOS/Windows から参照することはできません. # 誰かが MS-DOS/Windows 用に device driver を書けば参照できるでしょう # が,現在(1998/05),そのような device driver は存在しません. --- [管理番号 639] (最終更新 2001/11/17 19:15:36) Q. コマンドプロンプトを示すのに ``#'' や ``%'' があるようですが、 ``#'' や ``%'' って、どう違うのでしょうか? A. コマンドプロンプトは、あなたが利用している shell によって変ります。 また、自由に変更することもできます。csh(1) 系の shell(csh, tcsh) では、 デフォルトで ``#'' は root、``%'' は一般ユーザを表しています。同様に ``$'' は sh(1) 系のプロンプトを意味します。詳しくは、あなたが利用して いる shell のマニュアルを見てください。 --- [管理番号 640] (最終更新 1999/06/03 03:48:57) Q. FreeBSD で作成した文章を FAT 形式のフロッピーに保存して、Windows で 読みたいのですが。 A. フロッピーを mount してコピーする方法と mtools を使う方法があります。 A1. FreeBSD で FAT のフロッピーを mount するには、次のようにします。 例えば、/fd というディレクトリを作成してそこに mount するには、 # mount -t msdos /dev/fd0 /fd とします。/fd 以下のディレクトリに フロッピーに保存したいファイル を cp コマンドなどで複写すれば OK です。 また、フロッピーを抜く前には必ず # umount /fd と unmount してください。この操作を忘れると、別のフロッピーに交換しても mount できなかったり、フロッピーの内容が破壊される場合があります。 この方法は ハードディスクにある DOS 区画に対しても同じように使えます。 [管理番号 723] を参照してください。 A2. mtools をインストールします (packages/emulators/mtools*)。 mtools の場合、mount/unmountの操作が必要ありませんから、ファイルを 複写する程度なら こちらの方が簡単でしょう。 # mcopy source a: とすると、フロッピーに source が書き込まれます。source が テキストファイルの場合、 # mcopy -t source a: とすれば、改行コードも変換してくれます。 --- [管理番号 642] (最終更新 1999/02/17 23:58:45) Q. IBM ThinkPad で HDD を交換したいのですが、何か問題ありますか。 A. ThinkPad + 東芝HDDの件については、NIFTY FIBMTP1 や各種ThinkPad関連 書籍にて、 ・うまく認識されない ・いちおう動作するが、ハイバネーションに失敗する 等のトラブル例が多数報告されているようです。 可能なら、IBM製にしたほうが安全かと思います。 --- [管理番号 644] (最終更新 1999/02/17 23:58:45) Q. FreeBSD 2.2.5-RELEASE, samba-1.9.17p3でWindows95,NTに対するfile serverを運用しています。WindowsからSambaで公開しているdiskにfileを作る と全て小文字になってしまうのですが、大文字小文字混じりのfile名を Windows側から付けるにはどうしらたよいのでしょうか? A. smb.confに以下のoptionを設定することでWindows側で作ったファイル名の 大文字、小文字が保たれるようになります。 preserve case = yes short preserve case = yes --- [管理番号 645] (最終更新 1999/02/17 23:58:45) Q. PAPとかCHAPって何ですか? A. PPP接続の際のユーザ認証方式です。この他にUNIXのログインにより認証 する方法があります。 PAPは、UNIXのログインの手順とよく似ていますが ログイン名とユーザーパス ワードを PPP の パケットとして送出します。 さらに CHAPは、サーバ側から暗号化のもとになる「チャレンジ」と言われる と文字列を送り、クライアント側はこれに基づいて暗号化されたワンタイム・ パスワードを送ります。 セキュリティ面で言うと、パスワードなどがそのま まながれることがないのでCHAPの方が優れています。 UNIXのログインによる認証は、まず無手順でUNIXにログインした後 PPP が 起動されという方式です。 どの認証方式を選ぶべきかは、接続先のISPがサポートの対応状況によります。 /etc/ppp/ppp.confに accept chap deny pap と書くことでCHAPが選択され、 accept pap deny chap だととPAPで接続します。 ログインネームとパスワードは set authname myloginname set authkey mypassword と指定します。 一方、UNIXのログインによる認証は deny pap deny chap set login "TIMEOUT 5 login:-\\r-login: myloginname word: mypassword" などと書きます。 --- [管理番号 646] (最終更新 2002/02/14 00:39:59) Q. IRQ や DRQ という略語をよく見かけますが、どういう意味でしょう。 A. 言葉の意味としては次のようになります。 ・IRQ: Interrupt ReQuest (割り込み要求) ・DRQ: DMA ReQuest (DMA - CPUを使わないデータ転送 - 要求) また同じような意味で次のようなものも使われます。 ・INT PC98 では IRQ の他に INT という用語も使われます。基本的に INT と IRQ は同じようなものですが、番号の対応が異なります (IRQ3 と INT3 は異な ります)。[管理番号 242] を見てください。注意として PCI デバイスにお いても INT という用語が出てきますが、これとは別ものです。 ・DMA  DRQ と同じ意味で単に DMA を使う場合もあります。このときは DMA の番号 をそのまま DRQ の値にすればいいです。例えば、「DMA1」の場合は「DRQ1」 とすればいいわけです。 いずれも本来はAT(ISA)バスなどに出ている信号線の名称からきています。IRQ は割り込みコントローラ8259Aの信号線、DRQはDMAコントローラ8237Aの信号線 の名称でした。それぞれのコントローラ1個あたりIRQは8本、DRQ4本あり、ど ちらのコントローラも2個AT互換機にあるためIRQは0から15、DRQは0から7番ま でとなります。 このうちにはシステム上であらかじめ利用されているために他の目的には利用 できない番号がいくつかあります。現在のマザーボードではチップセット内に これらのコントローラは含まれているために単独の部品としては存在しません。 それぞれ PCのシステムに対して入出力にかかわる特定の処理の開始タイミン グを知らせるための信号です。例えばキーボードからの入力やシリアル回線 からデータを取り込む時にはIRQが使用されます。 一般のPCユーザにとっては拡張カードの設定等の時にお目にかかることが多い でしょう。 IRQやDRQの信号によってOSは「開始タイミング」を知る事ができますが、それ が何の開始であるかはそれぞれの信号線の番号に役割を割り当てるか、何らか の仕組みを工夫してOSが信号を受け取った時に原因を知る事ができるようにす る必要があります。 信号線の番号への割り当ては「電話のベルを4回ならした後に切ったら、私か らの電話だから、その直後にかけた電話を取ってほしい」、とか「5回ならし てから切ったら、ここに電話して欲しい」というような取り決めをしておく事 と似ています。 例えば3人以上の間でこのような取り決めをした場合「5回ならしたら私の所へ 電話して欲しい」という取り決めが複数あった場合、どちらに電話したらいい か分からなくなります。これと同じで複数のデバイスが割り込み番号を共有し た場合に問題が起きます。これがいわゆるIRQやDRQの「衝突」です。 PCIの場合はOS側で何から要求があったかを知る事ができるための仕組みを作っ てあるためIRQ等を共有することができます。これは先の例で言えばメッセー ジ機能のあるポケベルを使い、メッセージに用件を入れているようなものです。 以上のような理由でISAバスのデバイスではIRQやDRQを複数のカードで同じ番 号を割り当てると問題が起きます。PCI の場合は自動設定機能に加えIRQの共 有が可能であるため多くの場合で気にしないで済みます。 ただし実際に共有ができるかどうかはデバイスの性質、ドライバの作り方に依 存するため、RIVA128を使ったビデオカードのようにIRQを他のカードと共有し て割り当てると Windowsでは問題ないが XFree86 では問題が出る、といった 事も起きることもあります。 FreeBSDの場合、PnPに対応しているドライバは今の所少なく、また、ISAデバ イスのIRQなどの番号の認識を誤る事もトラブルの原因としては比較的多く見 られるようです。このため、Windows 等を利用する場合に比較するとより注意 深くカードなどの設定を確認しておく必要があります。 --- [管理番号 648] (最終更新 1999/02/17 23:58:45) Q. IBM ThinkPad 535E で HD を交換したいのですが。どのように外せますか? A. HD パッケージの外し方は次の手順で行えます。 (1) まず、バッテリーを外します。それで、匡体裏の手前側を見ると、2 本の ネジがあります。うち 1 本はバッテリーのくぼみの中です。これらを外しま す。 (2) 表に返して、パームレストに相当する部分 (キーボードの手前の空間) を ちょっと持ち上げると外れます。 (確か、キーボード側を先に持ち上げると思っ た) (3) 外した蓋の下の部分で、手前のほぼ中央に小さなネジが一つあります (他 のネジよりずっと小さいのでわかりやすい)。これを外します。 (4) これで HD のパッケージ (匡体手前のほぼ中央) が外れます。 --- [管理番号 649] (最終更新 2002/04/11 03:59:26) Q. CVS と CVSup はどう違いますか? また Anonymous CVS や CVSweb とはどう違いますか? A. それぞれ全然性格が違います。長いので最後にまとめをつけてあります。 1. CVS CVS (Concurrent Versions System) はソースコードのバージョン管理ツールです。 RCS や SCCS の仲間と思ったらいいでしょう。CVS リポジトリ (repository) と いうところに一括してバージョン管理ファイルを置いておくことで、複数の開発 者によるプログラムの開発作業を円滑に進めることができます。CVS リポジトリ はリモートホスト上にあっても構いません (remote cvs と呼ぶことがあります)。 開発者は自分の手元で行なったソースコードへの変更を、cvs(1) コマンドを使っ て CVS リポジトリに反映させたり、あるいは CVS リポジトリから任意のバージョ ンのファイルを取り出したりすることができます。 CVS リポジトリの操作をするには、 - CVS リポジトリの置かれたマシンにアカウントがあること - CVS リポジトリに対してアクセス権があること が必要です。例えば、FreeBSD の開発では、開発者 (core team や committer) は freefall.FreeBSD.org というマシンにアカウントを持っていて、そこにある FreeBSD のマスタ CVS リポジトリを操作して開発を行っています。当然権限の 無い人はリポジトリをいじることはできません。 CVS そのものに関して: 書籍では、 Karl Fogel: Open Source Development with CVS 竹内里佳訳、でびあんぐる監訳: CVS -バージョン管理システム- オーム社開発局, ISBN4-274-06372-0 また、info cvs に詳しい説明があります。 2. Anonymous CVS Anonymous CVS とは、FTP の場合でいう Anonymous FTP に似ています。通常の CVS では「匿名ユーザによるファイルの取り出しだけしたい」という要求を 満たせません。そこで、リポジトリの読み取りのみ誰にでも許可したサービス が Anonymous CVS となります。 FreeBSD の Anonymous CVS について: 3. CVSup CVSup は汎用のファイル配布ツールで、特に CVS リポジトリを取り扱うのに向い ています。CVSup によるファイル転送では変更された差分情報のみを送りますの で、Anonymous CVS に比べ遥かに効率的で短時間に処理することができます。ま た、リポジトリそのものをミラーするには CVSup が適しています。 CVSup を利用するには cvsup(1) と呼ばれる専用のプログラムが必要で、サーバ で動いている cvsupd(8) というサーバプログラムと通信します。FreeBSD では どちらも ports/packages に収録されています。 FreeBSD の CVSup について: 4. CVSweb CVS リポジトリを閲覧するための Web インタフェースです。個々のファイルの コミットログを参照したり、リビジョン間の差分を確認するのに向いています。 FreeBSD CVS Repository: 5. まとめ 以下○×表にしました。 CVS anoncvs CVSup CVSweb --- --- --- --- × ○ ○ ○ 匿名ユーザによるリポジトリの参照 ○ × × × リポジトリの変更 × × ○ × リポジトリのミラー ○ ○ ○ × 複数ファイルの処理 (ディレクトリ単位) ○ ○ × ○ コミットログや差分の表示 ○ ○ △ ○ プログラムは FreeBSD 以外でも動く ○ ○ × × プログラムは FreeBSD に付属 × × ○ × 処理効率 --- [管理番号 650] (最終更新 2004/04/09 05:05:18) Q. NIC ってなんですか? A. Network Interface Card の略で、「ネットワークカード」や 「イーサネットカード」と呼ばれるものと同じです。 マシンに NIC を差して、ケーブルを繋げばネットワークに 接続できるわけです。 --- [管理番号 651] (最終更新 1999/02/17 23:58:45) Q. ネットワークインタフェースの設定をしています. rc.conf を直せと 言われたのですが「ネットワークアドレス」と「ブロードキャストアドレス」を 書くところがありません. どこに書けばいいのですか? A. 例えば, rc.conf には以下のような行があるとおもいます. >network_interfaces="ed0 lo0" # List of network interfaces (lo0 is loopback). >ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" >ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. ifconfig_ed0 の行がきちんと書いてあれば, ネットワークアドレスと ブロードキャストアドレスは勝手に設定されますのでなにもしなくて構いません. 上の例では, ed0 に 192.168.1.1 という IP アドレスを設定し, ネットマスクは 255.255.255.0(24bit) にしていますが、この場合ネットワークアドレスは 192.168.1.0 に, ブロードキャストアドレスは 192.168.1.255 に設定されます. 計算の仕方は, ネットワークアドレス: IP アドレスとネットマスクの論理積 ブロードキャストアドレス: ネットワークアドレスと, 「ネットマスクを bit 反転したもの」の論理和 です. 上の例の場合, IP アドレス: 192.168.1.1 (= 0xc0180101) ネットマスク: 255.255.255.0 (= 0xffffff00) ですので, ネットワークアドレス: 0xc0180101 と 0xffffff00 の論理積をとって, 0xc0180100 = 192.168.1.0 ブロードキャストアドレス: 0xc0180101 と 0x000000ff の論理和をとって, 0xc01801ff = 192.168.1.255 となるわけです. --- [管理番号 652] (最終更新 1999/02/17 23:58:45) Q. ネットワークの組替えをしたら、ネットワークインタフェースカードの Link ランプがつかなくなってしまいました。どこを調べたらいいですか? A. とりあえず以下をチェックしてみてください。 1. ちゃんと RJ45 コネクタの爪が「カチン」と言うまで深く挿してますか? 挿さっているようでも実は端子が接触していないことがあります。 2. PC からのケーブルを、hub の cascade ポートに繋いでいませんか? 逆に、hub 同士を繋ぐときに cascade ポート以外のところに繋げていませ んか? または、hub の横にある cascade / 通常ポートの切り替えスイッチを間違 えていませんか? 3. クロスケーブルとストレートケーブルを間違って使ってませんか? 4. ネットワークインタフェースカードはちゃんとマザーボードに挿さってます か? PCI スロット (または ISA スロット) から抜けかかっていませんか? 5. DE-500 等のように、10Base-T/100Base-TX(10M/100Mbps) 切り替え式のネッ トワークインタフェースカードの場合、自動切り替えをやめて ifconfig を 使って手動でメディアタイプを変えてみてください。 6. ネットワークインタフェースカードはカーネルに認識されていますか? 7. hub を 4 台以上イモヅル式に繋いでいませんか? hubのイモヅル接続は 3 台 まで、という電気的制限があります。場合によっては 3 台以下でも駄目にな ります。 8. 残念ながら、一部のネットワーク機器には相性があることが知られています。 接続された 2 機器間の電気的特性があわないことがあるのです。 新しく増やした機材があったら、以前使えていたことのある機材ととりかえ てみてください。 --- [管理番号 653] (最終更新 1999/02/17 23:58:45) Q. Compaq 社の DeskProXL シリーズで Linux が動いているそうですが、 FreeBSD はなぜ動かないのですか? A. DOS ユーティリティで Compaq 特有の BIOS 割付けを AT 互換機用のアド レスに仮想 86モードを利用して割り当てているそうですが、その情報を LILO に引き継いでいるそうです。(あまり正確な情報では、ありません。) --- [管理番号 654] (最終更新 1999/02/17 23:58:45) Q. xlock を起動させようとすると xlock: Can not get hostbyname といって起動しません。ホストネームはちゃんと設定しているのですが、どう すれば起動できますか? A. /etc/rc.conf だけではなく、/etc/hosts にも hostname(とその IP address)を設定してある必要があります。 /etc/rc.conf で設定する hostname は hostname(1) が返す文字列を指定して いるだけであり、gethostbyname(3) が求める hostname と IP address の対 応は /etc/hosts または DNS によって解決されています。gethostbyname(3) の働きは、hostname と IP address の対応を書いた表の検索だというように 理解しておくと今後似たような問題にも対応できると思います。 --- [管理番号 655] (最終更新 1999/02/17 23:58:45) Q. IBM-PC/AT 互換機のベル(ビープ音)の音量は変化させることができるの でしょうか。 A. 原理的には不可能ではありませんが、現在の FreeBSD ではできません。工 作の得意な人はケースのスピーカに直列に可変抵抗を入れるなどして対応して ください。 ソフトウエア的にできることはビープ音の周波数と音の鳴る持続時間を変更す ることです。これはコンソールの場合と X上では設定の仕方が異なります。 (1)コンソール上での設定 kbdcontrol コマンド、または「\033[=;B」のエスケープ シーケンスをコンソールに出力することで変更します。 kbdcontrol -b . または、シェルから例えば、 echo "\033[=;B" ここで は整数値で次のような意味となります。 音の周波数 = 1193182 / (Hz) 持続時間 = * 0.1 (秒) 初期値はそれぞれ 1491Hz(pitch=800), 0.05秒(duration=1/2)となっています。 このため持続時間は初期値より短くできません。なお、 kbdcontrol -b normal とすると、duration=1 pitch=800 をセットしたことになります。 (2) X 上での設定 xset コマンドを使います。詳しくは man xset で調べて下さい。現在の XFree86(3.3.2) では xset b で、 は音量(%)となっていますが、実際は 50%の時に 1になるよう に をスケールします。また、コンソールの時とは違って は周波数そのもので、 はミリ秒単位の持続時間です。 従って、例えばコンソールの初期値と同じベル音を出すには、 xset b 50 1491 50 とします。なお、XFree86(3.3.2)での初期値は xset b 50 400 100 で、これはコンソールでの設定では kbdcontrol -b 1.2983 または echo "\033[=2983;1B" としたことに対応します。 --- [管理番号 657] (最終更新 1999/02/17 23:58:45) Q. ディレクトリの残り容量を自動で監視する方法はありますか。 A. cron とシェルスクリプトを使う方法があります。 ここでは 30分ごとに /varの使用容量を調べ、 90%を越えたら自動で foo@my.domainあてにメールを出す例を説明します。 rootアカウントで以下の作業を行います。 ディレクトリを作成します。 # mkdir /root/chkdisk 以下の内容でシェルスクリプト /root/chkdisk/chk.sh を作成します。 ------------------ cut here (start)---------------- #!/bin/sh df -k | awk '$6=="/var"{ print }' | awk '$5 > "90%" { print }' \ > /root/chkdisk/alarm ; if [ -s /root/chkdisk/alarm ] then cat /root/chkdisk/head > /root/chkdisk/work.txt cat /root/chkdisk/alarm >> /root/chkdisk/work.txt cat /root/chkdisk/work.txt | sendmail -t rm /root/chkdisk/alarm rm /root/chkdisk/work.txt fi exit 0 ------------------ cut here (end)---------------- このシェルスクリプトに実行権を設定します。 # chmod +x /root/chkdisk/chk.sh 以下の内容で /root/chkdisk/head を作成します。 ------------------ cut here (start)---------------- To: foo@my.domain Subject: Check the space on /var, please. ----- このメールは cronにより自動で発送されました。 /var の残り容量が減ってきましたので確認してください。 ------------------ cut here (end)---------------- つぎに /etc/crontab を編集して次の 3行を追加します。 最後の行の意味は、30分ごとに上記で説明した chk.shを rootアカウントで 実行することです。 ------------------ cut here (start)---------------- # # check disk space on /var */30 * * * * root /root/chkdisk/chk.sh ------------------ cut here (end)---------------- /etc/crontabを編集すると cronを起動し直さなくても数分の内にシステムが 変更を認識します。 以上で設定が終りました。 もし、/varでなく別のディレクトリを監視したい場合は上記で作成したファイル 中の '/var' をコマンド df -k の結果の 6番目の文字列と置き換えてください。 例えば以下の例のように /home/foo を監視したいなら '/var' を '/usr'に置き換えます。 % df -k /home/foo Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0s2f 595623 361235 186739 66% /usr --- [管理番号 658] (最終更新 1999/02/17 23:58:45) Q. あるプログラムを実行しようとしたら、 /usr/libexec/ld.so: warning: /usr/lib/libc.so.3.0: minor version 0 older than expected 1, using it anyway のようなエラーになります。どうしたら良いでしょうか? A. 例えば,あなたが利用しているのが FreeBSD 2.2.1-RELEASE なのに、 FreeBSD 2.2.6-RELEASE 用の package をインストールしてしまった、などと いう場合にこのエラーが出ます。 つまり、ある特定バージョンの OS 用にダイナミックリンクするよう作成され たプログラムを、それより古いバージョンの OS で実行しようとした場合に出 るエラーです。そのプログラムを実行しないのが賢明ですが、どうしてもその プログラムを実行(利用)したいのであれば、 1. 自分が使用しているバージョン用のプログラムを入手する。 (FreeBSD 2.2.1-RELEASE を使用しているのなら、 FreeBSD 2.2.1-RELEASE 用のプログラムを入手する) 2. ports を使うなどして自分でコンパイルし直す。 3. 最新の RELEASE に Upgrade する。 という方法をとらなければなりません。 「shared library(上記の例だと libc.so.3.1 です) だけ新しい物を持って来る。」 や、 「今 持っている shared library を copy して、 バージョン番号だけをごまかす。」 などの無理な対処は、プログラムの誤動作を引き起こす可能性があり、非常に 危険ですからやめましょう。 --- [管理番号 659] (最終更新 1999/02/17 23:58:45) Q. コマンドラインから mount_nfs すると正常にマウントできるディレクト リが、amd を使ってマウントするとマウントには成功しますが中身が見えませ ん。(permission denied. で拒否されます) A. ある種の NFS サーバは特権 port 以外からの NFS のリクエストを拒否し ます。例えば NetBSD-1.3 を NFS サーバに使うと、デフォルトではそうなり ます。2.2-RELEASE 以降の mount_nfs は、デフォルトでは特権 port から NFS のリクエストを発行しますが、amd は特権 port 以外から NFS リクエス トを発行しようとするためにこうなります。 対処法は二つあります。 (1) サーバの特権 port 制限を外す。NetBSD の場合は、/etc/exports の エントリに、-noresvport を加える。 (2) amd の場合でも特権 port からリクエストするように変更する。amd マップの該当エントリに "opts:=resvport" というオプションを加え る。 --- [管理番号 660] (最終更新 1999/02/17 23:58:45) Q. あるプログラム (例えば packages の xemacs/mule/angband/nethack/netmaj 等) を実行したら、 ld.so failed: Can't find shared library "libXaw.so.6.1" というエラーが出て、実行できません。 libXaw.so.6.1 の部分には、ほかにも libICE.so.6.3,libPEX5.so.6.0,libSM.so.6.0,libX11.so.6.1, libXIE.so.6.0,libXext.so.6.3,libXi.so.6.0,libXmu.so.6.0, libXp.so.6.2,libXt.so.6.0,libXtst.so.6.1,liboldX.so.6.0 がはいります。 A. libX* は X のライブラリの一つです。これが見つからないということは、 おそらく X がインストールされてないのでしょう。 コンソール上動くアプリケーション (ウィンドウを表示しないアプリ ケーション) であっても、libXaw などの X のライブラリを必要とする 場合があります。 X をインストールしてください。でも全部インストールする必要は ありません。ライブラリだけで十分です。たとえば、/stand/sysinstall を 起動し [Configure]->[Distributions]->[XFree86]->[basic]->[bin] を選択してインストールしてください。 --- [管理番号 662] (最終更新 2001/05/07 03:21:09) Q. ppp で filter を設定していますが、cvsup が動きません。 A. cvsup は port として 5999 を使うので以下のように指定してください。 また、cvsup を multiplexed モードで動かす必要があります。最近の cvsup (cvsup 16.0 以降) のデフォルトは multiplexed モードですが、 明示的にこのモードにするには cvsup -P m <以下略> のように指定してください。 [2.2.8-RELEASE 以降] # cvsup set filter in rule-no permit tcp src eq 5999 estab set filter out rule-no permit tcp dst eq 5999 [2.2.7-RELEASE 以前] # cvsup set ifilter rule-no permit tcp src eq 5999 estab set ofilter rule-no permit tcp dst eq 5999 なお、rule-no は filter 指定時のルール番号です。 --- [管理番号 663] (最終更新 1999/02/17 23:58:45) Q. muleを使って、漢字コードを変換したいのですが。 A. ファイルをセーブする前に、漢字コードを変更できます。 << mule-2.3 の場合 >> C-x C-k f で ミニバッファに File-coding-system: と出ますので、漢字コードを入力しましょう。 スペースを押すと候補の一覧がでます。 EUC だったら、*euc-japan* です。 << XEmacs-20.4 の場合 >> メニューバーのMuleから Set coding system of Buffer file を選択するか、C-x C-m f で File-coding-system: と出ます。漢字コードの選択は上と同じです。 --- [管理番号 664] (最終更新 1999/02/17 23:58:45) Q. Canon の バブルジェットプリンタを ghostscript で使おうとしているの ですが、DEVICE に何を指定したらよいのですか? A. に ghostscript で 動作が確認されているプリンタが 記述されています。 上記に記述されていないものに関しても 以下のものが使用可能であろうと いう情報が に あります。 DEVICE=bj10e BJ-5/10ex/10sx/20/30/100/200/200e/200ex/230 DEVICE=bj200 BJ-30/100/200/200e/200ex/230 DEVICE=bjc600 BJC-70/80/210/240/250/600/600e/610/620/800/820/4xxx DEVICE=bjc800 BJC-70/210/240/600/600e/610/620/800/820/4xxx --- [管理番号 665] (最終更新 1999/02/17 23:58:45) Q. 1台のコンピュータに2枚のビデオカードを挿し,XFree86 3.3.2 を用いて 2台のディスプレイを同時に使用(Dual-Display, Multi-Head)したいので すが? A. 現状では XFree86 は複数のビデオカードを同時に使用することはできません. Accelerated-X や Metro-X 等の商用 X サーバはサポートしているようです. --- [管理番号 666] (最終更新 2003/11/17 02:28:48) Q. CD-ROM や MO のマウントをする際、いちいち root になるのが面倒なのですが。 A. amd (Auto Mount Daemon) という、あるディレクトリを参照すると自動的にマ ウントしてくれるシステムがあります。 amd を利用するためにはカーネルに NFS が組み込まれていなければなりませ ん。具体的にはカーネルコンフィギュレーションファイルに options NFS という行が必要ですが、デフォルトの GENERIC カーネルには含まれています ので、この行をあえて削除していないならば amd は利用可能です。 現在、次のようにマウントできているとします。 ATAPI CD-ROM mount -t cd9660 /dev/acd0a /cd SCSI MO (UFS 形式) mount /dev/da0a /od SCSI MO (FAT 形式) mount -t msdos /dev/da0s1 /odpc ATA HDD (FAT 形式) mount -t msdos /dev/ad1s1 /dos この場合は次のように /etc/amd.map を書きます。 /defaults fs:=/a/${key} cd type:=program;\ mount:="/sbin/mount mount -t cd9660 /dev/acd0a ${fs}";\ unmount:="/sbin/umount umount /dev/acd0a"; od type:=program;\ mount:="/sbin/mount mount /dev/da0a ${fs}";\ unmount:="/sbin/umount umount /dev/da0a"; odpc type:=program;\ mount:="/sbin/mount mount -t msdos /dev/da0s1 ${fs}";\ unmount:="/sbin/umount umount /dev/da0s1"; dos type:=program;\ mount:="/sbin/mount mount -t msdos /dev/ad1s1 ${fs}";\ unmount:="/sbin/umount umount /dev/ad1s1"; amd を実行するためには portmap(8) というデーモンを起動しておかなく てはなりませんが、FreeBSD 4.4-RELEASE 以降では portmap が標準で起動 しなくなりました。 もし ps ax | grep portmap して portmap が起動していないようなら、amd よりも先に # portmap として portmap を起動してください。なお、/etc/rc.conf に amd_enable="YES" と記述してマシンを再起動すれば、自動的に portmap が起動されます。 ディレクトリを作成して、実行テストをします。 % mkdir -p /a/{cd,od,odpc,dos} % amd -l syslog -c 20 /mnt /etc/amd.map もし /mnt/cd が参照 (ls /mnt/cd 等) されたら、amd は % mount -t cd9660 /dev/acd0a /a/cd を自動的に実行し、/a/cd へのシンボリックリンクを /mnt/cd に作成します。 また、一定時間が経過すると自動的にアンマウントします。この場合は -c 20 によって 20秒に設定されます。 ここまでうまく行ったら起動時に amd を起動するようにしましょう。 /etc/rc.conf を次のようにします。 amd_enable="YES" amd_flags="-l syslog -c 20 /mnt /etc/amd.map" また、 % ln -s /mnt/cd /cd のようにしておくと、/cd にアクセスすると /mnt/cd にアクセスしてくれて 少し便利です。デバイス名はご自分の環境に合わせて下さい。 さらに、手動でCD-ROMなどを eject したい場合は、 % amq -u /mnt/cd % cdcontrol -f acd0 eject (もちろん、かわりに eject ボタンを 押してもいいです) などとしてください。これは一般ユーザ権限で実行可能です。 また、メディアが挿入されていない状態で /mnt/cd などにアクセスすると、 amd は automount が失敗したことを認識してくれません。この場合は、再度 amq -u /mnt/cd としてください。 --- [管理番号 667] (最終更新 1999/02/19 03:47:16) Q. X を終了できません。何もウィンドウが表示されていない状態で止ってし まいます。 A. ホームディレクトリの ~/.xserverrc の設定は間違いありませんか? ~/.xserverrc に関しては [管理番号 610] を参照してください。 また、Ctrl、Alt、BS キーを同時に押すと、X を強制終了させることが できます。 --- [管理番号 669] (最終更新 1999/02/17 23:58:45) Q. 起動時から、IP と IPX の両方のプロトコルを BIND したい。 A. /etc/rc.conf を編集します。例えば NE2000 互換 NIC ならば、以下のよ うに記述します。 ifconfig_ed0="inet 192.168.0.254 mask 255.255.255.0" ifconfig_ed0_ipx="ipx 0xFF" これで起動時に NIC に IP がアドレス 192.168.0.254 で、IPX がネットワー クアドレス (FF)h で振られます。 --- [管理番号 670] (最終更新 1999/02/17 23:58:45) Q. FreeBSD のコンソールでログインして、そこから Linux マシンに telnet でログインしようとすると $ telnet linux Trying 192.168.1.1... Connected to linux Escape character is '^]'. Connection closed by foreign host. となってログインできません。FreeBSD から linux へ rlogin はできます。 また、linux 側でアクセス制限はしていません。 A. telnet コマンドは手元の環境変数 TERM を相手の telnetd に知らせます。 コンソールでは環境変数 TERM は cons25 に設定されています。cons25 とい うタイプは FreeBSD 特有のものですので、他の OS では定義されていないこ とがほとんどです。定義されていなくても普通は支障がないのですが、 Linux(slackware 3.4) の場合はなぜか telnetd がこけてしまいます。 コンソールで環境変数 TERM を vt100 に設定しなおせばログインできるでしょ う。 --- [管理番号 671] (最終更新 2002/06/18 23:56:59) Q. 既存の FreeBSD システムにハードディスクを増設する手順を教えて下さい。 A. 以下の手順になります。 0) バックアップをとります。 以下の作業は大変 *危険* で、ほんのちょっとした間違いで既設のハードディ スクの内容を失う可能性があります。必ずバックアップを取ってから作業を行 ないましょう。 1) ドライブを接続します。 注) SCSI ドライブから FreeBSD をブートしていて、IDE ドライブを増設した り、FreeBSD を IDE のプライマリ・マスタ以外のドライブに入れている場合 には注意が必要です。[管理番号 85] を確認してください。 2) 再起動後、dmesg で新しいドライブが認識されていることを確認します。 SCSI ボードと、SCSI ドライブを増設した場合の例を下に示します。(具体的 な表示は製品によって変わります) aic0 at ... aic0 waiting for scsi devices to settle (aic0:0:0): "SEAGETE ST32155N 0594" type 0 fixed SCSI 2 sd0(aic0:0:0): Direct-Access 2049MB ( 4197405 512 byte sectors) この例では、以下の作業の対象は "sd0" ドライブであることが確認できまし た。自分が増設したドライブが確認できない場合は *絶対* この先に進んでは いけません。 3) root権限で /stand/sysinstall を起動します。 4) スライス情報を書き込みます。 「設定」/「パーティション」(Configure/Partition) を選びます。ディスク の選択画面が表示されます。増設したドライブを選択します。(ここで間違う と既存のドライブのデータを失うことになります) 「A」でディスク全体を FreeBSD で使うようにするのが最も簡単です。いくつ かのスライスに分けたい時や既存のスライスを保存/解放したいときなどは 必要な操作を行なってください。 「W」で書き込みます。ブート・マネージャに関しては、このドライブからブー トしない場合は気にする必要はありません。適当に設定して下さい。 注) 下記 5) 参照 「Q」でこの画面を終了します。 5) ディスクラベルを書き込み、ファイルシステムを作ります。 「ディスクラベル」(Label) を選択します。 「C」で新たな FreeBSD のパーティションを作成します。最初にパーティショ ンのサイズを聞かれますが、デフォルトで使用可能な全ブロックサイズが指定 されますから、ディスク全体を一つのパーティションで使用する場合はこのま まで良いでしょう。次にパーティションのタイプを聞かれますから、ファイル システムを選択します。さらにそのパーティションをマウントする位置を聞か れます。/mnt などのパスを指定します。このとき、指定したディレクトリが なければ、自動的に作成されます。 「W」で書き込みます。このとき、 「マウントエラー /dev/sd0s1e デバイス, /mnt マウントポイント: Invalid argument」 などと出た場合、一旦 /stand/sysinstall を終了し、4) で「W」の書き込みを せずに、もう一度 3) から作業をしてください。 「Q」でこの画面を終了し、/stand/sysinstall を終了します。 6) ここまでで、ファイルシステムができあがっているはずです。5 で作成 したパーティションをマウントしてみましょう。 # fsck /dev/rsd0s1e 念のために確認 # mount -t ufs /dev/sd0s1e /mnt マウント 7) 起動時に自動的にマウントさせるには、以下の行を /etc/fstab に追加 します。 /dev/sd0s1e /mnt ufs rw 1 1 8) 中・上級者向けへの注意事項ですが、デバイス・スペシャル・ファイルの 作成についても、自動的に /stand/sysinstall が作成してくれます。手動で # cd /dev;./MAKEDEV sd0s1a とする必要はありません。 --- [管理番号 672] (最終更新 1999/02/17 23:58:45) Q. Mew を使ってメールの読み書きをしています。Microsoft Outlook を使って いる友人に 添付ファイルを付けてメールを送ったところ 「添付ファイルには ファイル名を付けて送ってくれ。」と言われました。Mew にはファイル名を指定 する機能がないので困ってしまいます。 A. Microsoft Outlook は ファイル名でどんなファイルであるか判断している様 で、添付ファイルに名前がついていないと、適当な名前を付けて拡張子を .dat としてしまう様です。 添付ファイルのファイル名は、該当パートのヘッダに Content-Disposition: attachment; filename=ファイル名 で指定します。Mew では 以下の様に操作します。 1. 通常通り 添付ファイル付きのメールを作成します。 2. 日本語のファイル名を付けたいときは 予め 'D' を使って Content-Description: を作っておきます。 3. c-c c-m で MIMEをプレーンな状態に展開します。 4. 該当パートのヘッダに Content-Disposition: attachment; filename=ファイル名 の行を書き加えます。このとき、日本語のファイル名は MIME エンコード された状態のものにしましょう。 2. の部分で作成した日本語の部分は 'Content-Description:' というヘッダ にありますので、これをコピーす れば OK です。 5. 編集が完了したら c-c c-c でメールを送信します。 なお、Mew 1.93b では Content-Disposition: に対応しており、マルチパート・ エディタ上で 'P' で Content-Disposition: を挿入できます。 --- [管理番号 673] (最終更新 1999/02/17 23:58:45) Q. Mewでメーリングリスト (ML) から届いたメールに返事を書くと、MLと発信 者の両方にメールを送ってしまいます。届いたメールにReply-Toが付いていて も、From:にも送ってしまうようです。どうしたら良いのでしょうか? A. Mew のマニュアルによると、これが Mew のルールです。Mew は、可能性の ある配送範囲を列挙し、不要ならユーザが削る」という単純なルールしかあり ません。配送範囲を推測するのは困難だからです。 それでも配送範囲を限定したいのであれば、~/.emacsに (setq mew-replyto-to-list '("Reply-To:")) を追加すると、Reply-Toで指定されたアドレスだけに返事を送って、From:に は送らなくなります。Mewでは、返事を送るアドレスのデフォルト値を、以下 の変数で指定できます。 mew-replyto-to-list Reply-To:が存在する場合に、To:に書くアドレス (デフォルト: "Reply-To:" "From:") mew-replyto-cc-list Reply-To:が存在する場合に、Cc:に書くアドレス (デフォルト: "To:" "Cc:" "Apparently-To:") mew-noreplyto-to-list Reply-To:が存在しない場合に、To:に書くアドレス (デフォルト: "From:") mew-noreplyto-cc-list Reply-To:が存在しない場合に、Cc:に書くアドレス (デフォルト: "To:" "Cc:" "Apparently-To:")  なお、メールを送る前にそのメールが誰に送られるのかを確認する習慣を付 けておいた方が無難です。 --- [管理番号 675] (最終更新 1999/02/17 23:58:45) Q. パーティションの振り分けですが、/(ルート)だけという構成では 問題があるでしょうか? A. パーティションを分割することによって以下のようなメリットと デメリットが生じます。前もってよく検討して、方針を決めて 置きましょう。 分割するメリット サーバーに使う場合などを除いた一般的な運用であれば FreeBSD のインストーラがデフォルトで使う数値でほとんど 問題がないでしょう。 パーティションを分ける理由としては、ディスク容量を使いきってし まった時のことがあります。 例えば /home というパーティションの中で作業しているとします。 何らかのミスで /home がいっぱいになってしまっても / や /usr にある 重要なファイルの読み書きに影響せずにすみます。これが、1パーティション になっていると、重要なファイルが書き込めずにシステムがクラッシュしたり 不安定になったりする原因になってしまいます。 分割するデメリット 例えば mail や news をため込むような使い方をする場合 /var をあふれさせ てしまう例があります。また ports / packages のデータベースも /var 以下 に作られこれも案外大きくなる場合があります。 経験不足、あるいはディスク容量に余裕がないなどで各パーティションの 使用量を見積もることが難しい場合には、 / のみの構成を選択することに 十分意味があります。 また、一旦パーティション分けを行うと簡単に切り直しができないので、 ある程度のスキルがないと予想に反した使用状況になった場合に修正がききません。 --- [管理番号 676] (最終更新 1999/02/17 23:58:45) Q. telnet で login しようとすると login プロンプトが表示されるまで 1分以上かかります。ping は正常に返ってきますし、マシンの負荷が 高いわけでもありません。 A. FreeBSD の telnet は、ログをとるために telnet してきた端末の IP アドレスからホスト名を調べようとします。 このとき、DNS による 名前の逆引きを正しくできず、タイムアウトする までに時間が掛かっていることが原因だと思われます。 このような症状のときには DNS の設定をまず最初に疑うと良いでしょう。 相手側 (telnet を受ける側) のマシンで、 /etc/resolv.conf で指定 している DNS server を使用して、こちら側のマシン (telnet を実行する マシン) の IP アドレスから hostname を、検索できるかを % nslookup "こちらのマシンのIPアドレス" で確認します。Server failed のようになってしまうのであれば、 telnetd が DNS への検索にかかる時間の分 login プロンプトが 表示されるまで待たされることになります。 解決方法は、 1.相手側から到達できる DNS サーバを 相手側の /etc/resolv.conf に記述する 2.DNS を使用しないように 相手側の /etc/host.conf から bind を削除する、 3.または、/etc/host.conf で、bind よりも、hosts を先に記述し、/etc/hosts ファイルに hostname と IP の対応表を記述しておく。 などがあります。 --- [管理番号 677] (最終更新 1999/02/17 23:58:45) Q. 3台のパソコンを繋いで LAN を構築しようと思いますが、 名前の解決を /etc/hosts で行うのと DNS で行うのでは、 どちらがよいのでしょうか? A. ホストの台数が少ない場合 /etc/hosts でも可能ですが、 LAN を構築するなら DNS をお勧めします。 LAN やインターネットの仕組みを理解する上で DNS の設定は 非常に役に立ちますし、まして、将来インターネットに接続する つもりなら DNS は必須といっていいでしょう。 最初の設定は大変ですが、一度設定してしまえば、 ・逐次 全てのホストの /etc/hosts を編集しなくても済みます ・キャッシュとして役に立ちます ほかにも、こんなこと(^^;や、あんなこと(^^;;;や、いろいろ便利な ことがあるので、一度挑戦してみてはいかがでしょうか。 --- [管理番号 678] (最終更新 2001/03/07 02:08:44) Q. ppp(8) コマンドを auto モードや ddial モードで起動したときに、診断ポート (3000/tcp) への Internet 側からのアクセスを拒否したいのですが、どうす ればいいのでしょうか? A. TCP ソケットを使う必要がないのならば、LOCAL ドメインソケットを使うよう に変更する方法があります。これならば、外部からの直接アクセスは自ずとで きなくなります。/etc/ppp/ppp.conf の該当セクションで、`set server' 行を 探して、 set server /var/tmp/internet "" 0177 などのように変更します。アクセス方法は pppctl(8) コマンドを使って、 % pppctl /var/tmp/internet とすればあとは今までと同じです。 何かの理由で TCP ソケットを使わなければならないのであれば、ppp(8) のパ ケットフィルタリングを使って、外部からのアクセスを拒否するようにしてく ださい。次のような設定を ppp.conf の該当セクションに追加すればよいでしょう。 set filter in deny 0 MYADDR tcp dst eq (3.3R以降) set filter in deny tcp dst eq (2.2.8R以降) set ifilter deny tcp dst eq (2.2.7R以前) ここで、 はフィルタのルール番号、 は `set server' で指定したポート番号です。詳しくは ppp(8) のマニュアルを参照してください。 --- [管理番号 679] (最終更新 1999/02/17 23:58:45) Q. FreeBSD-users-jp に質問したところ、「hogehoge は動いていますか? ps -aux | grep hogehoge で確認してください」と言われました。起動してい るはずなのに、どうしても、hogehoge を含む行が表示されません。 A. ps -aux をキャラクタ端末や kterm 上で行なうと、端末に入りきる分しか ps(1) は結果を出力してくれません。具体的には、横 80 桁の kterm で ps -aux を行なった場合、ps の出力のうち、各行の頭 80 桁分しか表示され ません。 /etc/local/sbin/hogehoge をフルパスで /etc/local/etc/rc.d 内のスクリプ トから起動しているような場合、ps -aux の出力結果の内、実行ファイル名の 部分が入り切らないことがあります。もちろん grep(1) で実行ファイル名を 指定しても見つけられないわけです。 プログラムが動いていることが確認できればよい時や、プロセス ID を知りた い時は、ps -ax か ps -acx を使うと確実でしょう。 また、より詳細なデータが知りたい時は、端末幅で出力が途切れず、次の行に 折り返して結果が表示されるように ps -auxwwを使うと確実でしょう。 --- [管理番号 680] (最終更新 1999/07/02 16:25:01) Q. od ドライバを使っていますが、買ったばかりのリムーバブルディスク (MO,PD,DVD-RAM etc.) を ufs でフォーマットするために disklabel しよう とすると、 disklabel: ioctl DIOCSDINFO: No space left on device というメッセージが出てできません。 A. A1. この現象は、CURRENT と 2.2 系で同時期に行われた、ディスクラベル の書き 込み時のチェック強化によって発生しているものだと思われます。2.2.2R 以前の 古いdisktab エントリを使っていると生じます。回避策としては、使っているドラ イブ(MO,PD,DVD-RAM etc.)用の disktab エントリに新たに su パラメータを追加 するか、最新の od-driver パッケージ(現在のところ 2.2.7R 用まで用意されてい ます) に含まれている新しい disktab エントリに置き換えてください A2. disktab エントリに su パラメータがあっても上記のことが起こる場合はすで にディスクメディアが MSDOS/WIN95 などでフォーマットされており、スライス化 されているために disklabel が空き領域をみつけられなくてエラーになっている と思われます。fdisk コマンドでスライスの情報を消すか、以下のように dd if=/dev/zero of=/dev/od0 bs=2048 count=4 dd コマンドでディスクの先頭部分に 0x0 を書き込めば disklabel できます。 A3.また別の方法として、以下のコマンドでパラメータを自動設定して書き込むこ とも可能です。 disklabel -r -w -B od0 auto この場合は、disktab の修正は必要ありません。ただし、最小限のパーティション 設定になっているので必要ならあとでディスクラベルを編集しなければなりません。 --- [管理番号 681] (最終更新 1999/02/17 23:58:45) Q. Windows95 上の Excel で書いたファイルがメールに添付されて送られてき たのですが、内容を見るにはどうしたら良いでしょうか? (FreeBSD 2.2.5-RELEASE 上 で Mule と Mew でメールを読んでいます。) A. まず、添付ファイルがどのような方式でエンコードされているか確認しま す。多くのメールソフトでは MIME か uuencode のどちらかを使っています。 1) MIME の場合、 MIME のマルチパートで送られていれば Mew の場合、一覧の数字と日付の間に `M' が表示されます。そして、添付ファイルのところを読もうとすると、 `Save this part ?' などと聞かれるので、保存してしまえば良いです。 2) uuencode の場合、 uuencode(1) されているメールは本文中に `begin 600 FILE.XLS' 等と書かれ た行からエンコードされた文字列が続きます。たとえば +inbox の 3 のメー ルがこの形式だとすると、 uudecode -c ~/Mail/inbox/3 とするとデコードされてファイルができあがります。 できあがったファイルが Windows のアプリケーションのものならば Windows の世界で扱わなければなりません。 たとえば、DOS フォーマットしたフロッピーを、 mount -t msdos /dev/fd0 /mnt と mount し、できあがったファイルをコピーすれば、Windows で、そのファ イルを見ることができます。詳細は [管理番号 640] を参照してください。 Samba というソフトウェアを用いることによって、FreeBSD マシンを Windows のファイルサーバにして、Windows マシンからアクセスして見ることもできま す。Samba については [管理番号 414] を参照してください。 --- [管理番号 682] (最終更新 1999/02/17 23:58:45) Q. CVSup の実行中いきなりリブートしてしまいます。/var/log/messages に /kernel: Out of mbuf clusters - adjust NMBCLUSTERS or increase maxusers! というメッセージが残ってました。 A. これはネットワークバッファ (特に mbuf クラスタ) の仮想メモリが無くなっ たことを示しています。コンフィギュレーションファイルに options NMBCLUSTERS=2048 の一行を付け加えてカーネルを再構築してください。詳しくは を御覧ください。なお、カーネル再構築後、リブートしたら netstat -m で mbuf クラスタの割り当て状況を確認することを御勧めします。max が設定 された値になっていればいいわけです。 --- [管理番号 683] (最終更新 1999/02/17 23:58:45) Q. sendmail を使っているサイトでメールの転送をしてもらっています。 今般、事情により転送先を変更しようと思って $HOME/.forward に新しい転送 先のアドレスを書いたのですが、どうしても新しい転送先に送ってくれません。 (mail コマンドで新しい転送先のアドレスを指定するとちゃんと配送されます。) A. /etc/aliases ファイルにそのアカウントに対する転送先が既に書かれて いるのだと思います。(これまでたまたま /etc/aliases と $HOME/.forward の転送先が同一だったため気が付かなかったのかもしれません。) /etc/aliases に転送先が書かれている場合は $HOME/.forward は参照されま せん。/etc/aliases ファイルは一般ユーザでも読めるので確認してみましょ う。 定義されているときは、管理者に頼んで /etc/aliases の転送先の定義を書き 換えるか、転送の設定を外してもらいましょう。 --- [管理番号 684] (最終更新 2002/03/07 15:32:11) Q. FreeBSD を CD-ROM からインストールしました。インストールが終了し 再起動したら、またインストール画面が現れて、FreeBSD が起動しません。 どうなっているのでしょうか? A. 現在、入手可能な FreeBSD の CD-ROM はブート可能になっています。 BIOS の設定によっては再起動後 CD-ROM からブートしてしまいます。 インストール終了時のメッセージに、「 FD や CD-ROM を抜くように」と 書かれています。再起動をするときは、フロッピーといっしょに CD-ROM も 抜くか、BIOS で CD-ROM から起動しない様に設定しておかなくてはいけま せん。 --- [管理番号 685] (最終更新 1999/02/17 23:58:45) Q. Netscape Navigator 4.x または Netscape communicator 4.x をインストール しましたが、Proxy 設定の項目が見当たりません。 A. Edit -> Preferences で Preferences ダイアログを出します。Advanced の下に Proxies があるのですが、`Advanced' の文字の部分をクリックしても 出ません。`Advanced' の文字の左側にあるシンボル (三角形) の部分をクリッ クして下さい。 --- [管理番号 686] (最終更新 1999/02/17 23:58:45) Q. NAT 機能付の iij-ppp で LAN を Internet に繋げています。その iij-ppp の走ってるサーバーに LAN 上から telnet した時もダイアルしてし まうのですが、ダイアルしないようにできませんか? A. telnet する時に名前から IP アドレスへの変換やその逆変換をするために 外部の DNS を呼んでいることが考えられます。そうだとするとローカルで変 換できれば、ダイアルしなくなります。 telnet するときに接続先を IP アドレスで指定したときと名前で指定したと きにダイアルするかどうか調べてください。 1. 名前で指定したときにダイアルするならば... クライアント側の /etc/hosts ファイルや、ローカルの DNS で名前から IP アドレスに変換できるように設定されているか確認してください。 hosts ファイルに問題がなく /etc/resolv.conf ファイルに LAN 上にない DNS のアドレスがあるときには、DNS サーバを呼ぶ前に hosts ファイルを使っ て変換するように /etc/host.conf ファイルを書き変える必要があります。 host.conf ファイルの bind より前の行に hosts という記述を加えます。 2. IP アドレスで指定したときにダイアルするならば... サーバー側での /etc/hosts ファイルと /etc/host.conf ファイルを確認して ください。サーバーは、接続元の記録のためにクライアントの IP アドレスか ら名前への変換をしようとします。 3. どちらの時にもダイアルするならば... サーバとクライアントの両方の設定を確認してください。 tcpdump(1) などを使って LAN 上に流れるデータを監視すると、ダイアルする トリガーとなるデータを推測できます。 --- [管理番号 688] (最終更新 2004/04/09 05:05:18) Q. PCI バス上のレジスタを見るツールはありますか? A. FreeBSD 上で使うソフトと、MS-DOS 上で使うものがあります。 FreeBSD では、Kernel が一部情報を表示します。また、pciconf(8) で ベンダーやクラスを表示したり、任意のレジスタの値を読んだり書いたりできま す。このほかに XFree86 には、scanpci コマンドが含まれていて、こちらでも 調べることもできます。 また scanpci は、DOS にも対応しています。 redhat社 (旧 cygnus社) の GNU-Win32 プロジェクト による gcc でもコンパイルでき、Windows 時の レジスタを調べることもできます。この場合は、gcc -DMSDOS scanpci の ように -DMSDOS を付けてコンパイルしてください。 が参考になるでしょう。 MS-DOS では、pciinfo コマンドが使えます。 このコマンドは、I・O DATA の WWW ページ から手に入れられます。 --- [管理番号 689] (最終更新 1999/02/17 23:58:45) Q. FreeBSD の ports と packages はたくさんありますが、ファイル名だけでは どんな機能のプログラムなのかわかりません。 A. ports(packages) になっているソフトの簡単な紹介として と、それを日本語に翻訳した があります。 --- [管理番号 690] (最終更新 2002/08/24 06:22:40) Q. コマンドの実行例を教えてもらったので、さっそく実行しましたが "Command not found." と叱られました。 A. どのように入力しましたか? 1. "# foo" と入力しなさいと言われたので、そのまま "# foo" と入力した場合: コマンドの実行例を示す時に、プロンプトをつけて説明することがあります。 今回の場合、"#" 自体がプロンプトで、入力するのは "foo" だけになります。 プロンプトには、"#" のほかに "%" や "$" があります。これらの違いは、 [管理番号 639] を参照してください。 2. "foo" だけ入力した場合: そのコマンドがインストールされていないか、そのコマンドのあるディレクトリ にパスが通っていません。 まずそのコマンドが存在するか確認してください。次のように find(1) を使う と簡単です。 % find / -name foo -print これで foo が見つからなければ、インストールされていません。 見つかったならば、パスが通っていません。絶対または相対パス付でコマンドを 指定してください。たとえば、find(1) によって /usr/local/sbin/foo と表示 されたら /usr/local/sbin/foo と入力してください。よく使うコマンドならば、そのディレクトリをパスに 追加しましょう。 % setenv PATH ${PATH}:/usr/local/sbin (csh・tcsh 系の場合) % PATH=${PATH}:/usr/local/sbin (sh ・bash 系の場合) これで "foo" と入力しただけで /usr/local/sbin/foo が実行できるようになります。 なお、カレントディレクトリ (.) はパスに加えないようにしましょう。 → [管理番号 130] 3. 絶対パスまたは相対パスを指定してもダメな場合: foo は、スクリプトでありませんか? スクリプトを実行するプログラムが見つから ないときにも、このエラーメッセージが表示されます。foo の 1行目が #!/dokokano/nanntoka のようになっているなら、/dokokano/nanntoka が存在して実行可能であることを 確かめてください。nanntoka が別のところにあれば、正しいディレクトリ指す ようにさすように 1行目を書き換えてください。 それでも Command not found となる場合は、 % head -1 foo | hd として、1行目をダンプしてみてください。もし 00000000 23 21 2f 64 6f 6b 6f 6b 61 6e 6f 2f 6e 61 6e 6e |#!/dokokano/nann| 00000010 74 6f 6b 61 0d 0a |toka..| となっているなら、Windows・DOS の改行コード 0x0D 0x0A になっているため、 #!/dokokano/nanntoka(0x0D) というコマンドを実行しようとして失敗している、ということです。UNIX の 改行コードは 0x0A ですので、 00000000 23 21 2f 64 6f 6b 6f 6b 61 6e 6f 2f 6e 61 6e 6e |#!/dokokano/nann| 00000010 74 6f 6b 61 0a |toka.| となるように修正して下さい。お手軽な改行コード変換の方法としては、 % qkc -u file があります。qkc は japanese/qkc として port/package に含まれています。 --- [管理番号 691] (最終更新 1999/02/17 23:58:45) Q. kterm や xterm をたくさん開いていたら kterm: no available ptys と言われてしまって、それ以上開けません。 また、telnetで接続しようとすると telnetd: All network ports in use. と言われてしまって、接続できません。 A. 開ける terminal の数は 1. kernel configuration file の "pseudo-device pty 16" の 16 の部分の数 2. /dev/pty?? の数 のうちの小さい方で決まります。1. の方は "pseudo-device pty 16" の 16 の部分 の数増やし、kernel を再構築すれば解決しますし、2. の方は /dev で ./MAKEDEV pty? (? は 0〜7) すれば、最大256個まで作れます。詳しくは pty(4) を参照して下さい。 --- [管理番号 692] (最終更新 2000/03/22 02:28:44) Q. ファイル名の検索を高速に行いたい。 A. rootになって # echo /usr/libexec/locate.updatedb | su -fm nobody と実行してください。これによりファイル名のデータベースが作成されます。 検索したいファイル名を "hogehoge" とすると % locate hogehoge で、該当するファイル名とそのパスが表示されます。 locate はデータベース ファイル内を検索するので、 find よりも高速に検索できます。 通常 /usr/libexec/locate.updatedb は /etc/periodic/weekly/310.update スクリプトにより、週に一度実行されます。/etc/weekly スクリプトを見ると わかるように /usr/libexec/locate.updatedb は # echo /usr/libexec/locate.updatedb | su -fm nobody と実行すべきです。詳しくは locate(1) を参照して下さい。 --- [管理番号 693] (最終更新 2000/03/22 02:28:33) Q. /var/log を覗くと、hoge 以外に hoge.0.gz, hoge.1.gz, ... というファイル が生成されているのですが、これらのファイルはどのようにして生成されている のでしょうか。 A. /usr/sbin/newsyslog が cron から定期的に実行され、/etc/newsyslog.conf で設定されているタイミング (ログファイルのサイズや、前回保存してから指定 した時間が経過したなど) でログファイルを圧縮・変更しています。 また、/var/log/wtmp は 2.2.1-RELEASE から 2.2.5-RELEASE までは newsyslog 2.2.6-RELEASE 以降の 2.2.x 系統では /etc/monthly スクリプト 3.x 系統以降では /etc/periodic/monthly/200.accounting スクリプト により圧縮されています。 --- [管理番号 694] (最終更新 1999/02/17 23:58:45) Q. shellスクリプトなどで、起動したプログラムの戻り値を得るには どうすればよいのでしょうか? A. sh系のshellと、csh系のshellとで方法が違います。 sh系 -> $? という変数に戻り値が入っています。 csh系 -> $status という変数に戻り値が入っています。 また、exec ??? でプログラムを起動すると、シェル自身が起動したプログラム になり、起動したプログラムの戻り値はそのシェルの戻り値になります。 --- [管理番号 695] (最終更新 1999/02/17 23:58:45) Q. 装着した NIC が認識はされているのに正常に動作しません。 A. irq や I/O アドレス (at 0x280-0x29f という部分) が FreeBSD 側の設定と ボード側の設定で一致していることを確かめてください。 もし間違いがなければ、probe 処理が干渉している可能性があるので、 必要なもの以外の device をすべて disable にして試してみてください。 ちなみに、特に FreeBSD(98) において、この干渉が起こる可能性が高くなっています。 --- [管理番号 696] (最終更新 2004/04/09 05:05:58) Q. 作業中にエラーメッセージが出ました。このエラーメッセージをメーリング リストに伝えたいのですがどうしたら良いですか。 A. エラーメッセージに間違いがあるとアドバイスをもらえにくかったり、間違った アドバイスにつながることがあるので正確に使える必要があります。そのため には、次の 3つの方法のどれかを使うといいでしょう。 1. コピー & ペーストを使う方法。 X 上で kterm (または xterm) を使っているのならば、コピー & ペーストが 使えます。コピーしたい範囲の頭のところでマウスの左ボタンを押して範囲の おしりのところまでドラッグして行き、おしりのところでマウスボタンを離し ます。選択範囲は、反転表示されます。範囲を変えたいときには、右ボタンを 使います。これでコピーできました。次に手紙を書くところでマウスの中ボタ ンを押すとペーストされます。 2. パイプと tee(1)を使う方法。 エラーメッセージを出すコマンドの出力をつぎのようにパイプと tee(1) を 使って error.log というファイルに保存することができます。このファイルを 手紙に添付します。 csh または tcsh を使っているとき。 コマンド |& tee error.log sh を使っているとき。 コマンド 2>&1 | tee error.log 作成された error.log という名前のファイルを、メールに張り付けましょう。 tee(1) を使わずに標準出力と標準エラー出力をファイルにリダイレクトして 保存することも可能ですが、コマンドからの出力が全く画面に現れないので、 入力を必要とするときに勘で入力する必要が生じます。 3. script(1)を使う方法。 script を実行すると新しくシェルが起動され、それ以降画面に表示されるも のが全て typescript というファイルに記録されます。このファイルを手紙に 添付します。保存するファイル名を変えたいときには、 script error.log とすると、指定した error.log というファイルに記録されます。リターン(エ ンター)を押したところでは、それも ^M として記録されます。 記録を中止するときには、exit を入力して新しく起動されたシェルを終了し ます。 --- [管理番号 697] (最終更新 2003/10/16 23:20:35) Q. ZIP ドライブは使えませんか? A. 20020215 現在、ZIP ドライブのインタフェイスには、SCSI、IDE/ATAPI/PCMCIA、 パラレル、USB、FireWire などのさまざまな種類があり、メディアには 100MB のものと 250MB のものがあります。インタフェイスとメディアの組み合わせで、 実際のドライブには、いくつかのバリエーションが存在します。 ZIP ドライブに関してはチュートリアルがありますので、それを読んで下さい。 1. SCSI につなげる ZIP ドライブは、da デバイスとして認識されます。 2. ATAPI につなげる ZIP ドライブは wfd ドライバーで使えます。 3. パラレルポートにつなげる ZIP ドライブは、FreeBSD 3.0-RELEASE 以 降、vpo ドライバによりサポートされました。 4. USB につなげる ZIP ドライブも、動作報告があります。 PCMCIA と USB の両方のインタフェイスを持つドライブもありますが、 PCMCIA 経由では認識されず、USB として使用できます。 --- [管理番号 698] (最終更新 1999/02/24 03:32:00) Q. PPP でユーザ認証がうまくいかないようです。/var/log/ppp.log には May 7 02:43:24 X68000 ppp[279]: tun0: Chat: Expecting login:-\r-login: May 7 02:43:24 X68000 ppp[279]: tun0: Chat: Wait for (5): login: --> login: May 7 02:43:29 X68000 ppp[279]: tun0: Chat: Can't get (5). となっています。 A. /etc/ppp/ppp.conf に ------------- default: set device /dev/cuaa1 ... # PAP で接続するサイト ppp1: accept pap deny chap set phone 0123456 ... # CHAP で接続するサイト ppp2: accept chap deny pap set phone 9876543 ... # UNIX のログイン認証で接続するサイト ppp3: deny chap deny pap set login "TIMEOUT 5 login:-\\r-login: hoge word: fuga" set phone 6543210 ... ---------------- などと記述している場合、ppp を実行してすぐに ppp1 や ppp2 にダイアルす るとうまくいきますが、ppp3 にダイアルした後に ppp1 や ppp2 にダイアル するとユーザ認証に失敗します。 これは、前回ダイアル時の set login "..." の設定が残ってしまい、ppp1 や ppp2 の接続先に (UNIX の) ログイン認証でユーザ認証を行おうとすることが 原因です。ppp1 と ppp2に set login "" を追加することで、ログイン認証を明示的に禁止できます。 --- [管理番号 699] (最終更新 1999/02/17 23:58:45) Q. Limited broadcast ってなんですか? A. 宛先が 255.255.255.255 になっているブロードキャストです。 送信したホストが属しているネットワーク内のみに流すというお約束 (RFC1812) です。 --- [管理番号 700] (最終更新 1999/02/17 23:58:45) Q. Directed broadcast ってなんですか? A. 宛先が 10.255.255.255 などと、ネットワークアドレスを指定している形 式のブロードキャストです。 ちなみに、これを実際にブロードキャストだと認識して、物理層のブロードキャ ストとして流すのは、宛先のネットワークに係わっているルータです。経路の 途中のルータはブロードキャストアドレスかどうか判定できないので、ユニキャ スト扱いで通信します。 また、これが異なるネットワーク間で機能するかどうかは、そのネットワーク 間の通信にかかわっている最終端のルータの設定 (や、まれに実装の制限) に 依存します。 Directed broadcast を転送すると、DoS attackの元になるため、最近は転送 しない、あるいは転送するかどうかを選べるよう設定できるものが増えつつあ ります。 --- [管理番号 701] (最終更新 2001/11/03 13:54:21) Q. デジタルカメラで撮ったデータを FreeBSD でやりとりしたい。 A. 以下の方法が考えられます。 1. デジタルカメラに付属もしくは別売のパソコン接続用キットを用いること により、PC のシリアルポートとをつなぐ方法。 この方法で問題になるのは、接続用キットが FreeBSD をサポートしていなくて、 なおかつ通信のプロトコルが公開されていない場合がほとんどなことです。 とはいえ、シリアルポートを用いた簡単なデータのやりとりなので、通信を解 析してプロトコルを調べ、通信プログラムを作成することはできます。 実際、以下のようなものがあります。 - カシオのデジタルカメラ QV シリーズ用の通信プログラム qvplay - 富士フイルムのデジタルカメラ DS-7 用の通信プログラム get_ds7 DS-7 用ですが、富士フイルムの他のデジタルカメラにも使えるはずです。 - コダックのデジタルカメラ DC20 の画像データダウンロードプログラム - キヤノンのデジタルカメラ PowerShot および IXY 用の通信プログラム s10sh 上記のサイトでは IXY についての言及はありませんが、IXY200 で使用 できました。 2. デジタルカメラのメモリを PC-CARD ポート経由で読み書きする方法。 デジタルカメラが PCMCIA の Flash ATA を利用していたりスマートメディア やコンパクトフラッシュのような PCMCIA に対応するアダプタが存在するメモ リカードを利用している場合、簡単な方法です。ただし、当然 PC 側に PC-CARD ポートが必要です。Flash ATA カードとして認識され、MSDOS ファイル システムとして利用できます。 なお、SmartCard を FDD 経由で読み書きする FD-A1 というものが富士フイル ムから出ていますが、これは残念ながら現時点では FreeBSD からは利用でき ないようです。 3. デジタルカメラに付属もしくは別売のパソコン接続用キットを用いること により、PC の USB ポートにつなぐ方法。 デジタルカメラのマニュアル等に "USB ストレージクラス対応" と書かれて いる場合、または Windows でリムーバブルディスクとして読み書きできる 場合は、USB 接続で使える可能性があります。 PC につないだ時に umass ドライバがアタッチされた場合、SCSIディスクと して認識され、MSDOSファイルシステムとして利用できます。 デジタルカメラによっては、以下の udsc ドライバが使えるかもしれません。 上記のサイトによると、Nikon の CoolPix880 等に対応しているそうです。 デジタルカメラの機種によっては、そのままでは mount できず cam/scsi/scsi_da.c に修正が必要があるようです。 bsd-usb:462 が参考となるでしょう。 --- [管理番号 702] (最終更新 2003/11/17 02:28:48) Q. lkm(4) または kld(4) に関係した問題で、CD-ROM をマウントしようとして # mount -t cd9660 /dev/cd0a /cdrom を実行すると、OS がリブートしてしまいました。また、MSDOSFS や NFS 及 びその他のモジュールでも起り得る現象で、もちろん現象としてはリブート するとは限らず予測不能です。 A. FreeBSD 2.2.X-RELEASE までの LKM (Loadable Kernel Module)、または 3.0-R で登場して 3.1-R 以降 LKM と置き換えられた KLD (Dynamic Kernel Linker) を使用している場合、カーネルにコンフィグファイルの修正以外の 変更を加えると、カーネルと LKM / KLD との不整合が生じることがあります。 以下の点を確認してください。 (1) カーネルのコンフィグファイルに、以下の行はありますか。 なければ、LKM または KLD を使用していることになります。 options "CD9660" #ISO 9660 filesystem (2) 最近、カーネルソースに、コンフィグファイルの修正以外の変更を加え ましたか。例えばパッチを当てた場合や CVSup した場合などもこの ケースに該当します。 (1) が no、(2) が yes の時は、次の作業を行ない、LKM または KLD を作り 直してください。/usr/src 以下には最低限のカーネルソース (src/ssys.* 配布ファイル) が展開されているものとします。 a) LKM (2.2.X-RELEASE) $ su # cd /usr/src/lkm # make clean # make all install LKM バイナリは /lkm にインストールされています。また関連コマンドと して modload(8), modstat(8), modunload(8) があります。 b) KLD (3.0-RELEASE 以降) $ su # cd /usr/src/sys/modules # make clean # make all install KLD モジュールは /modules にインストールされています。また関連 コマンドとして kldload(8), kldstat(8), kldunload(8) があります。 --- [管理番号 703] (最終更新 1999/02/17 23:58:45) Q. シェルに csh を使っているのですが、プロンプトの表示をもっと便利にで きませんか? A. csh のデフォルト設定では、一般ユーザの場合は `% ' が、スーパユーザ の場合は `# ' がコマンドプロンプトに表示されますが、シェル変数 `prompt' を設定することでこの表示を変更できます。 以下にいくつかの例をあげておきますので、これらのうちいずれかを ~/.cshrc に記述しておくとよいでしょう。 ・プロンプトに自分のログイン名を表示させる。 set prompt = "${user}% " ・プロンプトにホスト名を表示させる。 set prompt = "`hostname`% " ホスト名がFQDN (ドメイン名を含むホスト名) で設定されている時にドメイ ン名を含まない形にしたいときは次のようにする事もできます。 set prompt = "`hostname -s`% " ・プロンプトに現在のイベント番号を表示させる。 set prompt = "{\!}% " ・プロンプトに現在のワーキングディレクトリを表示させる。 これが csh の難点です。csh では tcsh などと異なり、現在のワーキング ディレクトリを表すシェル変数 `cwd' が変数 `prompt' と呼応しません。 そこで、通常は cd をエイリアスすることで実現します。 alias cd 'cd \!*; set prompt = "`pwd`% "' set prompt = "`pwd`% " 以上の例を組み合わせる事もできます。 ・プロンプトにログイン名とホスト名と現在のイベント番号を表示させる。 set prompt = "${user}@`hostname`{\!}% " ・プロンプトにホスト名と現在のワーキングディレクトリ、イベント番号を表 示させる。 alias cd 'cd \!*; set prompt = "`hostname -s`:`pwd`{!}% "' set prompt = "`hostname -s`:`pwd`{\!}% " これらはあくまで一例であって、他にも方法はいろいろあります。より詳しい 事が知りたいときや応用がしたいときは csh(1) を参照して下さい。 --- [管理番号 704] (最終更新 2001/10/14 11:51:13) Q. 自分で作った FreeBSD の CD-ROM を周りの人に配ってもいいのでしょうか。 A. FreeBSD は基本的に BSD Style Copyright なので、作った CD-ROM を 配布しようが販売しようが自由です。しかし、FreeBSD の配布物の中には 一部 GNU の GPL (GNU GPL に関しては [管理番号 715] を参照して下さい) で保護されたものが含まれているので、ソースの入手に関してなんらかの 措置をする必要があります。もし、ソースを一緒に配布する措置を取る 場合には CD-ROM に src/scontrib.* 、src/sgnu.* を含めます。 packages ディレクトリ以下のファイルのいくつかは、著作権者との関係で 再配布などが規制されているものがあります。(例えば GNU GPL により 保護されているものなら、ソースと共に配布するなどの措置を取る必要が あります) これらは、ports ディレクトリの ports.tgz を展開した中に ある ports/LEGAL ファイルに詳細が書かれているので、そちらを参照して 下さい。(ただし GNU GPL で保護されたものは ports/LEGAL に書かれてい ません) 以上の注意点を護った上で、CD-ROM を作成・配布して下さい。 FreeBSD の CD-ROM の作成に関しては [管理番号 708] を参照して下さい。 --- [管理番号 705] (最終更新 1999/02/17 23:58:45) Q. FreeBSD の kernel の source file を見ていて、次のような記述を見掛け ました。 #endif NETATALK #endif の後に、コメントがあるのは良く見ますが、このような記述もあるの でしょうか? A. 昔使われていた記述方法です。 info で、cpp -> conditionals -> Conditional Syntax -> #if Directive とたどっていくと、次のような説明があります。 In fact, you can put anything at all after the `#endif' and it will be ignored by the GNU C preprocessor, but only comments are acceptable in ANSI Standard C. FreeBSD で使われる cc は、GNU C compiler ですので、このような記述がさ れていても無視されるようです。 GNU C compiler で、option に -ansi -pedantic を付けて compile すると、 ANSI Standard C として動作し warning が出されます。 実際に、option に -ansi -pedantic を付けて compile すると、次のように warning が出ました。(gcc version 2.7.2.1 にて) cc -c -O -pipe -Wreturn-type -Wcomment -Wredundant-decls -Wimplicit -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wuninitialized -ansi -pedantic -nostdinc -I- -I. -I../.. -I../../../include -DKERNEL -include opt_global.h ../../net/if_loop.c ../../net/if_loop.c:83: warning: text following `#endif' violates ANSI standard ../../net/if_loop.c:252: warning: text following `#endif' violates ANSI standard ../../net/if_loop.c:94: warning: ANSI C does not allow extra `;' outside of a function ../../net/if_loop.c: In function `loopattach': ../../net/if_loop.c:119: warning: overflow in implicit constant conversion --- [管理番号 708] (最終更新 2001/08/12 05:25:05) Q. FreeBSD の CD-ROM を作るにはどうしたらいいのでしょうか。 A. FreeBSD ?.?-RELEASE を作る場合は、公式の FTP (ミラー)サイトから、その ?.?-RELEASE ディレクトリの中身を持ってきます。(国内のミラーサイトに関しては [管理番号 82]を参照し、適切なサイトを選んで下さい) 例えば 4.3-RELEASE の場合は (及びそのミラーサイト) の中身を持ってきます。4.3-RELEASE ディレクトリの下に あるサブディレクトリなども同じ構造のまま持ってきます。 ただし、4.3-RELEASE ディレクトリの中身をすべて持ってくる必要はありませんし、 packages ディレクトリをすべて収録しようとすると CD-ROM 1枚には収まりきり ません。なので、packages ディレクトリの中から必要なものだけ収録するように したり、ゲームをしないなら games ディレクトリを収録しないなどして、うまく 調節して下さい。 作成は、CD-ROM のルートに bin, manpages, src, ports などのディレクトリがくる ように作成してください。また PC-98 配布物も一緒に収録する場合は、98bin, 98doc, 98src ディレクトリなどもルートに置いてください。 また、packages ディレクトリ内のファイルは 8+3 形式のファイル名でないので、 packages ディレクトリ内の長い形式のファイル名を FreeBSD 上で読みたい場合は、 Rock Ridge Extention というフォーマットで CD-ROM を作る必要があります。 逆に packages ディレクトリのファイル名を気にしないなら、Windows 上で CD-ROM を 作成することもできます。 FreeBSD 上で作成する場合は /usr/share/examples/worm にあるシェルスクリプトが 参考になるかもしれません。詳しくは /usr/share/examples/worm/README を見て下 さい。 FreeBSD で CD-R を焼く方法に関しては [管理番号 571] も参照して下さい。 また、作った CD-ROM を周りの人に配る際の注意点として [管理番号 704] も 参照して下さい。 --- [管理番号 709] (最終更新 2004/04/09 05:05:21) Q. コマンドのバージョンを知るには どうしたらいいですか? A. いろいろ考えられますが、以下の方法が比較的簡単です。 1. what(1) や、ident(1) を使う。ただし全てのソースのリビジョン番号が 表示されますので、「このコマンドのバージョンを知りたい」という場合は 不向きです。 % what /bin/ls /bin/ls: Copyright (c) 1989, 1993, 1994 termcap.c 8.1 (Berkeley) 6/4/93 strftime.c 7.38 strftime.c 5.4 (Berkeley) 3/14/89 (略) % ident /bin/ls /bin/ls: $FreeBSD: src/lib/msun/i387/s_ilogb.S,v 1.7.2.1 2000/07/10 09:16:28 obrien Exp $ $FreeBSD: src/lib/libc/i386/string/strrchr.S,v 1.5 1999/08/27 23:59:35 peter Exp $ $FreeBSD: src/lib/libc/i386/string/strncmp.S,v 1.6 1999/08/27 23:59:35 peter Exp $ $FreeBSD: src/lib/libc/i386/string/index.S,v 1.5 1999/08/27 23:59:30 peter Exp $ (略) 2. strings(1) を使う。 % strings hogehoge | grep -i version 3. ports/packages を利用してインストールしたものなら、 % pkg_info -aI | grep hogehoge 4. command 自身の version 表示。 command のなかには、バージョン表示オプションを持っていたり、help 表示すると version を表示してくれるものがあります。 % hogehoge -h や hogehoge -V 最近の GNU 系のコマンドであれば、hogehoge --version なども使えるでしょう。 5. その他 (servername で動いている) bind のバージョン % nslookup -q=txt -class=chaos version.bind servername または % dig @servername txt chaos version.bind sendmail のバージョン - macro 'v' の値を調べる % echo '$v' | sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter
> 8.9.1 - デバッグ用オプションを使って表示させる。 % sendmail -bt -d0.1 < /dev/null | head -1 Version 8.9.1 - コマンドラインから SMTP 的にお話をする。 % echo HELP | sendmail -bs | head -2 | tail -1 214-This is Sendmail version 8.9.1 - SMTP でお話でする。 % telnet servername smtp Trying 127.0.0.1... Connected to servername. Escape character is '^]'. 220 servername ESMTP Sendmail 8.9.1/8.9.1 ... ただし、その sendmail の設定ファイル /etc/sendmail.cf の SmtpGreetingMessage=$j Sendmail $v/$Z; $b が書きかわっていたなら、正しく表示されません。逆に言うと、 外部に sendmail のバージョンを漏らしたくない場合は、ここを 書きかえておくとよいでしょう。 XFree86 のバージョン % /usr/X11R6/bin/X -version (--version ではありません。-version です) OpenSSL のバージョン % openssl version OpenSSL 0.9.7c 30 Sep 2003 最も確実なのはコマンドのソースを調べる事でしょう :) --- [管理番号 710] (最終更新 2001/02/27 00:36:42) Q. CPU や マザーボードを入れ替えたら、FreeBSD が起動しなくなって しまいました。どうすればいいのでしょうか。 A. システムの構成が変わると kernel もそれにあわせて変更する必要が あります。 cpu "I686_CPU" のような CPU 定義の部分にも注意してください。 FreeBSD 4.X までであれば多くの環境に対応した GENERIC kernel が /kernel.GENERIC にあるので、これで起動してから kernel を再構築 しましょう。 --- [管理番号 711] (最終更新 1999/02/17 23:58:45) Q. FreeBSD が動いているホストに telnet や rlogin ではログインできるのですが, ftp でログインできません. どうして? A. /etc/shells ファイルに登録されていないシェルをログインシェルとして 使っているユーザは ftp でログインできません. /etc/ftpusers ファイルに登録されているユーザーやグループに属するユーザーも ftp でログインできません. 他にもありますので, 詳しくは ftpd(8) を参照してください. --- [管理番号 712] (最終更新 1999/11/03 04:54:53) Q. 使っているうちに増えたファイルを一つにまとめたいのですが、 どうすればいいですか? また、それらのファイルを圧縮したり することはできますか? A. これに対する答えは, 非常に多くて困ってしまいます。 :) 以下に、一部ですが挙げますので、参考にして下さい。これ以外にも たくさんありますので、ports/packages の archivers、converters あたりを見てみるといいでしょう。また、これらに関する本も多く 出版されています。 ファイルの圧縮、伸長: bzip [管理番号 725] bzip2 [管理番号 726] compress [管理番号 727] gzip [管理番号 728] pack [管理番号 729] アーカイブ: tar [管理番号 730] アーカイブ+ファイルの圧縮、伸長: lha [管理番号 731] zip [管理番号 732] tar+compress [管理番号 733] tar+gzip [管理番号 734] シェルアーカイブ: shar [管理番号 735] バイナリ <-> テキスト変換: uuencode [管理番号 736] ish [管理番号 737] base64 [管理番号 1012] --- [管理番号 713] (最終更新 1999/02/17 23:58:45) Q. Netscape {Navigator, Communicator} 4.x をインストールして, Web ページを表示すると, 英数, ひらがな, 漢字で大きさが違うのですが, 直す方法は? A. Edit -> Preferences -> Appearance -> Fonts で 半角英数 : Western(iso-8859-1) 半角カナ : japanese(jis_x0201) 全角文字 : japanese(jis_x0208-1983) をそれぞれ好きな大きさのフォントに変えて下さい. --- [管理番号 714] (最終更新 2001/08/12 02:51:18) Q. ユーザ、グループの新規追加をしようと思うのですが、ユーザ ID、 グループ ID の付け方には何か決まりはあるのでしょうか? A. 既存の ID と重ならない番号を使えばいいだけです。 ただし、一般に UNIX の「慣習」としてユーザ ID は、 0〜99 : root、daemon、bin、sys などのマシンの管理に必要なアカウントや アプリケーションのための特別なアカウント 100〜 : 一般ユーザアカウント とすることが多いです。参考にして下さい。 グループ ID についても、/etc/group にシステム予約のグループが書かれて おり、同様の事が言えます。 なお、adduser(8) コマンドでユーザの追加を行なうとユーザID、 グループ ID ともに 1000 から割り当てられます。 --- [管理番号 715] (最終更新 1999/02/17 23:58:45) Q. GNU GPL って何ですか。 A. GNU GPL とは、GNU の定める 一般公有使用許諾(GPL) です。詳しくは GNU GPL GNU GPL 日本語訳 を参照して下さい。 --- [管理番号 717] (最終更新 2000/06/06 23:24:43) Q. X の背景に画像を表示する(いわゆる「壁紙を貼る」)には? A. X では背景の部分をルートウィンドウと言います。 ルートウィンドウに画像を表示するには いくつかの方法があります。 (1) xsetroot を使用します。(XBM ファイルに対してのみ使用できます。) % xsetroot -bg DarkSlateBlue -bitmap hoge.xbm などとします。ここで -bg DarkSlateBlue は背景色が「深い青色」に指定 しています。 (2) xv (port/package が用意されています) を使用すれば、 bmp、pixmap(.xpm等)、jpeg(.jpg等)、gif、xbm、tif、その他標準的な 画像ファイルを、そのまま壁紙とすることができます。 ただ敷き詰めるだけなら % xv -root -quit ファイル名 xv には、多くの option がありますので、(cf./usr/X11R6/share/doc/xv/xvdocs.ps) % xv -root -maxpect -quit ファイル名 で、縦横比を保存したまま最大拡大。 % xv -rmode n -quit ファイル名 で、n は、0-9で、タイリングの仕方のバリエーションなどが楽しめます。 (3) ImageMagick(port/package が用意されています) にも、 同様のコマンドが用意されています。 % display -window root hoge.jpg で、タイル状に。 % display -window root -backdrop -foreground black hoge.jpg で、周りを黒(black)にして、画像を中央に表示します。 (4) xpmroot または sxpmroot を使用する場合。(XPM ファイルに対して使用) % xpmroot hoge.xpm または % sxpmroot hoge.xpm とするだけです。xpmroot は、X window manager の一つである fvwm2 の package に含まれています。sxpmroot は で入手可能です。 (5) その他 xloadimage(packages または、ports の x11/xloadimage) や その派生の xli(packages または ports の graphics/xli)でも ルートウィンドウに画像表示が可能です。対応している画像形式 およびオプションについては、それぞれ xloadimage(1)、xli(1) を ご覧下さい。 ルートウィンドウを color にすると X の色数によっては、きれいに発色しない 場合や、netscape のような色を多く必要とするアプリケーションを後から 起動すると、色が足りなくなることもあります。 --- [管理番号 718] (最終更新 1999/02/17 23:58:45) Q. あるメモリを大量に使うプログラムを実行しようとすると Cannot allocate memory と怒られてしまい、実行できません。 A. limits(1) を使用するか、sh系のシェルでは ulimit コマンド、csh系のシェル では limit コマンドを使用して、datasize の値を大きくしてから実行しましょう。 この datasize のデフォルトは /etc/login.conf で設定されています。 [管理番号 532] [管理番号 533] も参照して下さい。 --- [管理番号 719] (最終更新 2001/03/07 02:08:45) Q. 一般ユーザで ppp を使うことができません。su で root になれば できるのですが面倒です。 A. FreeBSD 2.2.6-RELEASE 以降では、 - そのユーザが network グループに属している - /etc/ppp/ppp.conf で `allow users' を記述する という2つの設定を行えば、一般ユーザでも ppp コマンドを利用 できるようになります。例えば、ユーザ名を hoehoe としたとき 以下のようにします。 1. /etc/group network:*:69:hoehoe ^^^^^^ `network:*:69:' で始まる行を探して、追加したいユーザ名を最後の ':' の後ろに記述します。複数のユーザを登録したいときは、`,'で区切って並 べます。 2. /etc/ppp/ppp.conf default: allow users hoehoe `allow users' は一般的に default セクションに追加する方が良いでしょう。 複数のユーザを登録するときは、スペースで区切ってまとめて記述します。 詳しくは、ppp(8) を参照してください。 残念ながら、2.2.5-RELEASE では root 以外利用できません。 --- [管理番号 720] (最終更新 1999/11/03 04:54:31) Q. SCSI 接続の CDROM チェンジャを SCSI アダプタに繋いで使っていますが、 CDROM チェンジャの最初の CD しか認識しません。 A. マシン起動時に SCSI BIOS の設定を起動して LUN=0 以外を SCAN する設 定にして下さい。DC-390 シリーズなら、`Set Adapter Options' メニューの 中の `Scan all LUN for devices' の項目を `Disable (default)' から `Enable' に変更して下さい。Adaptec の SCSI カードならば、`SCSISelect' を起動して `Advanced Configuration Settings' または `SCSI Device Configuration' にある `Multiple LUN Support' を `Disabled' から `Enabled' に変更してください。 (関連 QandA [管理番号 583]、[管理番号 819]) --- [管理番号 722] (最終更新 1999/07/02 16:25:57) Q. Mew の Message ウインドウでヘッダーの日本語が文字化けして読めません. Summary ウインドウではちゃんと読めます. なぜでしょうか? A. 特定のバージョンの fetchmail はメール中の MIME をデコードしてしまいま す. Mew の Summary, Message ウィンドウはどちらもヘッダが MIME エンコー ドされていれば, デコードして表示するというのは同じなのですが, MIME エン コードされていない場合の動作が異なります. MIME エンコードされていない場合, Summary ウインドウ : JIS なら文字化けしない. EUC, SJIS 共に文字化け. Message ウインドウ : どの文字コードでも文字化け. という仕様です. このため Mew の Summary ウインドウでは日本語のヘッダが読めても, Message ウィンドウでは文字化けするという状況になります. 対策は, fetchmail が MIME のデコードを行わない様に設定する事です. ~/.fetchmailrc に no mimedecode を加えてください. これで MIME のデコードを行わない様になります. 詳しくは fetchmail(1) を参照してください. なお, この問題はお使いの fetchmail のバージョンが 4.4.1 以上 4.4.7 未満 あるいは 4.7.6 以上の場合に発生します. Mew を使用する時は no mimedecode を必ず設定するべきでしょう。 なお ports/packages の current でのバージョンは 1999年5月16日現在 5.0.0 です. --- [管理番号 723] (最終更新 1999/02/24 04:14:22) Q. Hard Disk 上の DOS 領域を読み書きするにはどうしたらいいですか? A. msdos ファイルシステムとしてマウントすれば読めます。 (以下、デバイス名(sd0s1)、マウントポイント(/dos)は、各自の環境に あわせて読み換えてください) 具体的には、root になって # mkdir /dos (マウントポイント作成。既に/dosが存在する場合は必要なし) # mount -t msdos /dev/sd0s1 /dos (あるいはmount_msdos /dev/sd0s1 /dos) とします。 また、/etc/fstab に /dev/sd0s1 /dos msdos rw,noauto 1 0 と書いておくと、 # mount /dos # umount /dos などと短く書くことができます。また、noautoを外して /dev/sd0s1 /dos msdos rw 1 0 とすると、起動時に自動的にマウントしてくれます。 マウントされた DOS 領域の属性はマウントポイントの属性が引き継がれますので、 全ユーザが読み込み/書き込みできるようにしたい場合は、 # chmod 777 /dos としてください。このとき、既に /dos をマウントしていると chmod できません。 一度 umount してから chmod してください。 詳しくは mount(8) を参照してください。 なお、拡張DOS領域内の論理ドライブのマウントについては、 [管理番号 304] を参照してください。 --- [管理番号 724] (最終更新 1999/02/17 23:58:45) Q. kterm で ALT キーが使えないのですが A. kterm のリソース KTerm*eightBitInput の値を false にして下さい。 具体的には、~/.Xresources に以下の行を追加すれば良いです。 KTerm*eightBitInput: false --- [管理番号 725] (最終更新 1999/02/17 23:58:45) Q. bzip/bunzip ってなんですか? A. ファイルの圧縮, 伸長方法のひとつです. FreeBSD には標準でインストールされていませんので, ports/packages を利用してインストールする必要があります. 圧縮の仕方 : % bzip hogehoge 圧縮したファイルの末尾には, .bz が付けられます. 伸長の仕方 : % bzip -d hogehoge.bz あるいは, % bunzip hogehoge.bz です. 詳しくは, bzip(1) を参照して下さい. --- [管理番号 726] (最終更新 2003/11/17 02:28:48) Q. bzip2/bunzip2 ってなんですか? A. ファイルの圧縮, 伸長方法のひとつです. FreeBSD 4.4-RELEASE 以降では標準で含まれるようになりました。それ以 前のリリースでは、ports/packages を利用してインストールする必要が あります. 圧縮の仕方 : % bzip2 hogehoge 圧縮したファイルの末尾には, .bz2 が付けられます. 伸長の仕方 : % bzip2 -d hogehoge.bz2 あるいは, % bunzip2 hogehoge.bz2 です. 詳しくは, bzip2(1) を参照して下さい. --- [管理番号 727] (最終更新 1999/02/17 23:58:45) Q. compress/uncompress って何ですか? A. ファイルの圧縮, 伸長方法のひとつです. 圧縮の仕方 : % compress hogehoge 圧縮したファイルには末尾に .Z が付けられます. 伸長の仕方 : % uncompress hogehoge.Z あるいは, gzip を用いて, % gzip -d hogehoge.Z とか, % gunzip hogehoge.Z とすることでも伸長することができます. 詳しくは compress(1), gzip(1) を参照して下さい. --- [管理番号 728] (最終更新 1999/02/17 23:58:45) Q. gzip/gunzip ってなんですか? A. ファイルの圧縮, 伸長方法のひとつです. 圧縮の仕方 : % gzip hogehoge 圧縮したファイルの末尾には .gz が付けられます. 伸長の仕方 : % gzip -d hogehoge.gz あるいは, % gunzip hogehoge.gz です. 詳しくは gzip(1) を参照して下さい. --- [管理番号 729] (最終更新 1999/02/17 23:58:45) Q. pack/unpack ってなんですか? A. ファイルの圧縮, 伸長方法のひとつです. 現在のところ FreeBSD では pack を利用できません. しかし, pack で圧縮されたファイルを伸長することは可能です. 伸長の仕方 : % gzip -d hogehoge.z あるいは, % gunzip hogehoge.z です. 詳しくは, gzip(1) を参照して下さい. --- [管理番号 730] (最終更新 1999/02/17 23:58:45) Q. tar ってなんですか? A. 複数のファイルをひとつにまとめるためのプログラムです. この機能をアーカイブといいます. (tar とは Tape ARchiver の略だったりします) まとめ方 : % tar -cf hogehoge.tar file1 file2 ... これで file1, file2, ... を hogehoge.tar にまとめることができます. まとめたファイルには任意の名前を付けることができますが, 一般的にファイルの末尾を .tar にします. ほどき方 : % tar -xf hogehoge.tar 詳しくは, tar(1) を参照して下さい. 使用例が数多く挙げられています. --- [管理番号 731] (最終更新 1999/02/17 23:58:45) Q. lha ってなんですか? A. ファイルの圧縮, 伸長のひとつです. また, アーカイブ機能も備わっています. FreeBSD には標準でインストールされていませんので, ports/packages を利用してインストールする必要があります. 圧縮の仕方 : % lha c hogehoge.lzh hogehoge1 hogehoge2 ... 圧縮したファイルには任意の名前を付けることが可能ですが, ファイルの末尾に .lzh を付けることが多いようです. アーカイブ機能により複数のファイルをひとつにまとめて, 圧縮することが可能です. 伸長の仕方 : % lha x hogehoge.lzh 詳しくは, lha(1) を参照して下さい. 注.) 日本語のマニュアルしかありませんので, 別途 jman をインストールしておく必要があります. --- [管理番号 732] (最終更新 1999/02/17 23:58:45) Q. zip/unzip ってなんですか? A. ファイルの圧縮, 伸長方法のひとつです. また, アーカイブ機能も備わっています. FreeBSD には標準でインストールされていませんので, ports/packages を利用してインストールする必要があります. 圧縮の仕方 : % zip hogehoge.zip hogehoge1 hogehoge2 .... 圧縮したファイルには任意の名前を付けることが可能ですが, ファイルの末尾に, .zip をつけることが多いようです. アーカイブ機能により複数のファイルをひとつにまとめて, 圧縮することが可能です. 伸長の仕方 : % unzip hogehoge.zip 詳しくは, zip(1), unzip(1) を参照して下さい. --- [管理番号 733] (最終更新 2004/04/09 05:05:59) Q. .tar.Z ってなんですか? tar なの? compress なの? A. このファイルは tar(1) でひとまとめにしたあと、compress(1) で 圧縮したファイルです。よく、tar+compress と表記します。ファイルの 末尾が .taz となっていることもあります。 作成方法は、tar(1) については [管理番号 730]、compress(1) に ついては [管理番号 727] を参照して下さい。 ほどき方 : FreeBSD 標準の tar は GNU tar なので、オプション Z をつけることにより、 compress を呼ことができます。 % tar -xZf hogehoge.tar.gz (注: GNU tar 以外では Z に違う機能が割り当てられている場合があります。 よく確認した上で利用して下さい。思わぬ結果を招くかもしれません。) あるいは、 % uncompress hogehoge.tar.Z % tar -xf hogehoge.tar としてもほどくことができます。 詳しくは、compress(1), uncompress(1), tar(1) を参照して下さい。 --- [管理番号 734] (最終更新 2004/04/09 05:05:59) Q. .tar.gz ってなんですか? tar なの? gzip なの? A. このファイルは tar でひとまとめにしたあと、gzip で圧縮した ファイルです。よく、tar+gzip と表記します。ファイルの末尾が .tgz となっていることもあります。 作成方法は、tar については [管理番号 730]、gzip については [管理番号 728] を参照して下さい。 ほどき方 : FreeBSD 標準の tar は GNU tar なので、オプション z をつけることにより、 gzip の機能を呼ことができます。 % tar -xzf hogehoge.tar.gz これ一発でほどけます。 (注: GNU tar 以外では z に違う機能が割り当てられている場合があります。 よく確認した上で利用して下さい。思わぬ結果を招きます。) あるいは、 % gunzip hogehoge.tar.gz % tar -xf hogehoge.tar としてもほどくことができます。 詳しくは、gzip(1), gunzip(1), tar(1) を参照して下さい。 --- [管理番号 735] (最終更新 1999/02/17 23:58:45) Q. shar ってなんですか? A. 複数のファイルをひとつにまとめるためのプログラムで, 指定したファイルを作るためのスクリプトファイルを生成します. できた shar ファイルはテキストファイルです. (実は, shar 自体もシェルスクリプトです.) shar にはアーカイブできないファイルがありますので, ファイルをアーカイブするには tar を用いた方がよいでしょう. [管理番号 730] を参照して下さい. ほどき方 : % sh hogehoge とすれば, ファイルが作成されます. 詳しくは, shar(1) を参照して下さい. --- [管理番号 736] (最終更新 1999/02/17 23:58:45) Q. uuencode/uudecode ってなんですか? A. 任意のファイルを ASCII テキストファイルへ変換するプログラムです. 8bit スルーでない伝送路を使う場合にバイナリファイルを変換しておくのに使います. 作り方 : % uuencode hogehoge foo > hogehoge.uue です. この意味は, hogehoge というファイルを uuencode して hogehoge.uue に保存し, uudecode した時のファイル名は, foo にします. と言う意味です. foo を hogehoge にすれば, 送るファイルと受け取るファイルは同じ名前になります. ファイルモードも保存されます. ただし, setuid ビットと実行ビットは保存されません. 戻し方 : % uudecode hogehoge.uue uuencode されたファイルの前や後ろにいかなる情報があっても, それらを無視しますので, ヘッダの除去などといった余計な操作はしなくても結構です. 詳しくは, uuencode(1), uudecode(1) を参照して下さい. --- [管理番号 737] (最終更新 1999/02/24 03:56:34) Q. ish ってなんですか? A. バイナリ <-> テキスト変換ツールです。 FreeBSD には標準で付いていませんので、あらかじめ ports や packages からインストールしておく必要があります。 バイナリ -> テキスト: % ish hogehoge -s7 この場合、hogehoge は JIS テキストに変換されます。 ファイルの末尾には .ish がつけられます。 テキスト -> バイナリ: % ish hogehoge.ish オンラインマニュアルはありませんので、 % ish で得られる情報を参照するか、書籍・Web 等から情報を得て下さい。 --- [管理番号 738] (最終更新 1999/02/17 23:58:45) Q. FreeBSD(98) で XFree86 を使いたいのですが、どのサーバーを選べばいい のか判りません。 A. 以下の Web ページを参照して下さい。 また XFree86 をインストールした後なら、 /usr/X11R6/lib/X11/doc/VideoBoard98 を参照するといいでしょう。 XFree86 には様々なビデオチップに対応した複数の X サーバが含まれてい ますが、NEC PC-9801/9821 では PC/AT 互換機用の X サーバは動きません。 PC-9801/9821 で動く X サーバは、たとえビデオチップが同じでも PC/AT 互換機用の X サーバと別の名前になっています。(XF98_ で始まります) どのビデオチップがサポートされているかは、 /usr/X11R6/lib/X11/doc/VideoBoard98 あるいは、 に書いてあります。 なお、商用 X サーバである Accelerated-X は PC-9801/9821 をサポート していません。 --- [管理番号 739] (最終更新 1999/02/17 23:58:45) Q. メーリングリストに質問をしたら親切で迅速な回答をいただいたので、 「早速のレスありがとうございます」 という挨拶を書いたら、なぜか叱られてしまいました。何がいけなかったのでし ょうか。 A. 「レス」という言葉は一部の世界だけに通用する、いわゆるスラングだからで す。スラングは、それを使う人には違和感はありませんが、知らない人には意味 がわからず、また、知っているけど使わない人にとっては不快感を与えるかも知 れないので注意した方がよいでしょう。「お返事ありがとうございます」とかも 良いのではないでしょうか。 --- [管理番号 740] (最終更新 1999/02/17 23:58:45) Q. MH を用いてメールを送ったときヘッダの From: に自動設定される E-Mail アドレスの マシン名部分を削るには。つまり、 From: foo@machine.my.domain の 'machine' を取りたい。 A. MH は自ホスト名を sendmail の設定とは無関係にリゾルバを用いて取得し、 From: 行に設定を行います。これを変更するには /usr/local/lib/mh/mtstailor に 設定したいホスト名を 「localname: my.domain」の形式で記述します。 これによって自ホスト名の代わりに my.domain が利用されます。 --- [管理番号 741] (最終更新 2000/06/06 23:24:59) Q. FTP で入手したファイルが圧縮されています。拡張子が .gz になって いるのですが、Windows95/98/NT 環境で解凍するにはどうすればいい ですか? A. 拡張子が .gz になっているのは gzip (GNU Zip) で圧縮されたものです。 FreeBSD では gzip(1) コマンドが標準でインストールされているのですが、 Windows 95/98/NT 環境なら Windows 用のものを別途入手する必要があります。 また、.tar.gz や .tgz 形式では、tar(1) コマンドも必要です。 以下の Anonymous FTP サイトから入手できます。 MS-DOS プロンプトなどから、 .gz -> gzip -d hoehoe.gz .tar.gz -> tar zxvf hoehoe.tar.gz .tgz -> tar zxvf hoehoe.tgz とすることで、伸張・展開することができます。 tar アーカイブについては、compress(1) を併用した .tar.Z や、bzip2(1) で圧縮した .tar.bz2 形式も良く使われます。また、GUI の各種フリーソフト ウェアもありますので、以下の Web ページを参考にどれか入手しておくと 良いでしょう。 統合アーカイバ・プロジェクト --- [管理番号 743] (最終更新 1999/02/17 23:58:45) Q. $HOME/mbox 内の mail message を /var/mail/ に戻す方法はありますか? mail -f で pre を実行しても Cannot "preserve" in edit mode と怒られます。 A. man を参照するとわかるように pre は hold と同義で、$HOME/mbox 内の メッセージを /var/mail/ に戻すことはできません。MH や im で $HOME/mbox を処理したいのであれば、 MH の場合: inc -file $HOME/mbox im の場合: imget --src=local:$HOME/mbox のようにしてメッセージを取り出すことができます。 --- [管理番号 744] (最終更新 2000/06/25 02:30:44) Q. MIDI ファイルを FreeBSD で聞く方法はありますか? A. (1) 外部 MIDI ポートまたは sound カードの FM 音源を利用する方法。 playmidi を使う方法があります。 また、Rosegarden というものもあります。これは playmidi の フロントエンドとして動作します。 playmidi と Rosegarden は、ports/packages の audio カテゴリの 中にあります。 (2) PCM デバイスを用いる方法。 TiMidity を使う方法もあります。 TiMidity は MIDI ファイルをソフトウェアで PCM にデータ変換を 行います。このため、PCM デバイスが使用可能であれば外部 MIDI 音源や FM 音源がなくても MIDI ファイルの演奏が可能です。 TiMidity の packages は著作権の関係で CDROM には収録されていません。 ports の ports/audio/timidity を使ってください。 (3) SoundBlaster AWE32/64(ISA) の Wave Table を用いる方法。 SoundBlaster AWE32/64 の Wave Table を用いて演奏することも可能です。 以下の URL より Wave Table のためのデバイスドライバおよび 演奏を行うアプリケーション等が入手可能です。 --- [管理番号 745] (最終更新 2002/03/07 15:32:11) Q. FreeBSD で音楽 CD の曲データ (CD-DA) を CD-ROM, PD ドライブを用いて 取り出せますか? A. ドライブの機種に依存しますが、次の樣な方法があります。最近のドライブで はほとんど問題ないと思われますが、一部の古いドライブなどでは不具合が 報告されています。 1. ATAPI CD-ROM a) FreeBSD 4.3-RELEASE 以降を使っている場合 もはや特別なソフトウェアは不要です。読み出し時の block size を 2352 bytes に指定してコピーするだけです。 まず必要とするトラック番号までのデバイススペシャルファイルを作ってお きます。次の例は 50 トラック (t50) としています。 # cd /dev; ./MAKEDEV acd0t50 CD メディアをドライブにセットしたら、OS に目次を読み込ませます。 ついで、どのトラックを吸い出そうとしているのか確認します。 % cdcontrol -f /dev/acd0c info 吸い出したいトラック番号を # とすると、以下のコマンドで raw データ がファイル track#.raw に吸い出せます。 % dd if=/dev/acd0t# of=track#.raw bs=2352 後は、好きな順番に並び替えて My best CD を cdrecord や burncd で 焼くも良し、MP3 にエンコードするも良し。 % gogo -nopsy -offset 0 track#.raw WAV 形式で保存するのであれば、適切な 44Byte のヘッダを付けなければなり ません。 ヘッダには、サンプリング周波数,長さその他各種の情報が格納されています。 AFsp (ports/audio/afsp) を利用した場合の例: % CopyAudio -t noheader -F WAVE -P 'integer16, 0, 44100, native, 2, 1.0' track#.raw track#.wav また、 sox (ports/audio/sox) を利用して変換を行うことが可能です。 b) cdda2wav (ports/sysutils/cdrtools) を使います。 ATAPI CD-ROM の場合はオプションで -I cooked_ioctl とすると よいでしょう。 c) dagrab (ports/audio/dagrab) を使います ただし、一部の CD-ROM ドライブにおいて dagrab を用いて取り出しを行うと、 出力にノイズが混じるという事例が報告されています。 2. SCSI CD-ROM a) tosha (ports/audio/tosha) を使います。 b) ATAPI CD-ROM と同様、SCSI CD-ROM でも cdda2wav (ports/sysutils/cdrtools) が使えます。 3. SCSI PD 松下 LF-1000 では tosha-0.6 に以下のパッチが必要です。 ---ここから--- *** tosharc Wed Jan 13 15:37:42 1999 --- tosharc Mon Jan 18 22:24:51 1999 *************** *** 66,71 **** --- 66,72 ---- # This one was tested with "MATSHITA" "PD-1 LF-1001" "A105": + "MATSHITA" "PD-1 LF-1000" "" 0xd8 0 0x00 0 10 0 "MATSHITA" "PD-1" "" 0x28 1 0x00 0 10 0 # Someone reported the following setting for his ---ここまで --- Appendix. 参考情報 --- [管理番号 746] (最終更新 1999/02/17 23:58:45) Q. CVSupによりソースツリーを取って来てmake worldしましたが、 /stand以下が更新されません。どうすれば更新できるでしょうか。 A. いくつか方法があります。 A1. boot.flpとfixit.flpを作成し、boot.flpで起動後fixitモードにして /stand以下をコピーすれば良いです。 A2. /stand以下のファイルが必要無ければ何もしなくて良いでしょう。 sysinstallのみ必要であれば、/usr/src/release/sysinstallで version.hの__RELEASEの部分を正しいバージョンにして、 make; make installすれば良いです。 A3. /usr/src/releaseで以下のようにして作成します。 # mkdir boot_crunch # cd boot_crunch # crunchgen ../boot_crunch.conf # make -DRELEASE_CRUNCH -f boot_crunch.mk realclean all\ NOCRYPT=yes "CFLAGS=-O2 -pipe -DCRUNCHED_BINARY" ここで作られる boot_crunch というファイルがsysinstallになります。 あとは/stand以下の全てのファイルにハードリンクを張り直します。 なお、helpもコピーする事をお忘れなく。 --- [管理番号 747] (最終更新 1999/02/17 23:58:45) Q. tcp_wrapper (tcp_wrappers/tcpd)で、条件に引っかかった時に メールで通知しようと、hosts.deny に shell command を指定した のですが、tcpdchk のチェックで bad option name エラーになります。 A. make 時のオプションで -DPROCESS_OPTIONS が指定されているか 確認してください。packages を利用した場合および ports をそのまま 利用して build した場合には -DPROCESS_OPTIONS は指定されています。 (1) -DPROCESS_OPTIONS が指定されていない場合 daemon_list : client_list [ : shell_command ] で、直接 shell_command を指定できます。詳しくは hosts_access(5) を 参照してください。 (2) -DPROCESS_OPTIONS を指定している場合(ports/packages 利用時) daemon_list : client_list : option : option ... のように、option 指定が拡張されていますので、hosts_options(5) を 参照して設定してください。   shell_command を指定する場合は、spawn オプション(子プロセスによる 実行)指定を使用してください。   例: ALL: ALL: spawn /usr/bin/mail -s '%s denied access from %c' root & --- [管理番号 748] (最終更新 1999/02/17 23:58:45) Q. FreeBSD をインストールしようとしているのですが、rawrite 等を利用し て作成した install floppy で boot しません。 A. いくつか原因が考えられます。 (1) フロッピーはブートデバイスに設定されていますか? BIOS のブートデバイスの順番 (Boot Sequenceといった項目) をチェック しましょう。 ここが、例えば C,A となっていて、C に中途半端な HDD があったりすると そこで止ることがあります。また、CD-ROM boot可能な BIOS で、CD-ROM boot する設定にしている場合も Boot 可能でない CD-ROM が入っていたりすると止 まってしまうことがあります。 (2) 作り方を間違えてフロッピー自体がブート可能なものでないということも 考えられます。 フロッピーが正しいかどうか、別のマシンでブートして確認してみましょう。 駄目な場合はほかの方法でフロッピーを作成しましょう。 --- [管理番号 749] (最終更新 2004/04/09 05:04:57) Q. Sendmail をバージョンアップしたい。インストールするためのパッケージは ありませんか。 A. 特にありませんが、最新の FreeBSD-current, -stable では RELEASE に 付属のバージョンよりも新しい sendmail が付属していることが多いので これのソースを持ってきてコンパイルするのが比較的簡単です。 から入手できます。バージョンアップに際しては以下の Web サイトを 参考にするとよいでしょう。 - Sendmailの公式ページ - コンピュータ緊急対応センター (JPCERT/CC) 「技術メモ - sendmail バージョンアップマニュアル -」 古いバージョンで使用していた設定ファイル sendmail.cf をそのまま使って たいていは問題ないでしょう。ただし、新しく導入された機能にはそれに対応 した設定を行う必要があるので、適宜見直した方がよいでしょう。 --- [管理番号 750] (最終更新 1999/02/17 23:58:45) Q. FreeBSD 2.2.7-RELEASE の machine に ~/.rhosts を設定して、 その設定をした別の machine から以下を実行すると、 % rsh host ls 次のようなメッセージがでて Broken pipe 実行できません。~/.rhosts の記述は正しく行っていると思うのですが、 なぜでしょうか? また、正しく動作させるには、どうしたらいいのでしょうか? A. FreeBSD 2.2.7-RELEASE の /usr/libexec/rshd には、Bug があります。 ERRATA.TXT (revision 1.1.2.5)に、次のように書かれています。 --------------< ERRATA.TXT revision 1.1.2.5 の一部 >----------------------- o rshd was broken during -Wall cleanup, as noted in PR#7500 Fix: This was fixed in the 2.2-stable branch as of 1998/07/24 04:32:21 in revision 1.9.2.9 of /usr/src/libexec/rshd/rshd.c. Obtain the fixed version via CVSup (see instructions in handbook or simply ``pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupit.tgz'' and follow the instructions) or get it from FTP at: ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-stable/src/libexec/rshd/rshd.c --------------< ERRATA.TXT revision 1.1.2.5 の一部 >----------------------- 正しく動作させるようにするには、上に書かれているように source file を とってきて、 rshd を作り直して、差し換えましょう。なお、上記ファイルは ftp.jp.FreeBSD.org 等のミラーサイトにもあります。 source file が /usr/src の下に展開されている場合、次のような手順で差し換える ことができます。 ここでは、ftp で /tmp に rshd.c (revision 1.9.2.9) をとってきているとします。 # cd /usr/src/libexec/rshd # cp rshd.c rshd.c.orig # cp /tmp/rshd.c rshd.c # make # make install これで、/usr/libexec/rshd の差し換えができていますので、~/.rhosts 等を設定して rsh の動作を確認してみてください。 --- [管理番号 751] (最終更新 1999/02/17 23:58:45) Q. サウンド再生中に音飛びが起きたり、他のソフトの操作によって雑音が発 生することがあるようなのですが、どのような場合におきやすいですか。 また、できるだけ起きにくくする方法はありますか。 A. マシンの環境、性能に依存しますが、負荷の大きいプロセスを同時に起動 すると処理が追い付かなくなることがあり、音飛びの原因になります。 サウンド再生を行っているプロセスの優先度を上げることである程度は 音飛びを減らすことができます。プロセスの優先度を上げるためには スーパーユーザ権限が必要です。 # nice --20 hogehoge # rtprio 31 hogehoge 詳しくは nice や rtprio のマニュアルを参照してください。 この方法を使っても必ずしも音飛びをなくすことができるわけではありません。 また、サウンド再生を行うプロセスの優先度を特に高くするのですから、他の プロセスの実行に影響を与える場合があります。 性能のあまり高くないシステムの場合、他のプロセスの応答が極端に遅くなり 操作性が悪くなる、場合によっては完全に操作不能の状態に陥ってしまうこと もあります。注意した上で使いましょう。 --- [管理番号 753] (最終更新 1999/08/08 00:25:28) Q. X でベクトルフォント (アウトラインフォント) を使いたいのですが. A. TrueType フォントを使いたい場合は、 X-TT を使うのが簡単です. ports/packages の x11-servers/xtt-* の中から自分のマシンにあった ものをインストールしてください (注*1). 次に, 日本語 TrueType フォントを用意します. フリーに再配布可能な フォントが ports/packages の japanese/ja-truetypefonts にあるので これを利用してもいいでしょう. これ以外のフォントを利用する場合は, 以下の手順でインストールします. TrueType フォントのファイル名が hoge.ttf として説明します. 1. まず, フォントの置き場所を用意してフォントをコピーします. # mkdir /usr/X11R6/lib/X11/fonts/TrueType # cd /usr/X11R6/lib/X11/fonts/TrueType # cp /somewhere/hoge.ttf . 2. 次に, /usr/X11R6/lib/X11/fonts/TrueType に, fonts.dir, fonts.alias (注*2) を作成します. fonts.dir: ---- 4 hoge.ttf -tt-hoge-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 hoge.ttf -tt-hoge-bold-r-normal--0-0-0-0-c-0-jisx0208.1983-0 hoge.ttf -tt-hoge-medium-o-normal--0-0-0-0-c-0-jisx0208.1983-0 hoge.ttf -tt-hoge-bold-o-normal--0-0-0-0-c-0-jisx0208.1983-0 ---- fonts.alias: ---- -tt-hoge-medium-i-normal--0-0-0-0-c-0-jisx0208.1983-0 -tt-hoge-medium-o-normal--0-0-0-0-c-0-jisx0208.1983-0 -tt-hoge-bold-i-normal--0-0-0-0-c-0-jisx0208.1983-0 -tt-hoge-bold-o-normal--0-0-0-0-c-0-jisx0208.1983-0 ---- 3. 次に, /etc/XF86config の Files セクションに以下の行を追加してください. FontPath "/usr/X11R6/lib/X11/fonts/TrueType" 4. 最後に X を再起動すれば, TrueType フォントが使えるようになります. 標準では 75dpi のフォントを使うので, 文字が小さく見にくいです. % startx -- -dpi 100 と, X を起動すればよいでしょう. 詳しくは, /usr/X11R6/share/doc/Xtt 以下のドキュメントを読んでください. NetscapeNavigator 4.? の設定は Edit -> Preferences -> Appearance -> Fonts Japanese(jis_x0208-1983) で, Hoge(Tt) を選択し, Allow scaling をチェックして, サイズを 13.0 に設定します. X-TT については も参照してください. 注*1. FreeBSD 3.2-RELEASE 以前に付属している ports/packages では x11/xtt-* にあります. 注*2. fonts.alias は一行が非常に長くなります. ee などのエディタを使う場合は, 勝手に折り返されたりしていないか, 必ず確認してください. 2 行になっていると TrueType フォントが利用できません. --- [管理番号 754] (最終更新 1999/02/17 23:58:45) Q. natd で構築したプライベートネットワーク内から send-pr すると stat=Deferred: 451 ... Domain does not resolve という メッセージが出て、メールが配送されません。何が悪いんでしょう? A. これは FreeBSD の send-pr を受け付けるメールハブ hub.FreeBSD.org が envelope の送信者アドレスをチェックして受け取ったバグレポートが信頼 できる配信元から送られているかどうかを見ているためです。 おそらく DNS の hoge_domain に対する MX レコードが設定されていない ために 宛のメールは届かないため、いわゆる「不審な メール」として処理されたものと思われます。 send-pr されたマシンからのメールの envelope from が外部ネットワーク から届くアドレスになるように設定を行ってください。 --- [管理番号 755] (最終更新 2001/10/14 11:51:14) Q. notePCの 2.5inch HDD を交換したので、余った方を DeskTopPC に繋ごうと思 います。2.5inch -> 3.5inch 変換コネクタは入手したのですが、2.5inch HDD を slave に設定するにはどうしたらいいのでしょうか? A. 2.5inch HDD には IDE-Connector 謎の pin |………………………………|・・ |………………………………|・・ 40ピンのIDEコネクタと その横に 2x2 くらいのピンが付いています。この部 分にピンを繋ぐと slave になるのですが、メーカ各社によって組合わせがま ちまちなので注意が必要です。 ( | の部分は IDEコネクタとのすきまを表します。■と■を jumper で繋ぎます) ・IBM Travelstar無印(DHAA-,DVAA-)/LP(DBOA-)/XP(DPRA-) …|・■ …|・・ …|・・ …|・■ …|・・ …|■■ マスター スレーブ ケーブル選択 ・IBM Travelstar 2XP(DCRA-)/3XP(DLGA-)/2LP(DSOA-)/3LP(DMCA-)/ 4LP(DTNA-)/VP(DDLA-)/4GT(DPLA-)/5GS(DTCA-)/3GN(DYKA-)/8GS(DYLA-) …|・・ …|・■ …|・・ …|・・ …|・■ …|■■ マスター スレーブ ケーブル選択 ・Toshiba …|・・ …|■・ …|・・ …|■・ マスター スレーブ ・FUJITSU …|・・ …|・・ …|■■ …|・・ …|■■ …|・・ マスター スレーブ ケーブル選択 ・Hitachi …|・・ …|・■ …|・・ …|・■ マスター スレーブ ・Seagate …|・・ …|・■ …|・・ …|・・ …|・■ …|■■ マスター スレーブ ケーブル選択 ・Maxtor (ただし、一部の厚い HDD は裏の基盤上の jumper pin で設定) …|・■ …|■・ …|・・ …|・■ …|■・ …|■■ マスター スレーブ ケーブル選択 多くの HDDメーカーの WWW リソースでは jumper の設定が説明されています。 IBM: Toshiba: Hitachi: Fujitsu: Quantum: Seagate: Maxtor: comp.arch.storage FAQ-1 の Hard Disk Manufacturers には、上記以外にも HDD メーカーの URL が載っています。 --- [管理番号 756] (最終更新 1999/02/17 23:58:45) Q. msgget,semget を使おうとしたら、core dump してしまいました。 FreeBSD では、メッセージ、セマフォはサポートされていないのでしょうか。 A. SystemV 由来のメッセージ/セマフォを使うには、カーネル コンフィギュレーションで options SYSVMSG # メッセージ options SYSVSEM # セマフォ が指定されたカーネルを使用しないといけません。3.1-RELEASE 以前の GENERIC カーネルでは上記オプションは外されていますので、カーネルの 再構築が必要です。3.2-RELEASE 以降の GENERIC カーネルではデフォルトで これらのオプションが含まれています。 詳しくは Handbook や Lint を読んで下さい。 --- [管理番号 757] (最終更新 2004/04/09 05:05:18) Q. デーモン君の画像を入手したいのですがどこにあるんでしょう? A. 以下のWebサイトで入手できます。(2003/11現在) その他以下のような情報提供もありました。 (1)www.jp.FreeBSD.org や www.FreeBSD.org を見に行って、ブラウザの 'Save Image As'('画像を名前を付けて保存') でセーブした後に 適当に加工するのが一番手軽かな? (2)FreeBSD ニューズレター第2弾 のbackground になっている画像を壁紙にして います。サイズが大き目ですが、かわいくて気に入っています。 (3)デーモン君の画像の使用に関しては を参照してくださいね。 --- [管理番号 758] (最終更新 1999/02/17 23:58:45) Q. 自分で BSD のデーモン君の画像を作って使用する場合、何らかの 手続きが必要でしょうか? A. オリジナルの BSD Daemon は Marshall Kirk McKusick 氏の著作物です。 FreeBSD のでーもん君はこのオリジナルの BSD Daemon の派生物という 扱いになる訳です。 デーモン君の画像を自分で作った場合、その画像はオリジナルの BSD Daemon の派生物となり、 McKusick 氏の許諾を得る必要があります。 詳しくは以下を参考にしてください。 BSD Daemon ホームページ BSD Daemon の Copyright について --- [管理番号 759] (最終更新 1999/02/17 23:58:45) Q. 3com 3c509(PnP)のカードの PnPを Offにするにはどうしたらいいのでしょ うか? A. 以下の手順で作業しましょう。 (1) DOSを起動する。 (2) 3C509附属のインストールFDで、インストール・プログラムを起動する。 (a: INSTALL) (3) "Configuration Dialog Box"に、 Plug and Play Enabled というのが設定されているので、これを Plug and Play Disabled にする。 (4) 上記の設定をセーブする。 (5) 電源を切って再起動する。 Installメニュー以外の方法として PNPDSABLを実行する方法もあります。 () --- [管理番号 760] (最終更新 1999/02/17 23:58:45) Q. ports/packages が対応しているものより新しいソースがあることに気が付 きました。この ports/packages の MAINTAINER に連絡した方がいいですか? A. バージョンアップにより、幾つかの不具合が直っているかもしれません。 MAINTAINER に教えてあげるとよいでしょう。新しいportsを作ってくれるかも しれません。 もちろん、あなたご自身で ports/packages を作ってしまってもいいのですよ。 ただし、その時にはそのソフトの(そのバージョン)が ports/packages にして よいものなのか、付属ドキュメントを読むなどして確認しなくてはいけません。 場合によっては、作者から了解を得ることが必要になるかもしれません。 --- [管理番号 761] (最終更新 1999/02/17 23:58:45) Q. FreeBSDは フリー(無償)で配布されていると聞いたのですが, FreeBSD の名の 付く商品の中には 数万円と高価な価格で販売されているものがあります。とても フリーなソフトウェアとは思えません。なぜでしょうか。 A. その高価な商品の構成を確認してみてください。FreeBSD の他に商用製品(日本 語入力ソフト、ワードプロセッサ、表計算、フォントなど) や、日本語による 解説書など付加価値がついているはずです。 商品につけられた価格は それらすべてを含めた価格であります。この価格には それらを配布 (販売) するにあたり、CD-ROMや、解説書をつくる実費、経費を、 商用製品の開発経費を添加して価格設定せざるをえないことは、常識的にご理解 いただけるものと思います。 それらの商品であっても、FreeBSD 本体は再配布可能ですが、その他の構成品に ついては それぞれの配布条件があるはずですから、個別に確認してください (どこが FreeBSD 本体で どこがそうでないか よく分からない場合は 無闇に 再配布しないことが賢明です)。 FreeBSD の名の付くパッケージに含まれているもの 全てが同じライセンス条件 ではありませんので 注意が必要です。 --- [管理番号 762] (最終更新 1999/02/17 23:58:45) Q. DHCP クライアントにするために wide-dhcp をインストールしたのですが、 dhcpc を実行すると 以下のエラーメッセージが出て IP アドレス等を取得で きません。 Can't open bpf to read the dhcp message : No such file or directory. A. カーネルに bpfilter (Berkeley Packet Filter) の組み込みと /dev/bpf? のデバイスがないと Q の様な現象になります。カーネルの構成の見直しと /dev/bpf? のデバイスがあるか確認します。 1) カーネル再構築 カーネルコンフィグファイルに下記の様な記述があるか確認します。 なければ書き足して再構築してください。 pseudo-device bpfilter 4 数字の部分は組み込むフィルタの数です。この数字の分だけ同時にフィ ルタを使うことが出来ます。 2) デバイス作成 /dev ディレクトリに bpf? のデバイスがあるか確認します。 なければ /dev/MAKEDEV bpf0 という具合にして作成します。 数字の部分は カーネ ルで用意したフィルタの数と同じだけ 作成すれば良いでしょう。数字は 0 から始まります。 例の場合だと bpf0 〜 bpf3 まで作成します。 (少なすぎると 折角カーネルに組み込んだフィルタが使えなくなり、多す ぎるとそのデバイスは使われることがありません) これで使えるはずです。 この bpf (Berkeley Packet Filter) とは、ネットワークインターフェースが 拾ってくるパケットをユーザプロセスに渡したり、ユーザプロセスからネット ワークインターフェースへパケットを投げたりすることが出来る仮想デバイス です。 カーネルが持っていないプロトコルは、bpf を通してユーザプロセスで扱う ことが出来るようになります。 詳しくは bpf(4) をどうぞ。 --- [管理番号 763] (最終更新 2001/03/07 02:08:45) Q. 速いマシンを使っているのに、なぜか emacs や mule を起動すると 10秒ほど待たされてしまいます。 A. emacs や mule は、起動時に hostname(1) で得られるホスト名 から IP アドレスを引こうとします (逆引きしようとする)。 /etc/hosts を見て解決できない場合、ネットワークに接続されて いるマシンでは、/etc/resolv.conf に従い、DNS サーバに問い 合わせて、自ホスト名に対応する IP アドレスを引こうとします。 しかしインターネットに接続されていないマシンでは (例えば ppp 接続していない場合など)、DNS サーバに接続できず、その タイムアウトを待ってしまうため、10秒ほど固まってしまうのです。 仮に常時接続マシンであっても、メンテナンス時などは network unreachable な状態になりうるので、/etc/hosts に自ホストの エントリを記述しておきましょう。 例えば % hostname foo.example.co.jp となるなら ::1 localhost foo.example.co.jp 127.0.0.1 localhost foo.example.co.jp と /etc/hosts に記述しておきましょう。 また、関連する項目として [管理番号 781] も参照してください。 --- [管理番号 764] (最終更新 1999/02/17 23:58:45) Q. SCSI の CD-ROM からインストールすると途中で読み出しエラーになる。 (FreeBSD 2.2.5) A. バージョン 2.2.5R , Adaptec 2940U を使っている場合、一部の SCSI CD-ROM でこの現象が報告されています。その他の場合でも以下のような現象 が発生します。 1) CD-ROMからのインストール時に途中で読み出しエラー。 2) packages のインストール中にエラーコード1でエラー。 3) 一度エラーが出るとCD-ROMや、場合によってはディスクへのアクセスが不 能になる。 もしもインストール後にこのようなエラーが発生したら、/var/log/messages を見てください。下記のようなエラーメッセージが出ていればこの現象だとい えます。 Mar 4 23:45:32 myname /kernel: ahc0: Issued Channel A Bus Reset. 3 SCBs aborted Mar 4 23:45:33 myname /kernel: cd0(ahc0:6:0): UNIT ATTENTION asc:29,0 Mar 4 23:45:33 myname /kernel: cd0(ahc0:6:0): Power on, reset, or bus device reset occurred 原因ははっきりしていませんが、高速のCD-ROMを使うとこの現象が発生する場 合があります。対策は以下の方法があります。 1) バスを確認する。 ケーブルの長さを確認する。10MB/Secより速い設定ならば、1.5m以内、 5MB/Secより速い設定(FASTオプション)なら、3m以内になっているかを確認す る。ケーブルもハイインピーダンスの、良質ものを使っているか確認する。 2) ターミネータを確認する。 きちんと付いているか、PassiveタイプならActiveタイプに取り換えてみる。 3) SCSIカードの設定を以下のように変更する。 2940UBIOSの、SCSIデバイスの設定で CD-ROM の Enable disconnectionを no に設定する。 4) 遅いCD-ROMに交換してみる。 12倍速、16倍速、20倍速で誤動作が報告されています。しかし、4倍速、8倍速 タイプのものでは正常動作が報告されています。旧型のCD-ROMがあるならばそ れに替えてみてください。 5) ディスクが quantum の場合、Firmware をアップデートしてみる。 Firmware の非公式修正バージョンが出ています。 の config で OS に Linuxを選択して、行った先の quantum のリンクをたどった 所にあります。ただし、最近のディスクは既に修正されています。 6) SCSIカードを取り換えてみる。 DC-390に交換したら正常になったという報告があります。 --- [管理番号 765] (最終更新 1999/02/17 23:58:45) Q. jman が途中から表示されてしまいます。日本語は正常に表示できています。 A. [FreeBSD 2.2.2 以前] % jman ls とすると、途中から表示され、冒頭が表示されないなら、 /usr/local/share/groff/tmac の設定の不具合が原因です。 この問題は FreeBSD 2.2.5 Release よりも前の ports/ packages を 用いている場合に生じます。2.2.5 Release 以後の ports/packages では修正されています。 FreeBSD 2.2.5-Release 以降のバージョンでそれ以前の バージョンの jp-man-doc-*, jp-man-1.1, jp-groff-0.99 を 使用している場合にはこれらを pkg_delete して、 ja-groff-0.99, ja-man-1.1*, ja-man-doc-* を現在使用している バージョンの packages または ports から インストールして下さい。 2.2.5 よりも前の Release を 使用している場合には OS ごと upgrade を行うか、(あまりお奨めしませんが) 2.2-stable への アップグレードキットを を用いて/etc/make.conf および /usr/share/mk 以下の ファイルをアップグレードした上で ports-current の ja-groff-0.99 および ja-man-1.1* を インストールして下さい。 また、jmanのトラブルに関しては、 も参照してください。 --- [管理番号 768] (最終更新 1999/02/17 23:58:45) Q. FreeBSD のファイルシステム最大容量はいくらですか? A. 1TB = 1024GB です. ccd(4) を用いて RAID 0 相当機能を使用する場合の最大容量も 1TB です. --- [管理番号 769] (最終更新 1999/02/17 23:58:45) Q. Windows マシンに packages の入った CD-ROM を入れ、Microsoft Personal Web Server などの FTP Server を起動し、そこから FTP 経由で packages をインストール しようとしましたが、「選択したメディアからパッケージ XXX を読むことができま せん。パッケージは追加されません。」と表示されてインストールできません。 A. packages のファイル名が正しく認識できないのが原因です。Rock Ridge Extension 形式の CD-ROM は Windows 等では 8+3 文字のファイル名でしか読めません。Windows 上で Rock Ridge Extension を取り扱えるような工夫をするか、もしあれば TRANS.TBL ファイル内の情報を参考にし、Long File Name でハードディスク上にコピーしてから、 packages の追加を行なって下さい。 --- [管理番号 770] (最終更新 2003/01/22 21:13:32) Q. FreeBSD(98)をインストールしようと思い、 (1) PC/AT 版 FreeBSD の CD-ROM と、 (2) FreeBSD(98) のバイナリ差分を用意し ました。この 2 つを DOS 領域にコピーしておかないと、インストールは出来ない のでしょうか? A. 両方が DOS 領域に置いておかなくてもなんとかなります。 配布物の中にある 98readme ディレクトリの Instal98.txt の「配布ファイルの準備」 や「配布ファイルの選択」、「インストールの実行」に詳しい説明があります。 --- [管理番号 771] (最終更新 1999/02/17 23:58:45) Q. シングルユーザモードで mount コマンドを実行したら WARNING: R/W mount of / denied. Filesystem is not clean - run fsck. と言われました。 A. fsck するしかないです。 [管理番号 299] を参照してください。 --- [管理番号 772] (最終更新 1999/08/08 00:23:56) Q. RING サーバってなんですか? A. RING サーバプロジェクトが管理しているファイルサーバ群の ことです。FreeBSD、Linux、Perl、apache など、有用なソフト ウェアを配布しています。 負荷分散のため、複数のサーバが存在しますが、すべて同じ内容を 保持していますので、どのサーバに接続しても同じ内容が得られます。 自分のマシンに近い RING サーバを利用しましょう。 --- [管理番号 773] (最終更新 1999/02/17 23:58:45) Q. プリンタで印刷しようとすると途中までしか印刷できません。 A. lpqで印刷ジョブのキューを見ると印刷しようとしている エントリのサイズが1025024bytesになっていませんか? lpr: hogehoge.ps : copy file is too large などのメッセージが表示されませんでしたか? Windows からの大きな文書のプリントアウトを samba で利用して FreeBSD の lpr で行う場合や ghostscript を用いて printer に 出力している場合など、大量の出力を行う場合にキューファイルの サイズ制限を超えてしまっていることが考えられます。 /etc/printcap の mx フィールドでスプールに置かれるファイルの 上限サイズが決まりますが、そのデフォルトが 1025024bytesです。 mx#0と指定するとこのサイズは無制限になります。 (例) /etc/printcap に以下のようなエントリがあったとします。 lp|local line printer:\ :sh:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: このとき、以下のように変更すればよいでしょう。 lp|local line printer:\ :sh:mx#0:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: あるいは、エントリの最後に追加する場合には lp|local line printer:\ :sh:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:\ :mx#0: などとします。最後の行に追加する場合には、前の行の行末に「\」を つけて継続行にするのを忘れないようにして下さい。 詳細は printcap(5) (および termcap(5)) を参照して下さい。 また、lpr 起動時に -s option をつけて lpr -s として使用 すると、印刷対象ファイルをスプールにコピーするかわりに シンボリックリンクの作成を指定することができますので、 この方法を用いてもその現象は回避可能です。 この方法を使うと、印刷が完了するまで印刷対象のファイルを 消したり変更することができなくなりますが、ディスク容量を 節約できるという利点があります。 --- [管理番号 774] (最終更新 1999/02/17 23:58:45) Q. Ghostscript を使って印刷をしているのですが、先頭ページに次のよう なメッセージが印刷されてしまいます。このメッセージを消すにはどう すればよいのでしょうか。 Aladdin Ghostscript 5.10 (1997-11-23) Copyright (C) 1997 Aladdin Enterprises, Menio Park, CA. All rights reserved. This software comes with No WARRANTY: see the file PUBLIC for details. A. Ghostscript の起動オプションに -q を付けていますか? プリントフィルタとして Ghostscript を起動するスクリプトを指定した ときは、-sOutputFile=- というオプションを使用して Ghostscript の 出力を標準出力(stdout)に出力しますが、Q.のような著作権表示などの メッセージも stdout に表示されているので、印刷時に混ざってしまい ます。 このため、メッセージを stdout に出力されないようにしなければなり ませんが、この、メッセージを stdout に出力しないように抑止するの が、-q オプションです。ghostscript のコマンドラインオプションに ついては gs(1) を参照して下さい。 フィルタプログラムの設定例(プリンタは CANON LIPS III系)を以下に 示します。 #!/bin/sh /usr/local/bin/gs -q -dNOPAUSE -sDEVICE=lips3 -sOutputFile=- - quit.ps --- [管理番号 775] (最終更新 1999/02/17 23:58:45) Q. ipfw でパケットフィルタリングファイアウォールを構築しようとして rc.conf に firewall_enable="YES" firewall_type="/etc/firewall.conf" firewall_quiet="YES" と設定しましたが ipfw がエラーを出力してパケットを全く通して くれません。 A. [FreeBSD 2.2.6, 2.2.7] firewall_type にファイルのフルパスを指定した場合は firewall_quiet="NO" でなければなりません。 ファイル名を指定した場合に ipfw のルールの表示を抑止 したい場合にはルールファイルの各行毎に -q を入れてやる 必要があります。 --- [管理番号 777] (最終更新 1999/02/17 23:58:45) Q. Microsoft Outlook ユーザの友人から MS-DOS のテキストファイルが添付ファイル の形式で送られてくるのですが、文字が化けてしまい うまく読み込めません。 Outlook ユーザ同士では問題ないと言っています。 A. 私のところに Microsoft Outlook より MS-DOS テキストを添付して 送られて来た メールでは ファイルの中身が MS-DOS テキストファイルで 漢字コードに いわゆる Shift-JIS が使われていました。 このメールのヘッダを見ると Content-Type: text/plain; name="filename.txt" Content-Transfer-Encoding: base64 と書かれていました。つまり添付ファイルの中身は plain なテキストで文字コード は us-ascii であることを宣言しています。( 'charset=' 省略すると us-ascii と なります) しかし 実際にはファイルの中身は Shift-JISの DOS テキストですから、 このままでは正しく読めません。 そこで下記の様な方法にします。 1. muleなどで 普通のファイルとしてメールを読み込み Content-Type: の値を Application/Octet-Stream に書き換え、保存します。 2. 再度 mew で読み込みます。 すると 添付ファイルの部分は バイナリファイルと して見えるはずです。 3. これを適当なファイルとして保管します。 4. 保管したファイルを mule などを使うと 読むことができます。 --- [管理番号 778] (最終更新 2002/10/21 05:19:40) Q. PC-9801/21 ノートのトラックボールやスライドパットは使えますか A. バスマウスとして使用可能です。 --- [管理番号 779] (最終更新 2000/03/04 08:15:55) Q. i386/i486 を数値演算コプロセッサ (FPU) なしで使用していますが問題が ありますか。 A. 一般的にはありませんがパフォーマンスと精度が落ちます。特に X Window System を使用して円弧を描く場合、著しく速度が低下します。ps(1) コマン ドですら CPU 使用率の計算で小数点演算を行うので、速度差が現れます。 また、標準の浮動小数点エミュレータは完全に 487 コードをエミュレート していないため、一部のアプリケーションは実行できません。したがって、 FPU を装着することを強く推奨します。 FPU が無い場合は、MATH_EMULATE option よりも、GPL_MATH_EMULATE option を指定した方が精度は良いでしょう。これについては、FreeBSD handbook 第5章「FreeBSD カーネルのコンフィグレーション」の「コンフィグ レーション ファイル」節を参照して下さい。 --- [管理番号 780] (最終更新 1999/02/17 23:58:45) Q. fsck を実行すると "CLEAN FLAG NOT SET IN SUPERBLOCK" と 表示されるのはどうしてですか? A. 使用中のファイルシステムに対して fsck を実行するとこの メッセージが表示されます。"CLEAN FLAG" は正常にマウントを 外すことができた時に、ファイルシステムのスーパブロックに セットされるフラグです。ファイルシステムを使用している間は このフラグがセットされていないため必ず上記のメッセージが 表示されます。 基本的に fsck は使用されていないファイルシステムに対して のみ実行して下さい。 また、不慮の事故などにより、ファイルシステムのマウントを 外す事ができずにシステムがダウンしてしまった場合にも このようなメッセージが表示されます。 --- [管理番号 781] (最終更新 2004/04/09 05:04:53) Q. ダイアルアップルータや ppp の -auto モードを使用しています。 次のような操作により、意図していないのに勝手にダイアルしてしまいます。 これを抑制するにはどうすればいいですか? 1. sendmail 等、アプリケーションの起動時 2. 夜中の 3 時頃 3. なにかしら DNS への問い合わせが発生する操作 A. 一般的に on-demand dialup では、DNS サーバへの参照をトリガーとしてダイ アルします。これを抑制すれば意図しないダイアルを防げます。 (1) 名前解決の順序 (2) 自ホストの名前解決 (3) 外部への接続が不要な DNS への問合せを抑制する。 (1) 名前解決の順序 デフォルトでは /etc/host.conf は hosts bind となっています。これを逆順にすると、必ず DNS サーバーへの問い合わせ が行われるという問題が起きます。念の為、確認してください。 (2) 自ホストの名前解決 sendmail 等のアプリケーションは、起動時に自ホストの名前解決を行います。 これによる DNS への問合せを避ける為、/etc/rc.conf で hostname 変数に指 定した自ホスト名を、/etc/hosts に登録する必要があります。 すなわち、hostname(1) コマンドの結果が `myhost.example.jp' なら、 127.0.0.1 localhost localhost.example.jp myhost.example.jp または、ネットワークインタフェースが使えるなら、その IP アドレスを使って、 127.0.0.1 localhost localhost.example.jp 192.168.0.1 myhost.example.jp myhost のようにします。 LAN 上に DNS サーバを立ち上げてないような小規模サイトでは、その LAN に あるそれ以外のホストについても、ホスト名と IP アドレスのペアを登録して おきましょう。これはこちら側から直接 telnet などするつもりがなくても、 逆から接続されるとき、IP アドレスからホスト名を逆引きするときにも使わ れるからです。 (1) 及び (2) は、ローカルで DNS サーバーを動かしていない場合の必須事項 で、これをしてないがために、アプリケーション起動のたびに PPP 接続して しまったり、起動に時間がかかるといった現象に出食わすことになります。 (3) 外部への接続が不要な DNS への問合せを抑制する。 典型的な例として、netstat(1) があります。このコマンドはデフォルトで DNS への問合せを発行します (-n オプションで抑制できます)。 4.1.1-RELEASE 以降のデフォルトでは、/etc/periodic/dayly から、 netstat が実行されます (4.9-RELEASE で確認)。その為、 /etc/periodic/dayly が実行される午前3時頃にダイアルアップすることに なります。これを避けるには、/etc/periodic.conf に次の行を追加してく ださい。詳しくは periodic.conf(5) をご覧ください。 daily_status_network_usedns="NO" daily_status_named_usedns="NO" なお、ppp(8) のパケットフィルタを設定すれば、DNS への問い合わせにより 自動的にダイアルしないようにもできますが、on-demand dialup の目的から すると本末転倒かもしれません。もちろん設定するしないは自由ですので、ケー スバイケースで判断してください。 set filter dial 0 deny icmp set filter dial 1 deny udp src eq 53 set filter dial 2 deny udp dst eq 53 set filter dial 3 permit 0 0 詳しくは man ページや、/usr/share/examples/ppp/ 以下、または /etc/ppp/ にあるサンプルファイルを見てください。 --- [管理番号 782] (最終更新 1999/02/17 23:58:45) Q. 486SX を使用しているのに起動時には 486DX と表示されますが問題ないでしょうか? A. CPU クラスの表示において、486SX と 486DX の識別が不可能な場合、486DX と決め 打ちしています。動作には支障ありません。 --- [管理番号 783] (最終更新 1999/02/17 23:58:45) Q. X で kterm や Mule など、いろいろ開いて使用しています。 あるウィンドウから別なウィンドウに移動して作業を行なったり、 ウィンドウを移動させると頻繁にディスクにアクセスし、止まったように なるのはどうしてですか? A. 多量のメモリを消費し、スワップが発生しています。FreeBSD は、実際に 搭載したメモリのほか、ハードディスクを "メモリの代用" として使用 しています。メモリが足らなくなると、使われていないメモリの内容を ハードディスクに書きだし、必要になった時に再びメモリに読み込みます。 このような現象が頻繁に発生すると、この質問のように、一瞬または しばらく止まったように見えます。メモリを増設するとこの現象が少なく なります。 --- [管理番号 784] (最終更新 1999/02/17 23:58:45) Q. 終了手順を踏まなければならないことは理解しているのですが、 どうしてもリセットを行なわなければならない事態に陥ってしまいました。 何か注意することはありますか? A. いきなり電源を切ってはいけません。 ちゃんと、お祈りしてから切りましょう リセットしなければならないと思ってから、しばらく放置して下さい。 どれくらいの時間放置すればよいのかはっきりしたことはわかりませんが、 1 分程度待って下さい (これが十分かどうかはわかりません)。運がよければ この間にまだファイルシステムに書かれていなかったデータがディスクに 書き込まれます。すると、ファイルシステムの整合性を損なうことが なくなるので、起動時には "clean flag" が立っていないこと以外は 正常である可能性が高くなります。 --- [管理番号 785] (最終更新 1999/02/17 23:58:45) Q. www.XFree86.org が遠いんですけど、どこか国内で見ることはできませんか? A. RING サーバプロジェクトが XFree86 を mirror しています。 RING サーバの /pub/XFree86/WWW/htdocs/ ディレクトリを参照してください。 RING サーバや その URLについては [管理番号 772] を参照してください。 --- [管理番号 787] (最終更新 2000/03/04 08:15:59) Q. 数値演算コ・プロセッサ (FPU) のない PC で "GPL_MATH_EMULATE" を指定 してカーネルを再構築したのですが、X を使うと浮動小数点演算のエラーが出 ます。どうしてですか。 A. LINT にもあるように、GPL_MATH_EMULATE を指定する時は、MATH_EMULATE を消すかコメントアウトして下さい。同時に指定すると MATH_EMULATE を指定 した時と同じ浮動小数点エミュレータが使用されます。 また、アプリケーションソフトウェアによっては、 GPL_MATH_EMULATE を指 定しても実行できないものがあります。できる限り FPU を使用して下さい。 --- [管理番号 788] (最終更新 2003/01/22 21:13:32) Q. FreeBSD(98) をインストールするには、どんな CD-ROM を買えば いいですか? A. FreeBSD(98) をインストールするには以下の三つの部品が必要です。 1) FreeBSD(98) ?.?-R の kern.flp/mfsroot.flp (フロッピー 2 枚分) (機種によって適切な kern*.flp を選択します) 2) PC/AT版 FreeBSD ?.?-RELEASE の 配布物 (フロッピー 50 枚くらい?) 3) FreeBSD(98) ?.?-R の バイナリ差分 三つが同封された FreeBSD(98) と銘打った CD-ROM を買うのが一番楽ですが、 FreeBSD(98) のリリースは元になる PC/AT 用 FreeBSD がリリースされた後に なりますので、CD-ROM になるまでに時間差が生じます。また、一昔前は FreeBSD(98) が製品になった物をあまり見掛けませんでした。 一方、この三つはFTPサーバで公開されていますので、通信費さえ覚悟すれば 全てを FTP で持ってきてしまうという方法もあります。2) がちょっと大きな 量になりますが、回線が細いようでしたら bin, src, crypto と必要に応じて XFree86 などだけ取ってくるということもできます。 しかし、冷静に考えてみると、2) は PC/AT 版 FreeBSD ですので CD-ROM を 買ってもいいし、雑誌の付録を使うこともできます。つまり 1) と 3) だけ FTP で取ってくればなんとかなるというわけです。 --- [管理番号 789] (最終更新 1999/02/17 23:58:45) Q. natd + qmail でプライベートネットワーク内のメイルサーバへメールを配 送しようとしています。ところが、プライベートネットワーク内から外へメー ルできるんですが、外から内へはメールできなくて hoge@hoge_domain... Deferred: Operation timed out with pis.toba-cmt.ac.jp. というエラーメールが返ってきます。何がいけないんでしょう。 A. これは MTA が MX を引いた後、natd マシン上で TCP の 25 番で相手と通 信したけれど相手にしてくれるプログラムがいなかった時のメッセージです。 natd では divert ソケットと共に用いてマシンに入ってくるパケットについ ては指定された変換テーブルに従ってプライベートアドレスに変換し、外部へ のパケットについては発信元 IP アドレスを現在のマシンのものにするという 変換を行います。したがって、natd は外部からきたパケットについてはいわ ば関所のような働きをするわけで、このとき通行手形にあたるものが変換テー ブルとなるわけです。通常変換テーブルは -redirect_port や -redirect_address でユーザが指定したものです。ただし、-deny_incoming を no にするとユーザ指定外のパケットも通してしまいますので、普通はこれ を yes にして必要外のパケットは通さないようにし、必要なものだけ -redirect_port や -redirect_address で指定します。 まずあなたの指定した natd.cf ファイルを見てください。 "-deny_incoming yes" にもかかわらず -redirect_port で 25 番ポート (こ れ SMTP の TCP ポート番号ですね :) を指定していないんじゃないですか? deny_incoming yes redirect_port tcp internal_mail_server_address:25 25 を指定してください。また、qmail を御使いですから natd マシン上では qmail コントロールファイル smtprouts の中に .internal_domain_name: :internal_mail_server_name.internal_domain_name を作っておかなければなりません。これは内部から外部へは配送できているの で大丈夫でしょう。 [参考資料: natd(8), qmail-control(5), qmail-remote(8)] --- [管理番号 791] (最終更新 1999/02/17 23:58:45) Q. リターンキーを押してもコマンドが実行できません。 A. カーソルが 1 段下がるだけで左端に移動しない場合は、リターンキーの代 わりに Ctrl-J を使用して下さい。もし、これでうまくいったのであれば、 reset として端末の設定を直して下さい。 --- [管理番号 792] (最終更新 1999/02/17 23:58:45) Q. timed をスレーブモードで使用したらいきなり時刻が 9 時間進んでしまい ました。どうしたらいいですか? A. 内蔵時計を JST にして、インストール時の時刻設定で、内蔵時計が地方時 を表すようにした場合、このような現象が発生します。簡単な対策は、内蔵時 計が UTC を表すようにすることです。sysinstall や tzsetup で変更して下 さい。 ただし、内蔵時計を UTC にすると、DOS や Windows を起動した時にも UTC になります。 --- [管理番号 793] (最終更新 1999/02/17 23:58:45) Q. カーネルを再構築する時、IRQ や I/O ポートの設定を間違えてしまいまし た。どうしたらいいですか? A. このまま起動すると、デバイスによっては正しい値を取得できない場合が あり、ハングアップしたり、リブートしたりすることがあります。起動時に、 Boot: と表示された時に、 kernel -c と入力して下さい。すると、 config> と表示されます。ここで、 visual と入力すると、デバイス設定画面が表示されますので、正しく設定し直して下 さい。すべての設定が終ったら、`q' キーを入力すると、FreeBSD が起動する はずです。 --- [管理番号 794] (最終更新 1999/02/17 23:58:45) Q. ハングアップしてしまいました。助けて下さい。 A. まず、落ち着いて下さい。決して "暴走即電源ブチッ" ということをして はいけません。とりあえず、Ctrl-C や Ctrl-D あるいは Ctrl-\ などのプロ グラム終了にアサインされている機能キーを押してみて下さい。それでもダメ なら仮想コンソールを切替えてログインするかネットワーク経由でログインし てみて下さい。もし、ログインできたら ps コマンドを用いて問題を起こして いるプロセスの PID を調べて、いろいろなシグナルを送ってみてください。 たとえば、 kill -INT kill -HUP kill -QUIT kill -TERM とやってダメなら kill -KILL とやってプロセスを殺して下さい。ただ、ドライバ内部でのフリーズや拡張ボー ドの設定ミスなどでカーネル自体がハングアップしている場合があります。そ れを調べるには、キーボードの CAPS キーを押してみて下さい。もし、カーネ ル自体がお亡くなりになっている時は LED が点滅しません。その時は電源 OFF またはリセットするしかありません。 --- [管理番号 795] (最終更新 1999/02/17 23:58:45) Q. 起動時にいつも "WARNING: / was not properly dismounted" と表示され てしまうのはなぜですか? A. これは、前回の終了時にルートパーティションのマウントを正しくはずし ていないことを示すメッセージです。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. と表示されます。この表示が出てから電源やリセットボタンを操作して下さい。 絶対に、 いきなり電源ブチッ 暴走即リセット ということを行なってはいけません。 --- [管理番号 797] (最終更新 1999/02/17 23:58:45) Q. 2.2.x と 3.0 を、一台のディスクに共存させてインストールできますか? A. 基本的にはできません。しかし、以下のようなテクニックを使えば不可能 ではありません。このテクニックは、非常に危険な操作ですので、以下の 操作が何をしているか、ちゃんと理解できる人「のみ」が行ってください。 また、fdisk の関連する部分のマニュアルを読んでからにしてください。 この設定を少しでも間違えれば、ディスクに入っている内容を「完全に失 わせる」可能性があります。潜在的な危険性を理解した上で、この手法を 使用してください。 基本ポリシとして、3.0 の /, /var, /usr の基本部分のみを別パーティショ ンに起き、基本は 2.2.x を入れる例を示します (/usr/local や /usr/home は共有します)。 以下に示すのは、あるラップトップでの例であり、FDISK スライス 1 がハ イバネーション用のスライスになっています。そこで、スライス 1 に関し ては気にしないようにしてください。 まずは、2.2.x をスライス 3 (スライス 1 がハイバネーションエリアなど で使われていなければスライス 2) にインストールします。この際、スラ イス 2 (前記の場合ならスライス 1、以下略) を、3.0 を入れる分だけ確 保しておきます。とりあえず FAT パーティションにでもしておけばよいで しょう。サイズは 200MB 程度で足りるようです。 このインストールが終わったら、次は 3.0 をインストールします。この際、 スワップパーティションは、スライス 3 にある 2.2.x のスワップパーティ ションがそのまま使用できるので、スライス 2 に確保する必要はありませ ん。面倒なので、スライス 2 には一つだけパーティションを作れば良いで しょう。配布ファイルは bin だけをインストールします。 ブートブロックは booteasy でも標準ブートブロックでも良いのですが、 安定稼働するまでは booteasy が良いかもしれません。 ここで、/etc/fstab を書き換えて、2.2.x のディスクが /22 に見えるよ うにします (3.0 のインストール時に、ついでにディスクラベルエディタ から行ってもかまいません)。 # rmdir /usr/local # ln -s /22/usr/local /usr # ln -s /22/usr/home /usr # mkdir /22/usr/src30 # rmdir /usr/src # ln -s /22/usr/src30 /usr/src とでもすればよいでしょう。 この状態で fdisk を実行すると、 # fdisk ******* Working on device /dev/rwd0 ******* parameters extracted from in-core disklabel are: cylinders=788 heads=128 sectors/track=63 (8064 blks/cyl) parameters to be used for BIOS calculations are: cylinders=788 heads=128 sectors/track=63 (8064 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 132,(unknown) start 6144768, size 201600 (98 Meg), flag 0 beg: cyl 762/ sector 1/ head 0; end: cyl 786/ sector 63/ head 127 The data for partition 2 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 63, size 403137 (196 Meg), flag 0 beg: cyl 0/ sector 1/ head 1; end: cyl 49/ sector 63/ head 127 The data for partition 3 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 403200, size 5741568 (2803 Meg), flag 80 (active) beg: cyl 50/ sector 1/ head 0; end: cyl 761/ sector 63/ head 127 The data for partition 4 is: となっています。ここで、スライス 2 を FreeBSD 以外の適当な ID を持 つスライスに見せかけて、スライス 3 のブートブロックを呼び出せば、 2.2.x が起動することになります。 この作業を行うために、まずスライス 2 に関するデータを調べます。上の 表示からスライス 2 は開始が 63 ブロックで、サイズが 403137 ブロック であることがわかります。そこで、以下のファイルを作ります。 3.0 のルートディレクトリ (この例だと wd0s1a) に、22.fdisk というファ イル名で、 p 2 65 63 403137 a 3 (一行目の 65 は 165 以外ならどんな適当な数字でも良いのですが、fat を示す 6 や、unused に対応した 0 などにするのはあまりお勧めできませ ん。また、ラップトップなどでハイバネーションにパーティションを使用 するタイプの BIOS では、そのパーティション ID にしてもいけません。 上の例では、132 がそれにあたります) というファイルを、また 22sw と いうファイル名で、 #!/bin/sh fdisk -f /22.fdisk wd0 というファイルを作ります。そして、/22sw に実行ビットを立てます。 そして、3.0 から見たディレクトリ /22 (つまり 2.2.x のルートディレク トリ) に、30.fdisk というファイル名で、 p 2 165 63 403137 a 2 (一行目の 165 は、先ほどの例とは異なり、絶対に 165 でなければなりま せん) というファイルを、また 30sw というファイル名で #!/bin/sh fdisk -f /30.fdisk wd0 というファイルをつくります。そして /22/30sw に実行ビットを立てます。 これで、3.0 が起動しているときに # /22sw と実行して再起動すると、2.2.x が起動してきます。また、2.2.x が起動 しているときに # /30sw と実行して再起動すると、3.0 が起動してきます。実際には、一発でうま くこの設定ができるとは限らず、かつ失敗すると二度と起動しないという 可能性がありますので、とりあえず fdisk には -t オプションを同時につ けて、デバッグを十分に行ってから実行してください。また、重要なデー タがあれば、必ずバックアップを取ってからこの設定を行ってください。 --- [管理番号 798] (最終更新 2004/04/09 05:05:33) Q. FreeBSD の各バージョンの配布ファイルの内容や変更点を調べたいのですが。 A. CVS リポジトリを CVSweb で見てください。 例えば、/etc/rc の内容を見たい場合は で、ファイルの変更履歴を見ることができます。 また FreeBSD 3.2-RELEASE で配布された /etc/rc を見たければ、 RELENG_3_2_0_RELEASE というタグを探します。 1.169.2.11 Mon May 3 8:13:26 1999 UTC by grog CVS Tags: RELENG_3_2_PAO_BP, RELENG_3_2_0_RELEASE, RELENG_3_2_PAO; Branch: RELENG_3 ですね。 /etc/rc の 4.1-RELEASE と 4.2-RELEASE との変更点を見たければ、一番下の Diffs between ... and .... とあるところで、一方の SELECT BOX で「RELENG_4_1_0_RELEASE」を、もう 一方で「RELENG_4_2_0_RELEASE」を選択し、「Get Diffs」ボタンを押すと という差分が得られます。 FreeBSD は、最先端の開発は -CURRENT で、安定版は -STABLE で、 というふうに2本立てで行われています。 2004/01/07 現在では、5-CURRENT/4-STABLE となっています。 で、 1.254 Sat Mar 10 5:33:37 2001 UTC by dougb などとリビジョン番号 (バージョンのようなもの) が 1.xxx となっているものが -CURRENT です。現在は 1.xxx = 5-CURRENT ですが、そのうち 1.xxx = 6-CURRENT に なり、1.xxx = 7-CURRENT となっていくでしょう。 一方 -STABLE は 1.212.2.21 Wed Mar 7 20:13:56 2001 UTC by jkh Branch: RELENG_4 のように「Branch: RELENG_4」とあり、1.xxx.y.zzz という形のリビジョン 番号になっています。 cvsweb では、-CURRENT/-STABLE の変更が時系列順に並んでいますので、注意して 下さい。4-STABLE のみの変更点を見たい場合は、一番下にある ここでは一つのブランチの履歴だけを選んで表示することができます。 Branch: ... というところで「RELENG_4」を選択し、「View Branch」ボタンを押します。 これが、4.0-RELEASE がリリースされてから、4-STABLE で /etc/rc に 加えられた全ての変更です。 cvsweb のブランチ表示はお世辞にもわかりやすいとは言えませんので、 分岐の仕方がよくわからなくなったら からたどれる の画像を見ましょう。この画像は cvsgraph というツールを利用して作成されて います (devel/cvsgraph として ports/packages が用意されています)。 CVSについては [管理番号 649] を参照してください。 --- [管理番号 800] (最終更新 2000/03/04 08:15:40) Q. あるポート (port) 番号を使っているプログラムがどれなのかを 調べる方法はありますか? A. 以下に示す方法が考えられます。 A1. FreeBSD 3.1-RELEASE 以降なら sockstat(1) で調べられます。 なお、このコマンドは perl スクリプトで、やっている事は ほとんど A2. の説明そのものです。 A2. netstat -A コマンドと fstat コマンドを組み合わせれば調べられます。 netstat -an で使用中のポート番号の一覧が表示されます。さらに -A を 指定すると、プロトコル制御ブロック (pcb) のアドレスも表示されます。 どのプログラムが どの socket を使っているかは fstat コマンドで 調べられますので、この pcb を対応付ければわかります。 例えば、調べたいポート番号を1234番とすると % netstat -anA | fgrep '*.1234' の結果の第一フィールドを f074a000 とすれば % fstat | grep f074a000 でわかります。 A3. port/package を使って sysutils/lsof をインストールしてあれば、 su で root 権限を得て、 % lsof -i :1234 とすることで、ポート番号 1234番を使用しているコマンドを 調べることができます。 --- [管理番号 801] (最終更新 2000/03/04 08:15:47) Q. network を利用するサーバプログラムを起動しようとしたら Unable to bind address Can't bind socket と言われてサーバプログラムが起動しません。 A. root 以外の権限で port番号 1024 未満を利用するサーバプログラムを起動し ようとしているか、何か別のプログラムがこのサーバプログラムが使う port 番号を先に使ってしまっているようです。 1024 未満の port 番号は特権 port と呼ばれ、root 以外の権限で起動された プログラムは、この特権portで接続を待ち受けることができない決まりになっ ています。 network を通じて通信するプログラムは 相手のマシンを識別する IPアドレス と相手のマシンの各プログラムを識別する port番号を指定して通信を行います。 IPアドレスが電話番号、port番号は内線番号と思ってください。 どのサーバプログラムが何番の port番号を利用するのかはだいたい決まって います。/etc/services に port番号の対応表があります。 どのプログラムがどの port番号を使っているかの調べ方は [管理番号 800] を参照してください。 サーバプログラムによっては、どちらの理由で bind に失敗したのか、ヒント になるメッセージを出力する場合があります。 Permission denied というメッセージは、root権限を持たないプログラムが特権port を使おうと したことを意味します。 Address already in use というメッセージは、別のプログラムが先にこのサーバプログラムが使おうと している port番号を使ってしまっていることを意味します。 --- [管理番号 802] (最終更新 1999/02/17 23:58:45) Q. FreeBSDをアンインストールしたのですがブート・マネージャ (booteasy など) がアンインストールされません。 A. MS-DOSのコマンドプロンプトで > fdisk /mbr と実行すると、MBR (Master Boot Record) が Microsoft 標準のものに置き換 えられます。 --- [管理番号 803] (最終更新 1999/02/17 23:58:45) Q. FreeBSD と他の OS とが同じハードディスク上に混在しています。FreeBSD よりも前のスライスにインストールされている他の OS がいらなくなったので、 この領域を潰して FreeBSD から使いたいと思います。何か注意することはあ りませんか? A. まず始めに、バックアップを取って下さい :-) FreeBSD が起動する時に、同じハードディスク上に複数の FreeBSD スライス が存在する場合、FreeBSD は最も若いスライス番号を持つスライスにインストー ルされている (と仮定して) FreeBSD を起動しようとします。そしてその a パーティションにある (と仮定して) /kernel (か boot string でユーザが指 定したカーネル) から起動しようとします。 補足: FreeBSD スライスとは、スライス ID が 165 であるスライス そのため、今まで使っていた FreeBSD よりも若いスライス番号を持つスライ スを FreeBSD スライスに設定すると、以後その若い側にあるスライスから FreeBSD が起動してしまうため、これまで使っていたスライスにある FreeBSD からは起動できなくなってしまいます。 実は、このスライス ID と呼ばれるものは、FreeBSD が起動する時にどのスラ イスに FreeBSD がインストールされているか、どのスライスから FreeBSD が 起動すればいいかを決めるためだけに使われているので、新しく使いたい、若 いスライスのスライス ID を 165 以外に設定して newfs を行なうと、実はそ のスライスを通常の FreeBSD のファイルシステムとして mount できて、使え てしまいます。 実際に使用する上では、/etc/fstab を変更して、この mount を起動時に自動 的に行なわれるようにしたいと考えるかもしれません。 もう一つ注意する点があります。FreeBSD よりも若いスライス番号のスライス 数が増減した場合、FreeBSD のスライス番号がずれることになるので、 /etc/fstab 中の /, /usr, /var などのマウントポイントに対するブロックデ バイス名が変更されることになる点についても、要注意です。 サンプル (一台目の IDE の場合) Slice 1 他の OS 2 未使用 <- このスライスの ID を 165 以外に設定する 3 FreeBSD # newfs /dev/rwd0s2c /dev/rwd0s2c: 1733760 sectors in 424 cylinders of 1 tracks, 4096 sectors 846.6MB in 27 cyl groups (16 c/g, 32.00MB/g, 7680 i/g) super-block backups (for fsck -b #) at: 32, 65568, 131104, 196640, 262176, 327712, 393248, 458784, 524320, 589856, 655392, 720928, 786464, 852000, 917536, 983072, 1048608, 1114144, 1179680, 1245216, 1310752, 1376288, 1441824, 1507360, 1572896, 1638432, 1703968, # mount -t ufs /dev/wd0s2 /mnt --- [管理番号 804] (最終更新 1999/02/17 23:58:45) Q. FreeBSD のインストールの際に fips.exe を使って既存の Windows パーティ ションのサイズを縮めようとしたところ、fips.exe が Error: Unknown Filesystem: 0Bh というエラーになってサイズ変更ができませんでした。 A. サイズを変更しようとした Windows パーティションが FAT32 フォーマッ トだからです。FreeBSD の配布物に含まれる fips.exe は FAT32 には対応し ていません。 から FAT32 に対応した fips.exe version 2.0 を入手してこちらを使いましょう。 またソフトボートの市販ソフト System Commander 4 を使っても FAT32 フォー マットのパーティションのサイズ変更を行なえるようです。 --- [管理番号 805] (最終更新 2001/11/17 19:15:36) Q. FreeBSD(98) をインストールしましたが、立ち上げると `Can't find kernel' と表示されて動きません。 A. リリースに含まれる 98readme/Install98.txt の「4.7. 配布ファイルの選択」 に説明があります。現在公開されている最新版については、次の URL で参照す ることができます。 --- [管理番号 806] (最終更新 2002/04/11 03:59:26) Q. 自宅メールサーバを経由してメールを出そうとしたところ、 Mail from x.y.z.u refused, see http://dorkslayers.com/orbs/ Mail from x.y.z.u refused, see http://maps.vix.com/rbl/ などというエラーメールが返ってきました。x.y.z.u は自宅メールサーバの IP アドレスです。なにがいけないのでしょう? A. MAPS RBL とか ORBS というのは、spam (無差別広告メールなど、いわゆる 迷惑メール) の中継対策がなされていないメールサーバを集めたデータ ベースです。 あなたのメールサーバは spam の中継に利用されて、このデータベースに 登録されてしまった可能性があります。 多分、あなたがメールを出した宛先のメールサーバは、spam を受け取らない ために、MAPS RBL や ORBS に登録されているメールサーバからのメールを 受け取らない設定になっているのでしょう。 などを参照して、自分のメールサーバの設定を直してから、MAPS RBL と ORBS の 登録を外してもらってください。自分のメールサーバの設定を直さずに登録を外そう としても、すぐ再登録されてしまいますのでご注意を。 --- [管理番号 807] (最終更新 1999/02/17 23:58:45) Q. Windows や Macintosh などのメイラで、FreeBSD のマシンに spool され ているメイルを取得したいのですがどうすればいいですか? A. FreeBSD マシンに POP サーバをインストールしてください。 Qualcomm 社から提供されているフリーの POP3 サーバ、qpopper をインストー ルしてください。ports でのインストールだったら /usr/ports/mail/popper、 packages でのインストールだったら qpopper-2.xx というのを探してくださ い。 inetd.conf の書き換えと再起動 (または inetd に SIGHUP を送る) が必要で す。 注意!: qpopper にはセキュリティホールが発見されています。必ず最新版 (少なくとも 2.52 以降) にバージョンアップしてください。 --- [管理番号 808] (最終更新 1999/02/17 23:58:45) Q. 「POP プロトコルは危ない」と言われたのですが。 A. 「危ない」の意味にはいくつかあります。それぞれある程度対策は可能で す。 1. デフォルトの認証方式、USER/PASS 認証を使うと、ネットワーク上を POP パスワードが暗号化されずにそのまま流れる。 APOP などの他の認証方式を使ってください。 2. FreeBSD で一般的な POP サーバ、qpopper の古いバージョンには root 権 限を盗まれるセキュリティホールがある。 最新版 (少なくとも 2.52 以降) にバージョンアップしてください。 3. POP プロトコルでは mail 本文が暗号化されずに流れる。 sendmail や qmail が使うプロトコル、SMTP でも暗号化はしていないので、 あまり気にしてもしょうがないかもしれません。どうしても暗号化したければ ssh などとの組み合わせ技も可能ですが、一般的でないので説明は省きます。 --- [管理番号 810] (最終更新 1999/02/17 23:58:45) Q. 「POP プロトコルの USER/PASS 認証は危ないから使ってはいけない」と言 われたのですが。 A. POP プロトコルにはいくつかの認証方式がありますが、最も一般的な認証 方式 (USER/PASS) を使うと、ネットワーク上を POP パスワードが暗号化され ずにそのまま流れます。このため、POP パスワードを盗聴者に横取りされる可 能性があります。通常 POP パスワードと unix のログインパスワードは同じ ものが使われるので、非常に危険です。 可能な限り APOP による認証を使ってください。ただし、このためには、 1. サーバが APOP での認証に対応していること (FreeBSD で一般的な qpopper なら問題なし) 2. クライアントが APOP での認証に対応していること (例えば、Windows のメイラ Becky! は大丈夫です) 3. APOP を利用するユーザが、APOP のためのパスワード設定を正しく 済ませていること が必要です。 --- [管理番号 811] (最終更新 1999/02/17 23:58:45) Q. qpopper で APOP の設定をするにはどうしたらいいですか? A. ports/packages でインストールした場合、/usr/local/bin/popauth とい うコマンドが準備されています。 root になって # popauth -init を実行し、データベースを初期化します。これはインストール時に一度だけ実 行し、以後は実行してはいけません。実行すると各ユーザが設定した APOP の パスワードが消えます。 その後、各ユーザで % popauth を実行し、APOP のためのパスワードを登録してください。 qpopper は、「一度 popauth を実行したユーザは、APOP しか使わない」と仮 定しています。このため、一度 popauth を実行したユーザは、以降 USER/PASS による認証は使えません。つまり、APOP に対応していないメイラ を使うことができなくなります。 --- [管理番号 812] (最終更新 1999/02/17 23:58:45) Q. qpopper で USER/PASS 認証を禁止するにはどうしたらいいですか? A. qpopper のコンパイル時に APOP_ONLY を定義すると、APOP 以外の認証方 式を使えなくなります。/usr/ports/mail/popper から ports でインストール する場合、Makefile を眺めると説明が書いてあります。 --- [管理番号 814] (最終更新 1999/02/17 23:58:45) Q. 上位ネットワーク管理者より ネットワークを割り当ててもらったところ netmaskの長さが 8bit単位でありません。 この様なネットワークで DNS の逆引きさせるには どうすればいいですか? A. netmaskの長さが 8bit単位でないネットワークでの逆引きを解決する方法 はいくつかあります。どの様に解決するかは、そのネットワーク管理者の 方針によって変わりますので、そのネットワークを割り当てた上位の管理 者に相談してください。 なお、上位の管理者に相談する前に オライリー・ジャパンから発行されて いる 「BIND & DNS改訂版」の 9章 9.5 in-addr.arpa ドメインのサブドメ イン の部分を予習しておくと いいでしょう。 参考書: 書名 DNS&BIND 改訂版 発行元 オライリー・ジャパン 発売元 オーム社 ISBN: ISBN4-900900-42-7 C3055 定価: 4,800円(税別) --- [管理番号 815] (最終更新 1999/02/17 23:58:45) Q. POP プロトコルと POP3 プロトコルって違うんですか? A. 「POP プロトコル」とは、Post Office Protocol の略です。 Post Office Protocol にはいくつかバージョンがあって、現在はRFC1939 で バージョン 3 が定められています。「POP プロトコル」と言った場合、バー ジョンを指定していないだけで、大抵同じもののことを指していると思います。 Post Office Protocol バージョン 3 (POP3) については RFC1939 を参照して ください。 --- [管理番号 816] (最終更新 1999/02/17 23:58:45) Q. ハードディスクの増設が [管理番号 671] のとおりにできません。ディス クラベルを「W」で書き込みしたときに「マウントエラー /dev/sd0s1e デバイ ス, /mnt マウントポイント: Device not configured」とエラーが出ます。 A. 原因は disklabel が正しく書き込まれていないためです。手動で行ってく ださい。 以下の例では、作業対象に "sd0" ドライブを用います。 1) /dev/sd0s1 と /dev/sd0s1[a-h] が存在するかどうか確認してください。 なければ次のようにして作っておきましょう。 # cd /dev # ./MAKEDEV sd0s1a 2) disklabel を書き込みます。 # disklabel -r -w sd0 auto 3) 書き込んだ disklabel を編集して a partition の entry を作ります。 # disklabel -r -e sd0 最下行に c partition の情報があるはずなので、それをもう一行 copy して partition 名を c から a に fstype を unused から 4.2BSD に fsize を 0 から 1024 に bsize を 0 から 8192 に bps/cpg を空欄から 16 に それぞれ書き換え、保存して終了します。 例: --- [管理番号 817] (最終更新 1999/02/17 23:58:45) Q. msdosfs としてマウントしてある FAT, VFAT, FAT32 パーティションのマ ウント状態をアンマウントせずに変更する (ex: mount -u -r /msdos) と、 `panic: msdosfs_sync: rofs mod' または `panic: vflush: not busy' と言っ て reboot してしまいます。 A. その FreeBSD が FreeBSD 2.2.7-RELEASE または FreeBSD(98) 2.2.7R-Rev01 であれば msdosfs の不具合です。 以下のパッチをあてて、カーネルを再構築してください。 ---------------- BEGIN ---------------- Index: msdosfs_denode.c =================================================================== RCS file: /usr/tmp/cvsup/cvs/PAO/sys/msdosfs/msdosfs_denode.c,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 msdosfs_denode.c --- msdosfs_denode.c 1998/07/24 10:22:22 1.1.1.2 +++ msdosfs_denode.c 1998/10/17 06:07:00 @@ -55,7 +55,10 @@ #include #include #include + +#ifndef __FreeBSD_version #include /* defines "time" */ +#endif #include #include Index: msdosfs_lookup.c =================================================================== RCS file: /usr/tmp/cvsup/cvs/PAO/sys/msdosfs/msdosfs_lookup.c,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 msdosfs_lookup.c --- msdosfs_lookup.c 1998/07/24 10:22:25 1.1.1.2 +++ msdosfs_lookup.c 1998/10/17 05:25:25 @@ -942,9 +942,7 @@ int error; daddr_t bn; int blsize; - u_long boff; - boff = diroffset & ~pmp->pm_crbomask; blsize = pmp->pm_bpcluster; if (dirclust == MSDOSFSROOT && de_blk(pmp, diroffset + blsize) > pmp->pm_rootdirsize) Index: msdosfs_vfsops.c =================================================================== RCS file: /usr/tmp/cvsup/cvs/PAO/sys/msdosfs/msdosfs_vfsops.c,v retrieving revision 1.1.1.3 diff -u -r1.1.1.3 msdosfs_vfsops.c --- msdosfs_vfsops.c 1998/07/24 10:22:29 1.1.1.3 +++ msdosfs_vfsops.c 1998/10/17 05:44:47 @@ -259,7 +259,14 @@ flags = WRITECLOSE; if (mp->mnt_flag & MNT_FORCE) flags |= FORCECLOSE; +#ifndef __FreeBSD_version + if (vfs_busy(mp)) + return EBUSY; +#endif error = vflush(mp, NULLVP, flags); +#ifndef __FreeBSD_version + vfs_unbusy(mp); +#endif } if (!error && (mp->mnt_flag & MNT_RELOAD)) /* not yet implemented */ @@ -269,7 +276,7 @@ #ifdef __FreeBSD_version if ((pmp->pm_flags & MSDOSFSMNT_RONLY) && (mp->mnt_kern_flag & MNTK_WANTRDWR)) { #else - if ((pmp->pm_flags & MSDOSFSMNT_RONLY) && (mp->mnt_flag & MNT_RDONLY) == 0) { + if ((pmp->pm_flags & MSDOSFSMNT_RONLY) && (mp->mnt_flag & MNT_WANTRDWR)) { #endif /* * If upgrade to read-write by non-root, then verify @@ -1134,4 +1141,8 @@ msdosfs_init }; +#ifdef __FreeBSD_version +VFS_SET(msdosfs_vfsops, msdos, 0); +#else VFS_SET(msdosfs_vfsops, msdos, MOUNT_MSDOS, 0); +#endif Index: msdosfs_vnops.c =================================================================== RCS file: /usr/tmp/cvsup/cvs/PAO/sys/msdosfs/msdosfs_vnops.c,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 msdosfs_vnops.c --- msdosfs_vnops.c 1998/07/24 10:22:31 1.1.1.2 +++ msdosfs_vnops.c 1998/10/17 05:50:11 @@ -1521,7 +1523,9 @@ #endif goto bad; } - if (ip->de_dirclust != MSDOSFSROOT) + if (ip->de_dirclust == MSDOSFSROOT) + ip->de_diroffset = to_diroffset; + else ip->de_diroffset = to_diroffset & pmp->pm_crbomask; } reinsert(ip); @@ -2150,6 +2154,9 @@ static int msdosfs_strategy(ap) struct vop_strategy_args /* { +#ifdef __FreeBSD_version + struct vnode *a_vp; +#endif struct buf *a_bp; } */ *ap; { @@ -2187,7 +2194,11 @@ */ vp = dep->de_devvp; bp->b_dev = vp->v_rdev; +#ifdef __FreeBSD_version + VOP_STRATEGY(vp, bp); +#else VOCALL(vp->v_op, VOFFSET(vop_strategy), ap); +#endif return (0); } @@ -2200,7 +2211,7 @@ struct denode *dep = VTODE(ap->a_vp); printf( - "tag VT_MSDOSFS, startcluster %d, dircluster %ld, diroffset %ld ", + "tag VT_MSDOSFS, startcluster %lu, dircluster %lu, diroffset %lu ", dep->de_StartCluster, dep->de_dirclust, dep->de_diroffset); printf(" dev %d, %d", major(dep->de_dev), minor(dep->de_dev)); #ifdef __FreeBSD_version ---------------- END ---------------- --- [管理番号 818] (最終更新 1999/02/17 23:58:45) Q. Linux で使用していたハードディスクがあるのですが,このハードディス クの内容を FreeBSD で読み出すことはできますか? A. はい,できます. ただし,Linux と FreeBSD ではファイルシステムが違うので,カーネルを 再構築する必要があります. 手順: 1. カーネルコンフィグレーションファイルに次の行を追加する. (GENERIC カーネルには,このオプションは含まれていません) options "EXT2FS" 2. 通常通りにカーネルを再構築して入れ替える. 3. コンピュータを再起動する. これで準備完了です. Linux で使用していたハードディスクが /dev/wd2s1 , FreeBSD でのマウント先を /mnt とすると, mount -t ext2fs /dev/wd2s1 /mnt あるいは mount_ext2fs /dev/wd2s1 /mnt とすればマウントできます. --- [管理番号 820] (最終更新 1999/02/17 23:58:45) Q. xterm や kterm 上で、文字をカラー表示するアプリケーションを実行 したのですが、カラー表示されません。カラー表示させるためには、 どうしたらよいのでしょうか? A. カラー表示の方法は、アプリケーションによって異なります。ここでは その一部を紹介します。 例 1. slang library を用いた mutt では、環境変数 COLORTERM を % setenv COLORTERM というように設定することで、kterm 上でのカラー表示が可能に なります。 例 2. 例 1. と同じく、slang library を用いた slrn では、 % slrn -C として実行することにより、カラー表示されます。 例 3. gnuls では、 % gnuls --color と実行することによりカラー表示されます。 (注) xterm の場合は、上記の方法の他に、 % setenv TERM xterm-color などとする必要があるかもしれません。 xterm や kterm 上でカラー表示するアプリケーションは、terminal 上の カラー表示を行なう為のエスケープシーケンスを取得し、カラー表示を 行います。この時、何をカラー表示のトリガにするかが問題です。それは、 上記の例のように。環境変数やコマンドラインオプションだったりします。 --- [管理番号 821] (最終更新 1999/02/17 23:58:45) Q. NEC PC-9801/PC-9821 シリーズを使っていますが,MS-DOS(Windows95)で パーティションをいじるときに注意することはありますか? A. Windows95 付属の fdisk.exe を使って,MS-DOS(Windows95) のパーティ ションの状態変更をすると,FreeBSD をインストールしたパーティション (スライス)の情報が完全に破壊されるようです. こうなると FreeBSD を再インストールするしか復旧の方法がなくなるの で,MS-DOS に附属の format.exe か,FreeBSD に附属の fdisk を使って 作業を行なった方がよいでしょう. なお,PC-AT 互換機版の Windows95 に附属する fdisk.exe には,状態変 更というオプションがないので,このような問題はありません. --- [管理番号 822] (最終更新 2002/08/24 06:22:40) Q. 多連装 CD-ROM ドライブなのに一つのドライブしか認識してくれません。 A. その CD-ROM ドライブは SCSI タイプですか? そうでないなら (ATAPI なら)、 まず [管理番号 583] を参照してください。 1. CD-ROM ドライブが SCSI タイプの場合、SCSI カードが多連装 CD-ROM ドライブ を認識しているか確認してください。例えば 5連装なら、マシンのブート時 (FreeBSD のブート時ではありません) に SCSI カードの BIOS が ID-LUN: 4-0 : ... 型番 ... : ID-LUN: 4-4 : ... 型番 ... などと表示するはずです。 デフォルトでは LUN0 しか認識しない SCSI カードの場合は、BIOS の設定を 変更してください。例えば Tekram DC-390 は、DC-390 の BIOS セットアップで、 Set Adapter Options -> Scan All LUN For Devices を Enableに変更 とする必要があります。 2. 次に FreeBSD のブート時に (amd0:4:0): ... cd0(amd0:4:0): ... : (amd0:4:4): ... cd4(amd0:4:4): ... などと、複数の LUN が認識されているかどうか確認してください。 3. 最後にデバイスを作成します。 # cd /dev # ./MAKEDEV cd0 : # ./MAKEDEV cd4 ついでにマウントポイントも作成しておきましょう。 # mkdir /cdrom{0,1,2,3,4} これで # mount_cd9660 /dev/cd0a /cdrom0 でマウントすることができますが、/etc/fstabに /dev/cd0c /cdrom0 cd9660 ro,noauto 0 0 : /dev/cd4c /cdrom4 cd9660 ro,noauto 0 0 を追加しておけば、さらに簡単に # mount /cdrom0 で OK です。 --- [管理番号 823] (最終更新 1999/02/24 04:15:18) Q. rumba というソフトがあると聞いたのですが。 A. Sharity-Light という名前に変わりました。 Sharity-Light については 管理番号 824] を参照。 --- [管理番号 824] (最終更新 2001/10/14 11:51:14) Q. ネットワーク上にある Windows マシンのディスクをマウントしたい。 A. Sharity と Sharity-Light というのがあります。 Sharity は commercial product、Sharity-Light は free product です。 を参照してください。 Sharity-Light は ports に入っています。 --- [管理番号 826] (最終更新 1999/02/17 23:58:45) Q. Subject: メーリングリスト退会と "Subject 欄" に半角カナ文字が MIME encode されていました。これは、す べきでないにしても、べつにいけない事ではないのでしょうか? 要は、MIME encode されていたら、半角カナは使えるのかということです。 A. 「半角カナ文字」が使用できるか否かは、使用する文字コードに「半角カ ナ文字」が含まれるか否かによります。MIME encode されているか否かに よるのではありません。 上記の Subject: 例は * ISO-2022-JP という種類の文字コードを (=?iso-2022-jp) * MIME の B encode という手法を用いて (?B) 表現している事を示しています。ところが、ISO-2022-JP 文字コードには 「半角カナ文字」 (JIS X 0201 カタカナ文字) は含まれていません。よっ て、上記 Subject: 例は自己矛盾を起こしてしまいます。 日本語を表現するための文字コードには、ISO-2022-JP の他に Shift_JIS (シフト JIS) や EUC-JP (日本語 EUC) などがあります。Shift_JIS や EUC-JP には「半角カナ文字」が含まれています。よって、これらの文字コー ドを用いて MIME encode すれば、「規格上は正しい」「半角カナ文字を含 んだ」Subject: を実現できます。 しかしながら、多くの電子メールソフトは Shift_JIS や EUC-JP を用いた MIME encode には対応していません。この場合、たいていは MIME encode された文字列がそのまま表示されることになります。Shift_JIS や EUC-JP を用いると、結局は相手に自分の意図する言葉を伝える事ができずに終る 可能性が大きいのです。 受け取り人全員の電子メールソフトが Shift_JIS や EUC-JP の MIME encode に対応している事が明らかなら、それを使うのもよいでしょう。し かし、それが確認できない場合は、使わないでください。特に、メーリング リストなど公共の場においては、決して使用してはいけません。 結論としては、「半角カナ文字」は諦めて * 「全角カナ文字」(JIS X 0208 カタカナ文字) を * ISO-2022-JP 文字コードで 用いる事を強く勧めます。 --- [管理番号 827] (最終更新 2003/05/17 21:39:26) Q. リモートから telnet 接続できないようにするにはどうすればいいんでしょ うか。 A. いくつかの方法が考えられます。 ・/etc/inetd.conf の telnet stream tcp nowait root /usr/libexec/telnetd telnetd という行の先頭に「#」をつけてコメント行にしてしまう。 (kill -HUP `cat /var/run/inetd.pid` を忘れずに)。 この方法だと、localhost からの telnet 接続もできなくなる。 なお FreeBSD 4.4-RELEASE 以降から、telnetd を含めた inetd 経由で 起動されるデーモンは、全て標準で無効になりました。 ・tcp_wrapper(tcp_wrappers) を使って、一部のホストからのみ telnet 接続できるようにする。なお、ルータや xinetd で設定することもでき る。 ・該当アカウントのパスワードファイルのシェルを変更しておく。 ユーザ単位での管理で、telnet 接続させたくないユーザのログインシェ ルに、たとえば /sbin/nologin などを指定して、これを /etc/shells に登録しておく。 なお、 ・telnet のポート番号を変えてしまう。 デフォルトの telnet ポートは23番だが(/etc/services を参照)、これ を別の空いているポートに変えておく。この方法だと、telnet のポート 番号を知っている自分だけが telnet できる。 というのは、ポートスキャンされれば一発でばれます。やめておきましょう。 --- [管理番号 828] (最終更新 1999/07/24 15:31:37) Q. Windows95/98 を含む LAN で時刻を同期させたいのですが、どうしたら よいのでしょうか? A. 以下の方法があります。 A1. PC-UNIX機で xntpd を動かし、Windows95 マシンで桜時計などの NTPクライアントを動かす。 桜時計はフリーソフトで、 から入手できます。 xntpd で上位サーバ無しで相互の同期を取る場合、一工夫いるようです。 [FreeBSD-users-jp 18626] xntpd の設定 のスレッドを参考にしてください。 A2. PC-UNIX機で timed を動かし、Samba をいれて Windows 付属の NET TIMEコマンドで同期させる。 Samba で export されたディレクトリを Windows 側にマウントさせるための コマンドとまとめてバッチファイルにしてスタートアップにいれておけば 起動する毎に時間を同期させられます。 Samba については [管理番号 178]、[管理番号 308] を参考にしてください。 A3. PC-UNIX機で timed を動かし、Windows95マシンに Network Time for Windows をインストールして、スタートアップにいれておく。 この方法だと、Windowsマシンを起動する毎に時間を同期させられます。 Network Time for Windowsは フリーソフトで、 から入手できます。 --- [管理番号 829] (最終更新 1999/02/17 23:58:45) Q. ルータを作りました。ブロードキャストは転送してくれないのですか? A. 自分の属しているネットワーク宛のは、してくれません。 Limited broadcast が転送されないのは、そう有るべきなので良 いのですが、Directed broadcast が転送されないのは現在の実装 の制限で、改善されるべきでしょう。 FreeBSD-2.1 系の頃はカーネルオプションの options DIRECTED_BROADCAST を指定する事で動作を選べたようです。 (稼働は 2.1.7.1R のみ確認 [FreeBSD-users-jp 28263]) FreeBSD-2.2 系では、このオプションとそれに関わるコードは削 除されているようです。 NetBSD、OpenBSD のソースを見ると、それらでは改善されていて、 sysctl(8) で動作を選べるようです。 (動作は未確認) なお、 Limited broadcastの意味については [管理番号 699] Directed broadcastの意味については [管理番号 700] を参照してください。 --- [管理番号 830] (最終更新 1999/02/17 23:58:45) Q. ISA/C-BUS の NIC が使用できません。dmesgでは正常に認識されているように 見えるのですが…。 A. 一度、カーネルの IRQ の設定と、ボードの IRQ の設定が一致しているかどうか チェックしてみてください。 C-Bus や ISA は、ボードがどの IRQ を使用しているかというのを調べる機能を バス自体がもっていません。そのため、ボード自体が特別な機能を用意していない 場合は、カーネルの IRQ 番号の設定が間違っていても検出する方法がなく、一見 正常に認識できたように見えてしまいます。 なお、[管理番号 81] も参照してください。 --- [管理番号 831] (最終更新 2001/10/25 21:20:55) Q. xdm を使って login したいのですが、どのように設定すれば良いでしょうか? A. /etc/ttys で以下のように設定します。 # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure ^^^ この ttyv3 の行の "off" を ttyv3 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure ^^^ としてから reboot するか、`kill -HUP 1' して変更を反映させます。また 最近のバージョンの FreeBSD では、仮想端末が増やされた関係で ttyv3 から ttyv8 に変更されています。 参考: /usr/X11R6/lib/X11/doc/README.FreeBSD --- [管理番号 832] (最終更新 2003/10/16 23:20:28) Q. WinModem ってどんなモデムですか? A. モデムの機能の一部を OS (Windows) に分担させるモデムです。ほとんどの 場合、メーカーからは Windows 用のデバイスドライバしか提供されないの で、それ以外の OS からこの種のモデムを利用することは難しいです。 しかし一部の機種については、Linux 用のデバイスドライバも提供される ようになりつつあります。 また有志の努力によって、これらのドライバを FreeBSD で使えるようにし たものがあり、今のところ2つのドライバが ports になっています。 Driver for the Lucent LT Winmodem chipset (ports/comms/ltmdm) Lucent (現 Agere) の Mars チップ用のドライバです。 Loadable module and user excutable to support IBM Mwave ACP modem (ports/comms/mwavem) IBM ThinkPad 600/700 シリーズに内蔵の Mwave チップ用のドライバです。 また PCI-Bus に挿すモデム(シリアル)ボードの中には、NetBSD 由来の puc(4) ドライバで動作するものもあるようです (NEC PK-UG-X001 等)。 Linux 向けですが、以下のページが参考になるかも知れません。 Linモデム(linmodem)ドライバで Winモデム(winmodem)を動かそう なおPC内蔵タイプのモデムを、FreeBSDで使うつもりで購入するのなら、モ デムチップに何が使われているかが選択のポイントになります。よく下調 べをしてから購入することをお勧めします。たとえば REX-PCI56 は、箱に Linux Ready! と書いてあるので「たぶん FreeBSD でも使えるだ ろう」と思ってしまうかもしれませんが、実は PCTel 製チップを使った WinModem です (箱のどこにも WinModem とは書いてありません)。メーカー が Linux 用ドライバを提供しているのですが、現状、FreeBSD では使えま せん。 --- [管理番号 833] (最終更新 1999/02/17 23:58:45) Q. pthread(3) を用いて Multi thread な X プログラムを作ったのですが、 実行してみると、 XIO: fatal IO error 0 (Undefined error: 0) on X server ":0.0" after 13 requests (13 known processed) with 0 events remaining. とエラーを出して終了してしまいます。 A. FreeBSD に付属の XFree86 はライブラリが Thread Safe になっていないので、 Thread Safeなライブラリを作り直す必要があります。 まず、XFree86のソースを展開し、xc/config/cf ディレクトリの中に 次のような内容の host.def というファイルを作ります。 --- host.def #define HasPosixThreads YES #define ThreadedX YES #define HasThreadSafeAPI YES #define ThreadsLibraries -lc_r #define SystemMTDefines -D_THREAD_SAFE -D_REENTRANT --- end of host.def この後 xc ディレクトリに戻り、make World して下さい。 make が終わったら make install するか、xc/lib 以下にできたライブラリ一式を /usr/X11R6/lib にコピーして下さい。 Xのライブラリが Thread Safe かどうかは、 関数 XInitThreads() の戻り値を 調べることで分かります。詳しくは man XInitThreads を参照して下さい。 2.2.6-RELEASE 以前では上記の方法でライブラリを入れ替えると libc に関数 __errno が用意されていないために、pthread を使わない(正確には libc_r を リンクしていない)X プログラムが動かなくなってしまうという問題が発生します。 2.2.7-RELEASE 以降を使って下さい。 また、Xのライブラリに限らず、Multi thread なプログラムは _THREAD_SAFE を define しておく必要があります。こちらについても、詳しくは errno(2) を 参照して下さい。 --- [管理番号 834] (最終更新 1999/02/17 23:58:45) Q. Panasonic Let's note mini (CF-M32) および Let's note (CF-S21)で Fn キーが効きません。 A. kon や X を立ち上げると、その中では効くようになります。 使えないのはコンソール上だけですので、気にしなくても 実用上あまり問題はないでしょう。 また、コンソール上でも、/sys/i386/isa/syscons.c に下の パッチを当てると効くようになることがわかりました。 これは 2.2.7-RELEASE 用のパッチですが、おそらく他のバージョン でも使えると思います(2.2.5-RELEASE ではうまくいきました)。 なお、これについては CF-M32 で動作確認しましたが、おそらくCF-S21でも 同じように効くようになると思います。 ---------------------------------------------------------------------- --- syscons.c.dist Tue Oct 6 08:50:27 1998 +++ syscons.c Tue Oct 6 08:51:13 1998 @@ -2337,7 +2337,7 @@ && (mono_time.tv_sec > scrn_time_stamp + scrn_blank_time)) (*current_saver)(TRUE); - timeout(scrn_timer, NULL, hz / 25); + timeout(scrn_timer, NULL, hz / 10); splx(s); } ---------------------------------------------------------------------- なお、このパッチを当てた場合、 1. 画面更新の頻度が落ちる(気がつく程度かどうかわかりませんが)。 2. カーソルを blink や destructive にしている場合,点滅の間隔が長くなる (これは多分気がつく)。 3. belltype を visual にしていた場合,ビープ音の代わりに画面がフラッシュ する間隔が長くなる(これも多分気がつく)。 ことになると思います。そのあたりを気にしない限り弊害はないと思いますが、 自己責任でお願いします。 --- [管理番号 835] (最終更新 2001/08/12 02:51:18) Q. FreeBSD 上でパソコン通信のホストを運営したいと思いますがどんな プログラムがありますか? A. 現在わかっているのは STBBS と ANNBBS の二つです。 STBBS (日本語) ANNBBS から入手可能です。おためしください。 --- [管理番号 836] (最終更新 1999/04/07 06:27:02) Q. tcsh をログインシェルにしていますが、.cshrc の実行が途中で打ち切られ てしまいます。 A. FreeBSD の catclose(3)に不具合があるのではないかと考えられています。 古い ports/shells/tcsh のパッチ(patch-ag)が当てられている場合に この問題が起きます。 ports/japanese/tcsh では対策としてパッチが強化されています。また、 ports-{stable,current}/shells/tcsh ではこのパッチはなくなっています。 以下のいずれかの方法で問題を回避できます。 1. packages/japanese/ja-tcsh-6.*.*.tgz をインストールする。 2. packages-stable/shells/tcsh-6.*.*.tgz をインストールする。 (古いpackagesではだめ) 3. ports/japanese/tcsh か、ports-stable/shells/tcsh を使って make する。 4 古い ports/shells/tcsh を使う場合は、patch-agを適用せずに、あるいは #undef NLS_CATALOGS して make する。 なお、japanese の方をインストールした場合は、設定について /usr/local/share/doc/tcsh/* を参照してください。 --- [管理番号 837] (最終更新 2002/01/27 00:09:33) Q. ブート時にかかる時間が長いです。待ちきれません。 A. そんなせっかちなあなたは、カーネルコンフィギュレーションをいじるとよ いでしょう。 A1. 不要なデバイスの記述をコメントアウトする。 認識されることのないデバイスを毎回調べにいく必要はありません。 最初からコメントアウトしておけば、その分 起動時間が短くなります。 ブート時に xxx not found at .... などと表示されるデバイスをコメントアウトしてください。dmesgの 出力を見ながら作業するといいでしょう。 A2. 不要な device を外すだけならカーネルを再構築せずとも UserConfig で disable することができます。カーネルコンフィギュレーションに options USERCONFIG が含まれているなら (GENERIC カーネルには含まれています)、起動時に 出る boot: という prompt で boot: -c と入力した後、不要な device を disable します。 command line からは config> disable とします。ls でデバイス一覧が、help で簡単な説明がでます。 カーネルコンフィギュレーションに options VISUAL_USERCONFIG が入っているなら (こちらも GENERIC カーネルに含まれています) 、 config> visual と入力すればインストール時と同様の設定画面になります。 以後はこの設定が使われますので、起動するたびに設定する必要はありません。 A3. SCSI デバイス認識の待ち時間を短く設定する。 デフォルトでは options SCSI_DELAY=15 とSCSIデバイス認識のために15秒待ちます。古いものなら15秒待たないと ダメかもしれませんが、最近のSCSI機器はそんなに待たなくても認識されます。 options SCSI_DELAY=5 などとするといいでしょう。 参考: handbook 3. 繋がっていないIDEのデバイスをコメントアウトする。 例えば、IDEのプライマリ・マスタしか使っていなかったら、 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 #disk wd1 at wdc0 drive 1 #controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr #disk wd2 at wdc1 drive 0 #disk wd3 at wdc1 drive 1 と、不要なデバイスをコメントアウトしてください。IDE を全く使って いないなら、上記のデバイスを全てコメントアウトするといいでしょう。 参考: handbook なお、カーネルの再構築については、 handbook を参考にしてください。 FreeBSD2.2.7+Celeron266 に、FDD、SCSIカード、CD-ROM(SCSI)、HDD(SCSI)、 MO(SCSI)、56k モデム、ネットワークカードを付けたマシンで (IDE 未使用)、 カーネルコンフィギュレーションを書き換えることで、どれだけ起動時間が変わ るかを試しました (もちろん環境によって起動時間は違うでしょうから参考までに)。 計ったのは、boot: プロンプトが表示されてから、ログインプロンプトが表示 されるまでの時間です。 a) GENERIC (デフォルトのカーネル) 1分30秒 b) GENERIC から認識されない不要なデバイスを削ったもの 1分21秒 c) GENERIC の SCSI_DELAY を 5 にしたもの 1分23秒 d) GENERIC から IDE のデバイスを全て削ったもの 52秒 e) GENERIC に b)、c)、d)の全てを行ったもの 30秒 うまくいけば起動時間が3分の1に短縮されるというのは、結構うれしく ありませんか? ;-) --- [管理番号 838] (最終更新 2004/04/09 05:05:48) Q. man nice に従って priority (優先度) を下げて実行したら、一般 ユーザーでは反映されず、root では逆に priority が上がって しまいました。 A. shell に csh か tcsh をお使いではないでしょうか。csh・tcsh では nice コマンドは組込みコマンドとなっており、/usr/bin/nice とは 書式が違います。 そのため、nice(1) で表示される /usr/bin/nice 用の記述を信じると 変なことになります。csh(1)・tcsh(1) の nice の項を参照してください。 例えば /usr/bin/nice では、priority を 20 (一番低く) にするには、 $ nice -20 command としますが、csh の場合は、 % nice +20 command としなければなりません。 なおコマンドの起動後に priority を変更するには renice(8) を 使いますが、これは csh の組込みコマンドではありません。 参考までに、プロセスが現在どの priority で動いているのかは、 ps コマンドに -l オプションを指定して実行すれば表示されます。 --- [管理番号 839] (最終更新 1999/02/17 23:58:45) Q. fips.exe で分割したハードディスクのパーティション(スライス) を一つに戻すことはできますか? A. presizer というツールでできます。 をダウンロードして、DOS から実行してください。 なお、ドキュメントは にあります。 --- [管理番号 840] (最終更新 2000/05/24 20:55:37) Q. Intel i740 ビデオチップが載ったビデオカードで XFree86 を使いたいのですが。 A. XFree86 3.3.4 からサポートしていますので、これ以前のバージョンをお使い ならアップグレードしましょう。なお、対応しているビデオカードについては リリースノートを参照してください。 --- [管理番号 841] (最終更新 2001/08/12 02:51:17) Q. FreeBSD で使える Pascal の処理系はありますか? A. Pascal のソースを C 言語のソースに変換し、それをさらに C コンパイラで コンパイルするタイプのものは、p2c と ptoc があります。どちらも ports/packages に含まれています。sqrt(3) などの libc に含まれない関数を 使う場合は、オプションに -lm を付ける必要があります。→ [管理番号 1609] また、ネイティブコンパイラ (C 言語に変換しないタイプ) の GNU Pascal Compiler というものもあります。lang/gpc として port/package が用意されて います。 --- [管理番号 842] (最終更新 2000/11/08 02:05:23) Q. QandA に間違いや追加情報、或は古くなった情報を見つけました。修正、追加 または削除してもらうには、どのようにしたらいいのでしょうか? A. 新規の QandA と同様、QandA@jp.FreeBSD.org にメールを出してください。 subject は、 Subject: [update xxx] 〜の修正案 などとしてください (xxx は修正したい QandA の管理番号)。 できれば管理番号を本文中にも記入してください。修正の場合、可能なら QandA の書式に沿った形式で投稿して頂くと助かります。[管理番号 477] や を参考にして ください。 --- [管理番号 852] (最終更新 2001/08/12 02:51:18) Q. FreeBSD では ATA HDD (EIDE) 及び ATAPI デバイスの DMA 転送をサポート していますか? A. FreeBSD のバージョンによりサポート状況は異なります。また、以下の記述は 基本的に FreeBSD/i386 (いわゆる PC/AT 互換機) の話です。FreeBSD(98) で は全く事情が違いますので注意してください。 1. FreeBSD 4.3-RELEASE 以降 まず IDE コントローラが DMA をサポートしていれば、HDD に関しては自動 的に DMA 転送を有効にしようとします。それに対して ATAPI デバイス (CDROM, ZIP, LS-120 など) は、デフォルトでは DMA は無効にされています。 この動作は次の MIB によって制御できます。 hw.ata.ata_dma ‥‥ ATA HDD hw.ata.atapi_dma ‥‥ ATAPI デバイス この MIB に対して `1' を設定すれば DMA 転送を有効に、`0' を設定すれば DMA 転送を無効にすることができます。設定方法は、/boot/loader.conf に 次のような行を追加するか、 hw.ata.ata_dma="0" ‥‥ ATA HDD の DMA 転送を無効化し PIO モードへ hw.ata.atapi_dma="1" ‥‥ ATAPI デバイスの DMA 転送を有効化 boot loader(8) のプロンプトで set hw.ata.atapi_dma="1" などとします。 詳しくは ata(4) と loader.conf(5) の man page を参照してください。 2. FreeBSD 4.0-RELEASE 以降 4.2-RELEASE まで デフォルトの動作に関しては 4.3-RELEASE 以降と同じですが、HDD につい てはブート時に DMA 転送を強制的に無効にすることができません。これは 特定のハードウェアの組み合わせによっては問題となることがあります。 起動後であれば sysctl(8) を使って、次のようにすれば良さそうです。 # sysctl -w hw.atamodes=pio,pio ATAPI デバイスについては、カーネルオプションを使用することで DMA 転送に対応します。GENERIC カーネルではこのオプションはコメントアウトさ れていますので、カーネルの再構築が必要です。 options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices 3. FreeBSD 3.x-RELEASE wd ドライバの flags を指定することにより、DMA 転送が可能になります。 マニュアル wd(4) を御覧下さい。ただし、サポートされている ATA chipset は Intel PIIX のみのようで、他の chipset で有効かどうかは不明です。 (src/sys/i386/isa/wdreg.h 参照) controller wdc0 at isa? port "IO_WD1" bio irq 14 flags 0xa0ffa0ff 0x8000 … 32bit 転送 0x4000 … スリープモードによる HDD の一時停止への対応 0x2000 … DMA 転送 0x1000 … LBA モード 0x00ff … 下位 8bit は multi-sector 転送。0xff はドライブの最大数。 下位 16bit が Master、上位 16bit が Slave に対する設定です。 4. FreeBSD 2.2.x ではサポートされていません。 --- [管理番号 856] (最終更新 1999/02/24 03:17:01) Q. XF86Setup を実行したのですが、私の使っているビデオカードがリストの 中にありません。 A. XFree86 の新しいバージョンなら対応しているかもしれません。まず 自分 の使っている FreeBSD のバージョンで動作する、XFree86 の最新版があるか 探しましょう。 Q. www.XFree86.org が遠いんですけど、どこか国内で見ることはできま せんか? [管理番号 785] を参照してください。もし新しい物があればそれを入手して使いましょう。 また一般に、国内メーカが作っているビデオカードはほとんど登録されていま せんので一覧には出てきませんが、ビデオカードに乗っているビデオ chip を 調べて、それと同じ chip を使っている海外製ビデオカードを選択するとうま くいくことがあります。 --- [管理番号 859] (最終更新 2001/10/19 21:29:32) Q. FreeBSD で RADIUS サーバを立てようと思っているのですが、 参考になる Web サイトはありますか? A. iij-ppp や pppd を使うのなら DTC Radius Lucent (旧 Ascend 社) Radius FAQ HappySize さんによる RADIUS リンク集 ルータ RT シリーズを作ってる YAMAHA のサイト あとは RFC ですが、Index を RADIUS でサーチしてみれば、関連するものが いくつか見付かるでしょう。 --- [管理番号 861] (最終更新 2002/02/20 10:50:33) Q. ノート型 PC で サスペンドまたはハイバネーションから復帰後、ポインティ ングデバイス (PS/2 マウス) が反応しなくなることがある。 A. まず、[管理番号 271] にある方法に該当するか確認してください。 それでもうまく行かない場合には、カーネルのコンフィギュレーションに options PSM_HOOKRESUME #hook the system resume event, useful #for some laptops options PSM_RESETAFTERSUSPEND #reset the device at the resume event を加えて再構築するとうまく行く場合があります (以前の FreeBSD では PSM_HOOKRESUME の代りに PSM_HOOKAPM)。どのメーカーのどの機種でうまくいく のかちゃんとしたリストは特にありません。 それらを試しても、動作がおかしい、リジューム後マウスが動かない、など トラブルがある場合は、以下の点を調べて FreeBSD-users-jp メーリングリスト や fj.os.bsd.freebsd、japan.comp.freebsd 等のニュースグループで質問して みましょう。 1. サスペンド時に /dev/psm0 をオープンしているプロセスがあったか (moused, X サーバーなど) 2. どのようにして復帰 (resume) したか,ハイバネーションから抜けたか。 (スイッチ,キー入力,マウスを動かした,など) 3. BIOS のセットアップ・メニューにパワー・マネジメントの項目がある場合, キーボード入力や PS/2 マウス入力(IRQ12)で復帰するかどうかを 設定できるか。できる場合には有効になっていたか無効になっていたか。 4. /var/log/message に何かメッセージが残っていないか。 --- [管理番号 872] (最終更新 2002/10/21 05:19:40) Q. FreeBSD(98) で、拡張RS232Cボード 緑Hayes ESP98 は使えますか? A. ボード付属の Windows3.1 または Windows95 用設定ツールを用いて、 あらかじめ ESP98 を 16550A 互換モードに設定し、不揮発メモリに書き込ん でおく必要があります。購入したばかりの状態 (エンハンスモード) では使え ませんので注意してください。 --- [管理番号 883] (最終更新 1999/02/24 03:26:44) Q. YHP の DeskJet 505J Plus (DJ505J) を使用しています。Ghostscript で TrueType フォントを使ってきれいに印刷したいのですが。 A. packages/ports の ja-vfghostscript-5.10 を使用しましょう。 DJ505J は ghostscript の 汎用プリンタドライバ (dmprt) を利用して 使用することができます。 dmprt は、この他のさまざまなプリンタをサポートしています。詳しくは、 /usr/local/share/ghostscript/5.10vflib/doc/gdevdmpr.sj を参照して下さい。なお、dmprt 用のプリンタ定義ファイルは、 にて入手することができます。 --- [管理番号 921] (最終更新 1999/07/02 16:22:46) Q. mnews の MH モードで、pop サーバからメールを取り込むことができませ ん。どうすればよいのでしょうか。 A. POP3 サーバ、あるいは APOP サーバからメールを取得しようとしていま せんか? その場合、「ユーザの入力が不要な inc」が実行できるように .netrc などに設定を加える必要があります。具体的には次のようにします。 1. mnews の設定ファイル ${HOME}/.mnews_setup ファイルに以下を追加します: mh_mode: on msgchk_rule: 2 2. POP3 サーバからメールを取得する場合は、MH の設定ファイル ${HOME}/.mh_profile に以下を追加します: inc: -norpop -noapop -host pop-hostname -user pop-account msgchk: -norpop -noapop -host pop-hostname -user pop-account APOP サーバからなら、次のようにします: inc: -apop -host pop-hostname -user pop-account msgchk: -apop -host pop-hostname -user pop-account ここで pop-hostname には POP3/APOP サーバ名、pop-account には POP3/APOP アカウント名を記述します。 3. MH の inc, msgchk コマンドを問い合わせなしで実行するため、 ${HOME}/.netrc ファイルを作成し、以下の記述を加えます。 machine pop-hostname login pop-account password pop-password pop-hostname には POP3/APOP サーバ名、pop-account には POP3/APOP アカ ウント名、pop-password には POP3/APOP パスワードを記述します。 上記のように、$HOME/.netrc ファイルには生のパスワードが記述さ れるため、その取り扱いには細心の注意を払って下さい。他のユーザーに読ま れないように、ファイルのモードは 600 にしておきます。 % chmod 600 $HOME/.netrc 以上の設定でメールを取り込んで読むことができるようになるでしょう。 なお、mnews 1.21 は環境変数 MH による設定ファイル (.mh_profile) 切り替え には対応していません。対応させるには、たとえばこんな patch を適用して mnews を作り直す必要があります: ----patch start---- --- src/mh.c.dist Fri Sep 4 11:28:45 1998 +++ src/mh.c Fri Sep 4 12:07:05 1998 @@ -416,7 +416,36 @@ if (!mh_mode) { return(0); } - sprintf(init_file, "%s%c%s", home_dir, SLASH_CHAR, MH_INIT_FILE); + { + char *mymh; + + if ((mymh = getenv("MH")) != NULL) { + /* set alternate MH profile path */ + if (*mymh == SLASH_CHAR) { /* absolute path */ + if (PATH_BUFF < (strlen(mymh) + 1)) { + fprintf(stderr, "init_file buffer is not enough: current = %d\n", PATH_BUFF); + exit(1); + } + sprintf(init_file, "%s", mymh); + } else { + char *p; + + if ((p = getcwd(NULL, PATH_BUFF)) == NULL) { + perror("getcwd"); + exit(1); + } + if (PATH_BUFF < (strlen(p) + 1 + strlen(mymh) + 1)) { + fprintf(stderr, "init_file buffer is not enough: current = %d\n", PATH_BUFF); + exit(1); + } + sprintf(init_file, "%s%c%s", p, SLASH_CHAR, mymh); + free(p); + } + } else { + /* set standard MH profile path */ + sprintf(init_file, "%s%c%s", home_dir, SLASH_CHAR, MH_INIT_FILE); + } + } buff1[0] = buff2[0] = '0'; init_field[0].field_buff = &buff1[1]; init_field[1].field_buff = &buff2[1]; ----patch end---- この patch を適用した mnews であれば、 % env MH=/other/place/other_mh_profile mnews args... として、標準とは異なる MH 設定ファイルを利用できます。 なお、/usr/local/share/doc/mnews/ ディレクトリ内に mnews 関連ドキュメ ントがありますので、こちらも随時参照して下さい。 --- [管理番号 932] (最終更新 1999/11/03 04:48:04) Q. Dell の 440BXチップセットを使った PC に FreeBSD 2.2.7-RELEASE (以前) をインストールしたところ、PS/2マウスを認識してくれません。 A. キーボードコントローラの互換性に問題があります。 src/sys/i386/isa/psm.c の ver. 1.55 (3.0-RELEASE) と ver. 1.25.2.13 (2.2.8-RELEASE) で修正されています。 src/sys/i386/isa/psm.c を入れ換えるか、もっと新しい RELEASE に upgrade しましょう。 この問題に当てはまる場合、FreeBSD 起動時に Boot: プロンプトに対して -v オプションを与えると、 psm0: current command byte:0047 kbdio: TEST_AUX_PORT status:00fa kbdio: DIAGNOSE status:0055 kbdio: TEST_KBD_PORT status:00fa psm: keyboard port failed. psm0: the aux port is not functioning (250). psm0 not found at 0x60 というメッセージが出るでしょう。 --- [管理番号 941] (最終更新 2001/03/07 02:08:46) Q. 他の UNIX で使用していた passwd file と passwd を、そのまま FreeBSD で使用できますか? A. SunOS のように、DES という暗号方式で passwd を格納している場合には、 多少の変更で使用できます。(現在の UNIX では、DES 方式がまだまだ多い) まず、FreeBSD (標準では MD5 で暗号化) を DES が使用できるようにする 必要があります。また、SunOS と FreeBSD とで passwd file の field 構成 が少し違いますので調整する必要があります。 1. /stand/sysinstall などを使用して DES をインストールする。 インストール方法については [管理番号 292] を参照してください。 2. SunOS の "/etc/passwd" を "/tmp/passwd" などにコピーしておき GID の後   ろに "::0:0"を追加する。たとえば awkを使用する場合は次のようにする。 cat /etc/passwd | awk 'BEGIN{FS=":" } \ {printf("%s:%s:%s:%s::0:0:%s:%s:%s\n",$1,$2,$3,$4,$5,$6,$7)}'\ > /tmp/passwd 3. "/tmp/passwd" を FreeBSD 側にコピーし、vipw を起動して"/tmp/passwd" を今の FreeBSD の passwd の後ろに追加し、uid の重複や、shell や、 home の path 等を修正/確認した後セーブする。 4. パスワードの記録形式を DES に変更する。 変更方法については [管理番号 345] を参照してください。 以上の操作によって、他の UNIX で使用していた passwd をそのまま FreeBSD で使用できます。 --- [管理番号 946] (最終更新 2002/04/11 03:59:26) Q. kernel.GENERIC98 で起動すると fdc0 は fdc0 at 0x90-0x97 irq 11 drq 2 on isa と認識されるのですが、fd0 および fd1 が認識されず fd2 および fd3 と認識され フロッピーを mount しようとすると Device not configured となって mount 出来ません。 A. mount する時に fd0 や fd1 でないと困るということであれば、 「システムセットアップメニュー」 (HELPを押しながら起動もしくは再起動) で,フロッピーディスク番号の内蔵が #1,#2 になっているか確認して下さい。 もちろん、fd2 や fd3 を使って mount すれば普通に使えます。 --- [管理番号 953] (最終更新 1999/07/02 16:23:20) Q. 3.x-RELEASE で SMC EtherPowerII 10/100 を使うにはどのようにすれば よいでしょうか。 A. GENERIC カーネルでは EtherPowerII 用のドライバである tx0 がうまく 動かないときがあります(問題なく動作している環境もあるようです)。 1. まず、BIOSの設定画面で Advances の Plug & Play OS を No に設定してください。これでうまく動く環境もあるようです。 2. 1を行っても、起動時に tx0: cannot map memory というメッセージが出ることがあります。これは Windows95/98 で起動した 後、FreeBSD を hot boot すると起こるようです。このときは、マシンを shutdown(rebootではダメです)し、いったん電源を落としてから再投入して ください。 少なくとも、3.0-RELEASE/3.1-RELEASE/3.2-RELEASE で この不具合が発生する ことが確認されています。 --- [管理番号 976] (最終更新 2001/11/17 19:15:36) Q. NAT (IP Masquerade) 環境なので、ncftp-2.4.3 を PASSIVE ftp mode で 使いたいのですが、うまく動きません。 A. [管理番号 1555] を見てください。 --- [管理番号 1002] (最終更新 1999/02/24 03:55:48) Q. X の program を、別の端末に表示しようとしたら Xlib: connection to "サーバ:0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: サーバ:0.0 と、error になって、表示できませんでした。 A. X が、どこからの connection でも、すべて表示できたら、 セキュリティのかけらもないので、デフォルトでは、その X server が立ち上がっているマシン以外からの接続は、拒絶します。 X server : pc.hogehoge.or.jp remote client : client.hogohoge.or.jp の時、pc.hogehoge.or.jp 側で、環境変数 DISPLAY が pc.hogehoge.or.jp:0.0 のような指定がされている状態で、 % xhost +client.hogehoge.or.jp とすると client.hogehoge.or.jp からの*すべて*の X の接続を許可するようになります。 % xhost + では、すべてのマシンからの接続を許可します。 いつも設定しておきたいなら ~/.xinitrc などの中で、pc で X を起動する時に 自動実行しましょう。 xon のバージョンによっては、xhost +host を、自動でやってくれるものもあります。 また、xauth を使用すれば、もうすこし細かい制限もできます。(ref.man xauth) また remote host がそれなりに遠い場所にあるなどで安全面で不安があるなら、 ssh を入れて、それでログインしてから X client を起動すると local host への X の転送は勝手にやってくれます。 --- [管理番号 1006] (最終更新 2002/02/14 00:39:59) Q. getty(8) で待たせてある ttyd0 ポートにアクセスすると、login プロンプトが 以下のように文字落ちし、login できません。 reeBSD 化けたホスト名 (tty0) loi: A. モデムと getty とでパリティの設定 (even, odd, none)に 相違があります。 モデムへのパリティ設定は、モデムに送る AT コマンドにて行われます。 モデムへの設定を tip(1) で行っている場合は、/etc/remote に記述している 指定しているエントリの pa フラグを再確認してください。 pa フラグを指定しない場合、デフォルトで pa=even (偶数パリティ) になります。 (see remote(5)) getty へのパリティ設定は、/etc/gettytab にて行われます。/etc/gettytab に 記述している指定しているエントリのパリティ設定フラグを再確認してください。 指定しているエントリが std.* を使っている場合は、np (ノンパリティ) が 既に記述されています。(see gettytab(5)) --- [管理番号 1012] (最終更新 2004/04/09 05:05:14) Q. base64 ってなんですか? A. RFC2045 で規定されている、バイナリデータをメールなどで送る ための、バイナリ <-> テキスト変換方式の一つです。base64 化 したデータは以下のようなテキスト形式になります。 f0VMRgEBAQkAAAAAAAAAAAIAAwABAAAAMC4TwDQAAAAkZTwAAAAAADQAIAAFACgA GgAXAAYAAAA0AAAANAAQwDQAEMCgAAAAoAAAAAUAAAAEAAAAAwAAANQAAADUABDA 1AAQwA0AAAANAAAABAAAAAEAAAABAAAAAAAAAAAAEMAAABDAlVk1AJVZNQAFAAAA ABAAAAEAAACgWTUAoGlFwKBpRcBYcgYANM0JAAYAAAAAEAAAAgAAAJDLOwCQ20vA メールやネットニュースなどで、本文が base64 エンコードされて いる場合、 Content-Transfer-Encoding: base64 というヘッダがつけられます。 MIME 対応のメーラー (Mozilla, Sylpheed, Mew, Semi-Gnus など) を使うと、base64 化されたメールを扱うことができます。 コマンドラインから操作したい場合は、FreeBSD 付属の OpenSSL を 使うのがお手軽でしょう。 エンコード % openssl enc -base64 -e < plain.txt > base64.txt デコード % openssl enc -base64 -d < base64.txt > plain.txt また ports/packages にある、base64・mpack・uudeview でも 扱うことができます。 --- [管理番号 1032] (最終更新 1999/04/07 06:15:13) Q. ~/.Xresourcesと~/.Xdefaultsって、どう違うんですか? A. ~/.Xdefaults は、xrdb でディスプレイに対してリソースを 登録して「無い」場合に、XToolkitアプリケーションが起動時に サーバリソースデータベースとして読み込むファイルです。 つまり、xrdb -query として、登録済リソースが表示されるような 状況では、~/.Xdefaultsは参照されません。 ですから、Xのリソース設定に関しては (1). ~/.Xresourcesに記述して、~/.xinitrc(~/.xsession)に xrdb -merge $HOME/.Xresources と書く。 (2). ~/.Xdefaultsに記述して、各Xアプリケーション(が使っている ツールキットのライブラリ)に読み込ませる。 のどちらでもいいです。 ただ、(2)の場合、~/.Xdefaultsを編集した後にXアプリケーションを 起動すると、(xrdb を実行しなくても) 最新の情報が反映される、 という特徴があります。 しかし、Xクライアントを他のマシン上で実行している場合は ローカルではなく、リモートの ~/.Xdefaults を読んでしまいます。 一方(1)は、Xクライアントをローカルで実行しようとリモートで 実行しようと、同じリソース設定が参照されます。つまり、 ディスプレイにプロパティとしてリソースを登録するのが xrdb なのです。 ですから、一応(1)が推奨される方法でしょう。 本来は ~/.Xresources というファイル名でなくてもいいのですが、 ~/.xinitrcや~/.xsessionがない場合に実行される /usr/X11R6/lib/X11/xinit/xinitrc /usr/X11R6/lib/X11/xdm/Xsession の中で ~/.Xresources というファイルを参照するようになっているので、 この慣例にならって ~/.Xresources というファイル名にしておくのが 無難でしょう。 --- [管理番号 1034] (最終更新 1999/02/24 03:56:20) Q. FreeBSD の商用利用についての情報がありませんか? A. FreeBSD-isp-jp というメーリングリストがあります。インター ネットサービスプロバイダ (ISP) や企業における FreeBSD の 商用利用や、FreeBSD の商用アプリケーションへの利用に関する 議論をするメーリングリストです。 参加方法とアーカイブは、 にあります。 も参照してください。 --- [管理番号 1053] (最終更新 2001/08/12 02:51:16) Q. スタンドアロンなマシンで、他の user に mail を出したのですが、戻って 来ました。 (もちろん、user名はあってますし、ドメイン名も間違ってません。) A. 「ドメイン名も間違ってません。」ということは、"username@domainname" 形式で送っていますね? "username" のみで送ったら、たぶん届くことでしょう。 どうしても、「"username@domainname" 形式で送りたい。」と思うなら、 /etc/host.conf を変更しましょう。 [管理番号 185]、[管理番号 344] が参考になるでしょう。 --- [管理番号 1069] (最終更新 2003/05/17 21:39:23) Q. sendmail の aliases に設定したメールアドレス宛にメールを送付した時に、 alias に発信者が含まれていても発信者本人には配信されません。 これを発信者にも配信されるようにすることは出来ますか。 A. sendmail の MeToo オプションが False になっている為、このような挙動に なっています。(デフォルトは False です)。他のオプションと共に sendmail(8) に説明されているので、一読しておきましょう。 sendmail.cf で設定する方法、コマンドラインで指定する方法があります。 その設定で使い続けたい場合は前者の方がよいでしょう。 (1) sendmail.cf で設定する。 (1a) cf を利用する場合は、sendmail.mc に define(`confME_TOO', `True')dnl と記述します。 (1b) 直接 sendmail.cf を編集する場合、 O MeToo=True と記述します。標準の sendmail.cf だと #O MeToo=True とコメントアウトされているので、外せばよいでしょう。 また、 O MeToo=False または短い記述方法を用いて OmFalse となっている場合は、この部分を上記のように変更しましょう。 (2) sendmail のコマンドラインでは sendmail(8) に記載の通り、 -O MeToo=True とオプションを指定出来ます。 --- [管理番号 1079] (最終更新 1999/07/02 16:24:22) Q. FreeBSD 以外のマシンと talk ができません。 A. talk(1) にも書かれているとおり、FreeBSD で使用している 4.3BSD 由来の talk(1) のプロトコルは、 4.2BSD 由来のものとは互換性が ありません。例えば SunOS などは 4.2BSD から別れているので、古い talk プロトコルを使用しています。なお 4.3BSD 由来の talk は ntalk と呼ばれており、ポート番号も異なるものを使っています (grep talk /etc/services してください)。 ですから、古い talk を使っている OS と FreeBSD や NetBSD などの 間で talk を行なおうとすると、 [Checking for invitation on caller's machine] と出てしまい、実際に talk することができません。 これを解決するには現在のところ 2 つの方法があります。 まず一つ目は古い talk を使っている OS に ntalk をインストールする 方法です。日本だと から取得可能です。これをコンパイルしてインストールします。これ 以降、FreeBSD からは通常に talk を、ntalk をインストールした側 では、talk の代わりに ntalk を使えば互いに talk できるように なります。なお FreeBSD 上で古い talk を動かすようにするプログラムは 今のところ存在しないようです。 二つ目は ytalk を使う方法です。ytalk は接続する時に ntalk が使え れば ntalk プロトコルで、ntalk が使えなければ古い talk プロトコル で接続を試みます。ですから相手の OS がわからず、talk と ntalk どちらを使えばいいのかわからないという場合でも迷わず ytalk を使えば ytalk が判断して適切なプロトコルで繋いでくれます。ただし ytalk には talk daemon はついていないので、相手側にも ytalk をインストールして、 相手も ytalk を使うようにしないとやはりプロトコルの相違の問題が 起きてしまいます (仲立ちをするのは既存の talkd なので、tty 上には respond with:talk user@hostname としか表示されませんが、そのとおりに答えると冒頭で述べた問題が やはり起きてしまいます。ytalk user@hostname としなければならない ことをあらかじめメールなどで確認しあっておく必要があります) なお ytalk は複数人での同時 talk や X の窓を使った talk もできる ように作られています。 そこまで苦労するのなら、いっそのこと phone や IRC を使った方が いいのかもしれませんが、ytalk にはインストールに root 権限が要ら ない、新規 daemon の起動が要らない、という利点があります。 最後に図にまとめてみます。 FreeBSD BSD4.2 x talk X <--- <--- o talk どちらも通信できない o ntalk ---> ---> X x ntalk (1) FreeBSD BSD4.2 x talk X <--- <--- o talk BSD4.2 側で ntalk o ntalk <---> <---> o ntalk を使えば通信できる (2) FreeBSD BSD4.2 x talk +---> ---> o talk ytalk が自動的に o ntalk <--- + <---+ x ntalk 相手のプロトコル ytalk --------+ +------ ytalk を判断して通信する (3) FreeBSD BSD4.2 phone <---> <---> phone phone を入れてしまえば 煩わしさはなくなる [付録] Solaris 2.x で gcc を使って ytalk をコンパイルする、あまり よろしくない方法。 (1) FreeBSD の配布サイトの distfiles ディレクトリから ytalk-v3pl2.tar.gz を入手する (2) 伸長・展開する。 % gunzip ytalk-v3pl2.tar.gz % tar xvf ytalk-v3pl2.tar (GNU tar なら tar zxvf ytalk-v3pl2.tar.gz も可) (3) imake がうまく動かないので X 上で動かすのをあきらめる (4) Makefile を書き換えて、SLIBS = -lnsl -lsocket を有効にし、 CC=gcc の行を加える % vi Makefile -#SLIBS = -lnsl -lsocket +SLIBS = -lnsl -lsocket +CC=gcc (5) 普通に make する % make Undefined first referenced symbol in file sigmask fd.o sigsetmask fd.o sigblock fd.o ld: fatal: Symbol referencing errors. No output written to ytalk と失敗する。 (6) UCB 互換ライブラリを使うようにして fd.o を作り直す。 (UCB 互換ライブラリがインストールされてない場合は、SUNWscpu を追加インストールする) % rm fd.o % setenv LD_LIBRARY_PATH /usr/ucblib % setenv LD_RUN_PATH /usr/ucblib % make CFLAGS=-I/usr/ucbinclude LDFLAGS=-lucb (7) できた ytalk を適当なところへほうりこむ % cp ytalk ~/bin % rehash --- [管理番号 1080] (最終更新 2000/03/04 08:15:03) Q. xdm から login するようにしています。xterm -ls を用いると wtmp や lastlog に記録が残りますが、kterm を使った場合は-ls オプシンを付けても 記録されません。どうすればよいでしょうか。 A. sessreg(1) を利用すれば記録することが出来ます。 xdm(1) のマニュアルに記載されている STARTUP PROGRAM、RESET PROGRAM の 項にあるスクリプト Xstartup、Xreset を作成して実行権を与え、 /usr/X11R6/lib/X11/xdm/xdm-config を編集してそれらを利用するようにすれ ばよいでしょう。 なお、どうしても kterm の -ls オプションでログを取りたいのであれば [管理番号 127] が参考にはなるでしょう。 --- [管理番号 1084] (最終更新 2000/05/24 20:46:25) Q. raw デバイスって何ですか? A. デバイスには「ブロック型デバイス」と「キャラクタ型デバイス」があります が、「raw デバイス」とは「キャラクタ型デバイス」のことを指します。 以下、フロッピーディスク (/dev/fd*) を例にあげて説明します。Unix の慣例 でデバイス名に「r」を付けたもの、例えば /dev/fd0 なら、/dev/rfd0* が raw デバイスであり、/dev/fd0* はブロック型デバイスです。これは ls(1) に -l オプションを指定するか、file(1) コマンドなどで確認できます。 % ls -l /dev/rfd0 /dev/fd0 brw-r----- 9 root operator 2, 0 Oct 18 1998 /dev/fd0 crw-r----- 9 root operator 9, 0 Jan 9 16:47 /dev/rfd0 % file /dev/rfd0 /dev/fd0 /dev/rfd0: character special (9/0) /dev/fd0: block special (2/0) raw デバイスに対する入出力 (フロッピーの場合 /dev/rfd*) は、デバイスに 対して直接行われます。カーネルによるバッファリングは行われません。この ため、入出力の際には必ず、デバイスの許容するブロックサイズの倍数単位で 行う必要があります。(*1) また、書き込みのシステムコールが完了した時には、実際にデバイスへの書き 込みも終了しています。 一方、ブロック型デバイスに対する入出力 (フロッピーの場合 /dev/fd*) は、 カーネル中の buffer cache でいったん、バッファリングされます。このため、 デバイスに許可されたブロックサイズの倍数でなくても入出力できます。 ただし、buffer cache で書き込みもキャッシュされているので、コマンドが 終了しても、フロッピーへの書き込みは終了しているとは限りません(というか、 普通は終了していません)。 普通は、適切な (=十分大きな) ブロックサイズを指定すれば、raw デバイス を使った入出力の方が高速です。この事と、書き込みの完了を保障できる ことから、本格的なデータベースでは、raw デバイスを使うのが普通です。(*2) まあ、/dev/fd* に書いても、buffer cache が全て書き終わるのを待てば (sync コマンドを実行して、フロッピーディスクが動き出し、停止するまで 待てば) いいかもしれませんが、普通は raw デバイスを使う方が適切ですね。 とりあえず、ファイルシステムとして使う場合はブロック型デバイスを使い、 特定のファイル等を意識しない装置そのものとして使う場合はキャラクタ型 デバイスを使う、という感じで覚えておけばいいでしょう。 ------ *1 例えば % tar cf /dev/fd0 . (この使い方はよくない) % tar zcf /dev/fd0 . (この使い方はよくない) % tar cf /dev/rfd0 . (rawデバイスを使っているので望ましい) はできますが、 % tar zcf /dev/rfd0 . はエラーになります。これは % tar zcf - . | gzip > /dev/rfd0a と等価であるからです。 tar 自身は書き込む対象が,ファイル/rawデバイス/ブロック型デバイス のいずれの場合でもブロックサイズの倍数単位で書き込みするが、gzip は そうではない、ということです。 (この場合は、tar(1) の --block-compress オプションを使えばうまく いきます) *2 ちなみに Linux には raw デバイスがありません。 Linux の大きな弱点の一つ。 ------ --- [管理番号 1086] (最終更新 1999/11/19 15:46:31) Q. セキュリティを向上させるために、管理ユーザー (wheelグループなど)が ネットワークからログインする際の認証方法を S/KEY に限定したい。 A. 下記のいずれかの方法があります。 A1. 該当ユーザーのパスワードを * にして、keyinit します。しかしこの方法 ではコンソールからのログインにも S/KEY の使用を強制されます。 A2. /etc/skey.access によってユーザー/グループ単位でログイン元によっ て通常の UNIX パスワードでの認証の許可、不許可が制御できます。 サンプルファイルは /usr/share/examples/etc/skey.access にあります。たとえば、wheel グループのユーザーがコンソール以外からログ インする際に S/KEY での認証のみ許可する際は次のようになります。 permit group wheel port console .... (1) deny group wheel ...... (2) permit ........(3) (1) グループ wheel のユーザーで、ログイン端末が /dev/console のユーザー 認証は UNIX パスワードを許可する。 (2) (1)以外のグループ wheel のユーザーは UNIX パスワードでの認証を拒否 する。 (3) それ以外のユーザーは UNIX パスワードでの認証を許可する。 詳細は skey.access(5) を見て下さい。 --- [管理番号 1089] (最終更新 1999/07/24 15:41:29) Q. JISコードのファイルを日本語をキーワードにして検索したいのですが どうしたら良いのでしょうか? A. 以下の方法があります。 A1. lv(lgrep) で可能です。port/package が作成されています。 A2. で配布されている mg (multi-line grep) という perl スクリプトを 使う方法もあります。 % mg -j jis 'ほげほげ' file_name とすると、JISコードのファイルも検索できます。 なお、mg の実行には jcode.pl が必要です (port/package が用意 されています)。 --- [管理番号 1095] (最終更新 2000/01/20 19:42:32) Q. dhcp で取得した IP アドレスを知るにはどうすればよいですか。 A. dhcp で取得したものに限らず、現在ネットワークインターフェイスに割り 振られている IP アドレスは、 ifconfig ネットワークインターフェイス名 (例: ifconfig ed0) または ifconfig -a で確認することができます。 --- [管理番号 1097] (最終更新 1999/02/24 04:19:40) Q. Wnn4 の jserver で tankan2.dic や tankan3.dic を使うようにすると jvim の onew で変換できないときがあります。 A. onew は tankan2.dic (第二水準) と tankan3.dic (補助漢字) をサポート していないので使うことはできません。onew が利用する libjd (Wnn3互換ラ イブラリ) では使えないからです。 --- [管理番号 1099] (最終更新 2004/04/09 05:05:57) Q. FreeBSD をインストールする時に、anonymous FTP を使うと、 ユーザ名「ftp」で接続しますが、「ftp」以外のユーザ名を 使うことはできませんか。 A. 可能です。インストーラの Main Menu から「Options」を選択し、 「FTP username」でスペースキーを押せば、「ftp」以外のユーザ 名とパスワードを設定することができます。 --- [管理番号 1104] (最終更新 2002/02/20 10:50:33) Q. FreeBSD が内蔵ハードディスクにすでに install されているノートパソコ ンに PCMCIA の SCSI カードを使用して SCSI ハードディスクを外付け追加す るときの方法を教えて下さい。 A. /etc/fstab に /dev/da0s1e /hoge/hoge ufs rw,noauto 0 0 のように追加ディスクの mount 位置を追加します。このとき、noauto にして おかないと FreeBSD の起動時の mount に失敗して、立ち上げられません。 なお、デバイスファイル名は、FreeBSD のバージョンによって以下のように 読み換えてください。 2.2.x(PAO2) 3.x,4.x 3.3以降のPAO3 HDD sd da da MO, PD od da od CD-ROM cd cd cd 使用するときは、SCSI カードを挿入してから、 mount /hoge/hoge 使用後は、SCSI カードを抜く前に、 umount /hoge/hoge とします。 [注意] 1. SCSI カードが抜かれてしまってからでは umount できません。ですから、 /etc/pccard.conf の中で、使用している SCSI カードのエントリに remove umount /hoge/hoge を追加しても無意味です。FreeBSD 稼働中に SCSI カードを抜く前には、必ず 手動で SCSI ハードディスクを umount しましょう。うっかり umount を 忘れて SCSI カードを抜いた場合、kernel が panic あるいはもっと悪い 状態になることがありますので注意しましょう。 2. 該当する SCSI カードのエントリを、/etc/defaults/pccard.conf から /etc/pccard.conf にコピーし、そこに insert mount /hoge/hoge を追加しておくと、立ち上げ時はもちろん、後から SCSI カードを挿入しても、 SCSI ハードディスクが自動的に mount されますが、前述の通り umount は 自動化できません。SCSI カードを抜く前に umount するのを忘れがちに なりますので、この設定はしない方が無難かもしれません。 --- [管理番号 1107] (最終更新 1999/03/01 17:10:21) Q. パーミッションを rw-rw-rw- とした hoge というファイルを % tar cvf hoge.tar hoge として hoge.tar を作成したのち % tar xvf hoge.tar で展開すると、ファイル hoge のパーミッションが rw-r--r-- に 変わってしまいます。展開後も rw-rw-rw- となってほしいのですが。 A. 展開時に p オプションを指定して % tar xvfp hoge.tar としてください。詳しくは tar(1) をどうぞ。 rw-rw-rw- ではなく rw-r--r-- となってしまう理由は umask にあります。 % umask 0 % tar xvf hoge.tar とすると、p オプションなしでも、ファイル hoge のパーミッションが rw-rw-rw- となります (意味を理解せずに umask 0 とするのはやめましょう)。 umask はシェルの組み込みコマンドです。詳しい説明は、あなたが 使っているシェル、csh(1),tcsh(1),bash(1) などのマニュアルを ご覧ください。 --- [管理番号 1121] (最終更新 2000/05/24 20:48:06) Q. Fast Ethernet カードの 10Mbps or 100Mbps の速度切替はどうやって 指定すればいいのでしょうか? A. おそらく正解への早道は、使用なさっているドライバの man ページに書か れていると思います。de ドライバなら de(4)、fxp ドライバなら fxp(4) という具合です。 FreeBSD 2.2.2R までは ifconfig(8) のオプションの link? や -link? を 組み合わせて指定していました。 FreeBSD 2.2.5R 以降は ifconfig(8) の media というオプションで指定 できます。一般的にデフォルトでは 10Mbps/100Mbps を自動認識する autoselect モードに設定されていますが、de ドライバでは次の様にすれ ば、明示的に通信速度を固定できます。 # ifconfig de0 media 10baseT/UTP とやると 10Base-T # ifconfig de0 media 100baseTX とやると 100Base-TX などに切り替えられます。 また、Full duplex モードと Half duplex モードは、mediaopt という オプションで切り換えできます。 # ifconfig de0 media 100baseTX mediaopt full-duplex とやると 100base-TX の全二重 (Full duplex) に切り替えられます。 --- [管理番号 1126] (最終更新 2001/08/12 02:51:17) Q. Mule 上で mh-rmail を用いてメールを読み込む時、あるいは MH で inc や scan したときに表示されるメール一覧のメール番号の桁数を変える にはどうしたらいいか? A. デフォルトではメール番号は 4 桁ですが、これを例えば 5 桁に変更 したい場合には次のようにします。 (1) まず、 /usr/local/lib/mh/scan.default を ~/Mail/scan.form として コピーします。 (2) ~/Mail/scan.form を次のように編集します。 ---------- ~/Mail/scan.form ------------------------------ %; NOTE: This file is supplied for reference only; it shows the default %; format string (for non-UK sites) which was compiled into "scan". %; See the source file "h/scansbr.h" for details. %5(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ ---------------------- end of ~/Mail/scan.form------------- 4 行目に注目してください。デフォルトでは %4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ となっているはずですが、この 4 を 5 に変更します。 (3) ~/.mh_profile に以下の設定を追加します。 scan: -form scan.form inc: -form scan.form 以上で inc や scan した際に表示されるサマリーのメール番号 の桁数を 5 桁にすることが出来ます。 (4) Mule の mh-rmail を使用する場合には ~/.emacs に次の設定を 追加記述してください。これを行わないと、フォルダを scan した 際に表示が乱れたり、削除や refile 等のコマンドを設定した 時など、取消が出来なくなります。 (setq mh-cmd-note 5 mh-good-msg-regexp "^.....[^D^]" mh-deleted-msg-regexp "^.....D" mh-refiled-msg-regexp "^.....\\^" mh-flagged-scan-msg-regexp "^.....\\D\\|^.....\\^\\|^.....\\+\\|^......%" mh-cur-scan-msg-regexp "^.....\\+") また、MIME エンコードされたヘッダーの日本語を正しく処理させるため には MH をバージョンアップするのが簡単です。 [管理番号 1137] [管理番号 458] --- [管理番号 1128] (最終更新 2001/04/18 02:12:12) Q. NFS の Server 設定 (/etc/exports の設定) で、 bad exports list line /hoge/hoge または could not remount /hoge/hoge: Invalid argument などと怒られる A. /etc/exports の設定を以下の点に注意してもう一度見直してください (mountd および nfsd は既に起動されているものとします)。 (1) マウントポイントは実ディレクトリでないといけない (シンボリックリンクでのマウントポイントは不可)。 (2) -alldirs を指定するマウントポイントは独立したファイルシステム (パーティション) でないと不可。 サブディレクトリに対する -alldirs は上記 2 番目のエラーとなる。 --- [管理番号 1129] (最終更新 2001/08/12 02:51:17) Q. sendmail(8) を daemon mode で起動したり、newaliases(1) を したりすると hash map "Alias0": unsafe map file /etc/aliases: No such file or directory hash map "Alias0": unsafe map file /etc/aliases: Permission denied あるいは newaliases: cannot open /etc/mail/aliases: Group writable file などというメッセージが出ます。 ひどい時には、メールが配送されなくなります。 A. /etc/mail/aliases.db や /etc/mail/aliases (4.2-RELEASE 以前は、それぞれ /etc/aliases.db と /etc/aliases) が存在しているか、またファイルの所有権とパーミッションが適正か どうかをチェックしてください。このメッセージは /etc/mail/aliases のパーミッション等が不適切な場合に出ます。 参考までに、パーミッションや所有権の 4.3-RELEASE のデフォルトでの 適正な状態は次の通りです。 -rw-r--r-- 1 root wheel 1410 Dec 19 08:31 aliases -rw-r--r-- 1 root wheel 32768 Apr 17 06:30 aliases.db また / と /etc と /etc/mail のパーミッションについても注意を 払う必要があります。いずれのディレクトリも owner、group は それぞれ root、wheel でパーミッションは 755 でなければなりません。 /etc/mail/aliases.db が存在しない場合には、上記をチェックした上で newaliases(1) コマンドを実行します。これでうまくいかない場合には # touch /etc/mail/aliases.db と空のファイルを作成してから newaliases してください。 なお、このような場合に sendmail(8) はメールをいったんキューに 落し、メールを配送しなくなることもあります。/etc/mail/aliases 等のパーミッションなどを補正してから、sendmail -q とすれば キューにたまったメールが処理されるようになります。 パーミッションやファイルの配置が原因で、NIS マップの初期化や 更新の際に mail.aliases を作成する場合にも同様の問題が生じます。 --- [管理番号 1136] (最終更新 2000/03/22 02:28:57) Q. X Window System を使っていて、netscape と xv の様に多くの色を使うアプリ ケーションを複数立ち上げると、後から立ち上げた方の色が変になることがあ ります。X server が扱える色数が少ない為だと思いますが、何かうまい方法は ありませんか。 A. 8bpp (256色) (や 4bpp) に設定されている場合、多くの色を使うアプリケー ションを使用していると、色が足りなくなってそのような状態になります。 解決法としては、 1. 扱える色数を増やす為に pixel 辺りの bit 数を増やす。 (color depth を大きくする)。[管理番号 450] を参照して下さい。 このためには、VRAM の容量が十分なければなりません。 2. それが出来ない場合は、アプリケーションごとに colormap を替える。 色を多く使うアプリケーションは、独自の colormap を使うオプションを 用意していることがあります。 この場合、そのアプリケーションの window 内にマウスカーソルを移動す ると colormap が切り替わって、そのアプリケーションはきれいに表示さ れますが、それ以外の部分はおかしな表示になります。 Xnest、netscape、xli、xlock といったアプリケーションには -install オプションが用意されており、これを指定すると独自の colormap を利用 します。各アプリケーションのマニュアルを参照して下さい。 netscape の場合は、-ncols オプションもあります。(netscape --help を参照のこと)。 tgif では、共有 colormap / 独自 colormap の切替えは自動で行なわれ ます。tgif(1) の `COLORS AND COLORMAPS' section を参照して下さい。 --- [管理番号 1137] (最終更新 2001/05/07 03:21:08) Q. メールを受信して、mule 上で M-x mh-rmail として新着メールを読み込む、 あるいは MH で inc ないしは scan する時に、メールサマリーの Subject や From 欄の日本語が テスト などとなり、正しく表示されない。 A. 古いバージョンの MH を使用している場合、MIME エンコードされた メールヘッダーが正しく処理されないことがあります。 2001 年 4 月 12 日現在 ports/packages に収録されている ja-mh-6.8.4.j3.03 はデフォルトでこれを正しく扱えますので、 MH のバージョンアップをしてください。特に設定をしなくても、 コマンドラインから inc ないしは scan する際には正しく 日本語が処理されます。 上記の設定だけで mule の mh-rmail 使用時に問題が解決されない 場合には ~/.mh_profile に以下を追加してください。 file-coding: ja_JP.jis7 process-coding: jp_JP.jis7 display-coding: jp_JP.jis7 [管理番号 458] も参照してください。 --- [管理番号 1142] (最終更新 2001/04/18 02:12:12) Q. リモートプリンタへの出力がうまくいきません。 ただし、プリンタが接続されているホストからはプリントアウトできます し、ネットワークの状況にも問題ないようです。 A. 以下では、次のような状態になっていると仮定します。 remote: プリンタが直接接続されているホスト machine1: remote へプリンタ出力要求を送るクライアント machine1 で lpd(8) が動作しているかどうかを確認します。 そうでないのなら /etc/rc.conf に lpd_enable="YES" をいれ、 再起動します。 machine1 の /etc/printcap を確認してください。 例えば、 lp|ps-oki:\ :lp=:rm=hogehoge.kanazawa-gu.ac.jp:rp=lp:\ :sd=/var/spool/ps-oki:\ :lf=/var/spool/ps-oki/log: のように、rm (remote.host) フィールドと rp (remote.queue) フィール ドの指定が正しいかどうかを確認します。各フィールドの意味およびこの ファイルの詳しい書式については printcap(5) の man ページを参照して ください。 次に machine1 で lpq(1) コマンドを実行してみます。 (4:08pm)[machine1: 75] % lpq machine1: waiting for queue to be enabled on remote Rank Owner Job Files Total Size 1st okada 2 (standard input) 299486 bytes remote: /usr/lib/lpd: Your host does not have line printer access 上記のような出力が得られた場合、remote の /etc/hosts.equiv ないしは /etc/hosts.lpd を確認し、machine1 をいずれかのファイルに登録する 必要があります。これらのファイルの書式については hosts.equiv(5)、 hosts.lpd(5) そして lpd(8) の man ページを参照してください。 ホスト名や IP アドレスをいれてもうまくいかない場合には、両方を 試してみてください。 注意: /etc/hosts.equiv に machine1 を登録した場合、machine1 からの rlogin(1) などがパスワードのチェック無しで使えるようになってしまい ます。これを望まない場合には /etc/inetd.conf を編集しサービスを停止 する、tcp_wrapper(tcp_wrappers) でアクセス制限を行う、あるいはプリ ンタアクセスのみを許可する /etc/hosts.lpd の使用を考える必要があり ます。 --- [管理番号 1144] (最終更新 2003/10/16 23:20:14) Q. 古い CD-ROM ドライブが装着されたマシン (例えば PC9821Ce2,Cs2) に CD-ROM から FreeBSD をインストールしようとしたところ、ファイルの転送途 中で止まってしまいます。 Alt-F2 (pc98 では GRAPH-F2) でホログラフィックシェル画面を確認すると、 atapi0.1: controller not ready for cmd というメッセージが表示されている場合があります。 A. wcd ドライバはドライブの busy をきちんと確認していないため、遅い CD-ROM ドライブで問題が起こることがあるようです。 4.0-RELEASE 以降に入っている ata (acd) ドライバにはこの問題はありません。 なお、PC-98/NEC での報告が多いのですが、IBM Aptiva や Gateway などでも 同様の症状の報告があることから PC-98/NEC 固有ではないようです。 pc98 では 4.6R-Rev01 以降で acd ドライバを使うことで問題が解消される でしょう。 (参考: ) また、i386 では 4.0-RELEASE 以降及び pc98 では、5.0R-Rev01 以降は ata (acd) ドライバが標準になっていますので、この問題は起こらないと思われます。 --- [管理番号 1145] (最終更新 2003/01/22 21:13:31) Q. FreeBSD(98)2.2.6R-Rev02 で LINE30 を指定し、module.h も修正してから カーネルを再構築したのですが、vidcontrol 80x30 を実行しても画面サイズ が変わらず、26 行目以降が画面の外にでていってしまいます。 A. FreeBSD(98) の古いものでは LINE30 の動作や、9821Note での動作に問題 がありますので、可能な限り最新リリースをインストールしてください。 4.1R-Rev01 から、9821Note での 30 行表示や、水平同期 31KHz での動作 をサポートしています。 --- [管理番号 1146] (最終更新 2000/12/07 02:36:51) Q. Wnn6 で、ユーザー辞書を dtoa で、テキストファイルに変換しようと すると Segmentation fault で停止する。 A. ユーザー辞書の読みまたは漢字に null の単語が登録されているとき、 dtoa が Segmentation fault で停止します。これを修正するモジュールは、 にあります。 なお、この問題は Wnn6 Ver2.0 では対策済です。 --- [管理番号 1147] (最終更新 1999/11/19 15:50:58) Q. FreeBSD で NIS マスタサーバを立ち上げたのですが、Solaris2.6 など他 の OS のクライアントから yppasswd でパスワードが変更できません。 A. サーバの rpc.yppasswdd を -u オプションをつけて起動します。 起動時に有効にするには /etc/rc.conf に nis_yppasswdd_flags="-u" という行を加えましょう。 何故かは rpc.yppasswdd(8) に書いてあります。 --- [管理番号 1150] (最終更新 1999/11/19 15:52:17) Q. Squid を通して istsv_cba2.xxx.xxx.co.jp という host 名を含む URI に アクセスすると、 The following error was encountered: DNS name lookup failure The system returned: というエラーがでてしまいます。なぜでしょうか。 A. DNS のドメイン名として使えるのは、アルファベット、数字とハイフンだ けです。 RFC 952 " DOD INTERNET HOST TABLE SPECIFICATION" には 1. A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and period (.). Note that periods are only allowed when they serve to delimit components of "domain style names". (See とあります。 squid や最近の bind 等のように domain name を厳格に扱うソフトウェアで は、underscore など不正な文字を含むホスト名は拒否されます。 --- [管理番号 1152] (最終更新 2001/08/12 02:51:17) Q. ppp(8) で接続した直後から Apr 17 04:38:39 somehost sendmail[39248]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon MTA: cannot bind: Address already in use Apr 17 04:38:39 somehost sendmail[39248]: daemon MTA: problem creating SMTP socket などという変なメッセージが限りなく出てきます。 A. すでに sendmail(8) が daemon mode で起動しているのに、更に /etc/ppp/ppp.linkup に !bg sendmail -bd -q30m などと書かれていませんか? 既に sendmail(8) が daemon mode で起動しているのにもかかわらず 新たに sendmail(8) を daemon mode で起動するとこのようなメッセージが 出ます。とりあえず、sendmail(8) を停止すればこのメッセージは 止まります。ps -auwx | grep sendmail して sendmail の PID を 確認し、kill -TERM で停止させてください。 --- [管理番号 1154] (最終更新 2001/04/18 02:12:12) Q. 電話料金を節約するため /etc/ppp/ppp.conf の中で、 set timeout 300 などと指定して 5 分間ネットワークにアクセスしない時には回線を切るよ うにしてありますが、特にアクセスをしていないのに接続が維持されてし まいます。 A. set timeout による idle timer の設定で、一定時間パケットが流れない 場合には回線を切るようになっていますが、デフォルトでは ping、 NetBIOS などのパケットにも反応して、接続を維持してしまいます。例え ば、外部から ping を一定間隔で打たれると、その都度 idle timer がリ セットされ、見た目にネットワークアクセスをしていなくても ppp(8) は 接続を維持しようとします。また、接続を維持する上で意味のないパケッ トも idle timer に影響を与えることがあります。 このために、idle timer に影響を与えるパケットと与えないパケットを 指定して timeout の動作を変更することができます。これは alive filter を利用し、例えば、 [2.2.8-RELEASE 以降] set filter alive 0 deny udp src eq 137 set filter alive 1 deny udp src eq 138 set filter alive 2 deny udp src eq 139 set filter alive 3 deny udp dst eq 137 set filter alive 4 deny udp dst eq 138 set filter alive 5 deny udp dst eq 139 set filter alive 6 deny icmp set filter alive 7 permit 0/0 0/0 [2.2.7-RELEASE 以前] set afilter 0 deny udp src eq 137 set afilter 1 deny udp src eq 138 set afilter 2 deny udp src eq 139 set afilter 3 deny udp dst eq 137 set afilter 4 deny udp dst eq 138 set afilter 5 deny udp dst eq 139 set afilter 6 deny icmp set afilter 7 permit 0/0 0/0 などと /etc/ppp/ppp.conf に指定すると、ポート 137 〜 139 を出入りす る UDP datagram と ICMP message (ping が代表的)については、idle timer に影響を与えませんが、その他のパケットが流れると idle timer をリセットし、接続は維持されます。 詳しいことは ppp(8) の man ページおよび /usr/share/examples/ppp/ 以下のサンプルファイルを参考にしてください。 --- [管理番号 1157] (最終更新 2001/10/14 11:51:14) Q. Mew を使っていますが、メールが文字化けして読めないことがあります。 jless などで Mew を経由せずに直接読むと読めるのですが、どうすれば Mew でも読めるでしょうか。 A. これは、 * Content-Type field で charset が指定されていないのに、本文が us-ascii 以外の文字コードセットになっており、なおかつ Mime-Version field が含まれている。 * Content-Type field で指定された文字コードセットと実際の文字コードセッ トが合っていない。 * Content-Type 行が以下のような形式になっている。 Content-Type: Text/Plain; charset=iso-2022-jp などといった場合に起こります。 対処法については info の Mew[.jis]→Viewing→illegal を見ましょう。 また、 の 「規格違反のメッセージ」の項にも載っています。 最後の例は、mail server が Solarisで、local mailer が /bin/mail の場合 によく起こります。この場合には、mail server の管理者に local mailer (/bin/mail から /usr/lib/mail.local へ) の変更を依頼しましょう。 --- [管理番号 1160] (最終更新 2001/05/07 03:21:08) Q. Sharity-Light で Windows のディスクをマウントしましたが、 すでにあるファイルへの上書きや追加書き込みをしようとすると <ファイル名>: Input/output error. というエラーが出てしまいます。 A. shlight に -e オプションをつけてマウントしてください。 たとえば、Windows 側のマシン名が WIN、共有するフォルダの 共有名が MYDOC で、これを FreeBSD 側の /win にマウントする 場合なら、 # shlight //WIN/MYDOC /win -e としてマウントします。 --- [管理番号 1166] (最終更新 1999/11/03 04:54:08) Q. kterm 上で jman コマンドを使って日本語マニュアルを読みたいのですが、 うまく表示できず、文字化けしてしまいます。 A. まず、jman コマンド上だけ日本語が表示できないのか、それとも kterm 上で日本語が一切表示できないのかを調べて下さい。例えば % gzip -dc /usr/share/man/ja/man1/ls.1.gz はうまく表示できますか? もしこれも化けてしまうなら、X 上での 日本語文字表示のための環境設定がうまくいっていないのでしょう。 [管理番号 356] [管理番号 357] を参考にして下さい。 先程のコマンドでうまく表示できたなら、環境変数を見直してください。 シェルに csh・tcsh をお使いなら、 setenv JLESSCHARSET japanese setenv PAGER jless setenv LANG ja_JP.EUC sh・bash をお使いなら export JLESSCHARSET=japanese export PAGER=jless export LANG=ja_JP.EUC として、 % jman ls として下さい。うまくいったら、上記の設定を ~/.cshrc (csh・tcsh) や ~/.profile (sh・bash) に書き込んでおくとよいでしょう。 それでも文字化けをする場合は、jman の catman (キャッシュのようなもの) が 残ったままになっているのかもしれません。/usr/share/man/ja_JP.EUC もしくは /usr/share/man/ja 以下で # rm cat?/* と catman をクリアしてから、再度やり直して下さい。 なお、古い FreeBSD に付属する jman には、この他にもいろいろと不具合が 起こることがあります。 を参照して下さい。 --- [管理番号 1170] (最終更新 1999/02/24 04:24:23) Q. Windows95 上で Partition-It (version 1.02) というソフトで Windows95 側の partition を変更したら、FreeBSD が起動できなくなりました。 A. Partition-It がハードディスク内のスライス番号を変更してしまったため です。シングルユーザモードで起動し /etc/fstab の内容を修正して対処しま しょう。 [管理番号 298] 参照。 手順 (FreeBSD のスライスが wd0s2* に変わった例) 1. インストールフロッピで起動し、ディスクラベルエディタで現在のスライス (wd0s2a など) を確認します。単に Q でディスクラベルエディタを終了し ます。 2. HDD から起動します。 3. "Enter full pathname of shell or RETURN for /bin/sh:" で止まったら、 RETURN を入力し、sh で作業します。/bin/csh でも作業可能ですが、標準で は必要な path が設定されていないかもしれません。 4. 臨時に元の / パーティションを /mnt へマウントします。fsck で [y/n] は `y'を入力します。 # fsck /dev/wd0a # mount /dev/wd0a /mnt 5. 以下のようにして新しいデバイスファイルを追加します。デバイス名や引 き数などは十分確認してください。 # cd /mnt/dev # sh MAKEDEV wd0s2a または # cd /mnt/dev # mknod rwd0s2a c 3 0x00030000 # mknod rwd0s2b c 3 0x00030001 # mknod rwd0s2c c 3 0x00030002 # mknod rwd0s2d c 3 0x00030003 # mknod rwd0s2e c 3 0x00030004 # mknod rwd0s2f c 3 0x00030005 # mknod rwd0s2g c 3 0x00030006 # mknod wd0s2a b 0 0x00030000 # mknod wd0s2b b 0 0x00030001 # mknod wd0s2c b 0 0x00030002 # mknod wd0s2d b 0 0x00030003 # mknod wd0s2e b 0 0x00030004 # mknod wd0s2f b 0 0x00030005 # mknod wd0s2g b 0 0x00030006 注: wd0sMN の M、N が以下の対応になります (FreeBSD 2.2.[56] の場合)。 わかりにくいので従来の /dev/wd0s* を ls -l して、十分理解してから mknod しましょう。 M 1 0x0002000* 2 0x0003000* 3 0x0004000* 4 0x0005000* 5 0x0006000* N a 0x000*0000 b 0x000*0001 c 0x000*0002 d 0x000*0003 e 0x000*0004 f 0x000*0005 g 0x000*0006 h 0x000*0007 6. 臨時のマウントをはずします。 # cd / # umount /mnt 7. 現在のパーティションを必要なだけ一つずつ fsck /dev/wd0s2a などとし ます。[y/n] は `y'を入力します。 8. たとえば以下のようにして各パーティションをマウントします。 # mount -u /dev/wd0s2a / # mount /dev/wd0s2e /var # mount /dev/wd0s2f /usr マウントポイントなどを忘れている場合は、cat /etc/fstab で以前の設定を 参考にしましょう。 9. うまくマウントできたら、vi /etc/fstab で新しい設定に修正します。 10. 正常に boot できるまで復旧できたら、将来苦労しないためにも /dev 以 下で全ての wd0s* を MAKEDEV で作っておくとよいでしょう。 --- [管理番号 1176] (最終更新 1999/02/24 04:27:18) Q. root 宛に cron で毎日送られてくる security check output に、 checking setuid files and devices: マシン名 setuid diffs: 27c27 < -r-sr-xr-x 5 root bin 290816 Mar 13 19:01:45 1998 /usr/bin/hoststat --- > -r-sr-xr-x 5 root bin 290816 Jul 27 02:00:05 1998 /usr/bin/hoststat 36c36 < -r-sr-xr-x 5 root bin 290816 Mar 13 19:01:45 1998 /usr/bin/mailq --- > -r-sr-xr-x 5 root bin 290816 Jul 27 02:00:05 1998 /usr/bin/mailq などと書いてあり、タイムスタンプが変更されている様です。何が起こったの でしょうか。 A. security check では、suid や sgid されたファイルについて、タイムス タンプやファイルサイズを含む差分を毎日作成して、管理者向けにメールを送 ります。 自分あるいは他の管理者がバージョンアップやインストール作業をした場合は、 作業内容と変更点の照合を行い、不審な点がないかを調べれば良いでしょう。 自分あるいは他の管理者が誰も作業を行っていない筈なのに、変更点が送られ て来た場合は、オリジナルのファイルが残っていれば、md5(1) あるいは diff(1) でファイル自体が修正されているかどうかを調べます。 ファイル自体が修正されている場合は、侵入者の痕跡である可能性があります。 ファイル自体が変更されていない場合、OS 自体のバグによるものと考えられ ます。以下の記事で始まるスレッドが参考になるでしょう。 このような場合に備えて、find(1)、md5(1) などを利用して、あまり変更され ないはずのファイルの一覧を作っておくのは良い考えです --- [管理番号 1178] (最終更新 2000/12/07 02:34:34) Q. Wnn4/Wnn6 を使っています。初めて Wnn を使う時、個人辞書および頻度情 報ファイルが /usr/local/lib/wnn/ja_JP/dic/usr 以下に作られてしまうのですが、これを 自分の home directory 以下に作る 事はできないでしょうか? A. Wnn の設定を変えればできます。Wnn の設定はmule (egg) では ${HOME}/.eggrc、kinput2 などは ${HOME}/.wnnenvrcで行ないます。また、 uum は .uumrc で読み込む wnnenvrc を指定できるので、それで home directory にある .wnnenvrc を指定します。さらに、xwnmo は . ximrc で 参照する uumrc を指定します。 system 全体で変更する場合は共通の eggrc-wnn や wnnenvrc を変更します。 1 ユーザーとして行ないたい時は、default の eggrc、wnnenvrc を home directory にコピーして、個人辞書や頻度ファイルを home directory の下に 保存するように編集します。 ports/packages を使ってインストールした場合、default の eggrc は /usr/local/lib/xemacs-20.4/lisp/egg/eggrc-wnn /usr/local/share/mule/19.34/lisp/eggrc-wnn のような path におかれています。default の wnnenvrc は、Wnn4 なら /usr/local/lib/wnn/ja_JP/wnnenvrc にあるでしょう。Wnn6 では /usr/local/OMRONWnn6/wnn6fbsd/ja_JP/wnnenvrc にあるはずです。(必要なら uumrc も同じ directory にあります)。 詳しい説明が以下のFAQ の Q.1-5,1-6 にありますので、そちらを参照して下さい。 Wnn FAQ: また、jman wnnenvrc/uumrc/ximrc も参照してみて下さい。 簡単に済ませたければよしだともこさんと新出@奈良女子大さん が、Vector の にて、 「Wnn4の変換を賢くする設定ファイル」という題で、.eggrc を公開され ています。これを home directory に置くだけで、頻度情報ファイルが ${HOME}/.wnn4/ または ${HOME}/.wnn6/ 以下に作られるようになります。 ただし以下で説明する xemacs との共存は考えられていないようです。 .eggrc について: mule と xemacs 20.x では微妙に異なる点があるので共存させる場合は工夫が 必要です。 1) 別ファイルにする default では home directory におく egg の設定ファイルの名称は .eggrc ですが、これは emacs の egg-startup-file 変数で指定できます。この変数 に emacs の種類に応じて適当な名称を設定します。 2) .eggrc の中で判別する たとえば mule 用の eggrc-wnn でパラメーターを設定している部分 (set-wnn-param 2 10 2 45 100 200 5 1 40 -100 200 -100 200 80 200 200 200) を以下のように変更することで同じ .eggrc を mule と xemacs の両方で利用す ることができます。 注意: ここで示されているパラメータは Wnn4 用のものです。Wnn6 を使っている 場合は、eggrc-wnn の該当する部分から Wnn6 用のパラメータを写してください。 (cond ((boundp 'MULE) (set-wnn-param 2 10 2 45 100 200 5 1 40 -100 200 -100 200 80 200 200 200)) ((string-match "XEmacs" emacs-version) (wnn-server-set-param '(wnn_n 2 wnn_nsho 10 wnn_hindo 2 wnn_len 45 wnn_jiri 100 wnn_flag 200 wnn_jisho 5 wnn_sbn 1 wnn_dbn_len 40 wnn_sbn_cnt -100 wnn_suuji 200 wnn_kana -100 wnn_eisuu 200 wnn_kigou 80 wnn_toji_kakko 200 wnn_fuzokogo 200 wnn_kaikakko 200)))) --- [管理番号 1179] (最終更新 2001/11/17 19:15:36) Q. FreeBSD を NFS サーバにして、NFS クライアントに NEWS-OS 4.2.1/6.1.2、 SunOS 4.1.3_U1 のような古めの OS を用いたところ、NFS クライアント側で ファイルの読み込みに時間がかかる時があります。そのときクライアント側の syslog にはこんな記録が残っていました。 Nov 6 13:59:36 mimas vmunix: NFS server hyperion not responding still trying Nov 6 13:59:36 mimas vmunix: NFS server hyperion ok A. nfsd(8) の -t オプションが原因のようです。TCP 経由での NFS は比較的最 近策定されたものなので、古めの OS ではまず使えません。実際、上記のクラ イアントはいずれも TCP 経由での NFS は使えません。 そこで、/etc/rc.conf に nfs_server_flags="-u -n 4" と追加して、UDP 経由の NFS のみを指定します。 (2.2.1-RELEASE の場合は /etc/rc を直接書き換えましょう)。 その後 NFS サーバを再起動すればよいでしょう。ただし、元の情報は FreeBSD 2.2.x-RELEASE の頃のものなので、現在でもこのような現象が再現す るかは分かっていません。 --- [管理番号 1180] (最終更新 1999/04/07 06:20:59) Q. メルコのハイパーメモリーCPU は FreeBSD(98) で利用可能ですか? A. このボードには CPUと 増設メモリスロットが付いていますが、 に置いてある excache-*.* を持ってきて FreeBSD(98)のカーネルソースに patch を当ると CPU、増設メモリともに利用できるようになります。 現時点 (1999/01/15) での対応製品は EUD-HP, EUA-QP, EUF-EP, EUZ-QP, EUB-HP, HAS-33QP で、2.2.1, 2.2.2, 2.2.5, 2.2.6, 2.2.7, 3.0 用のパッチが用意されています。 将来的には FreeBSD(98) のソースに取り込んでもらう予定だそうですが、 2.2.5 以降の動作報告がまだあまりないので、それを待っているところという ことなので、使っているみなさんは是非、動作報告を送りましょう。 HNE-33QP、HND-33QP はデータがないのできちんと対応できていないそうです。 対応するためには、MS-DOS か Windows95/98 環境で調べてもらいたいことが あるそうなので、持っている人はできれば作者に連絡して下さい。 また、これ以前のハイパーメモリ CPU (EUF-H0M など) は FreeBSD(98) に特 に patch をあてなくとも、カーネルコンフィギュレーションファイルに options "CPU_MELCO_EX_MEMSLOT0=slot0 の容量" options "CPU_MELCO_EX_MEMSLOT1=slot1 の容量" options MAXMEM=(元々のメモリ容量+ハイパーメモリCPU上のメモリ容量) という形で容量を指定すれば利用できます(Excache-1.3 の場合)。 例えば、元々16MB、EUF 上に32MB搭載していれば options MAXMEM=49152 #48MB または options "MAXMEM=(48*1024)" と書けばよいでしょう。詳しくは README を参照して下さい。 FreeBSD(98) 非公式ガイド: の「その他の情報」も参照して下さい。 --- [管理番号 1181] (最終更新 1999/04/07 06:21:38) Q. ports&packages の各種ソフトをインストールしたのですが、そのパッケー ジでインストールしたソフトを実行するためのコマンド名がわかりません。 pkg_info -a | more で、どういうパッケージをインストールしたのかはわかるのですが、実際に入 力するコマンドがわかりません。たとえば、 ImageMagick-4.2.1 をインストー ルしても、コマンドが /usr/local/bin/display、 /usr/local/bin/convert 等 だとはなかなか気付きません。 このパッケージの名前と、実際に入力するファイル名というかコマンドを、対に なった一覧表として表示する方法がないでしょうか? A. 確かに、package名だけではわかりづらいですね。 pkg_info のコマンドオプション -L で、パッケージ名及び関連ファイル一覧が表示 されますので、 pkg_info -a | more あるいは pkg_info -a | grep なんとか として具体的なpackage名をみつけ、 pkg_info -L package名 | more とするとよいでしょう。 現在のところ pkg_info の引数の package名は完全一致しなければなりません。 --- [管理番号 1187] (最終更新 2000/11/08 01:28:26) Q. FreeBSD のインストーラによるインストール時に追加パッケージを インストールしようとすると、途中で「???が見つかりませんでした」 と言うメッセージが出ます。 CD-ROM の中にはそのパッケージがないのでしょうか? A. 結論から言ってしまえばその通りです。 パッケージは年々数が多くなり、今ではCD-ROM 一枚に入る容量を越えて います、そこで依存関係を考慮して分割されて提供されている場合があり CD-ROMの入れ換えが必要になります。収録内容を記述してあるファイルが きちんと整備されていれば、途中でCD-ROM を差し換える必要はありません パッケージの収録内容のリストはFTP インストール用にすべてが記載されて いるものが配布されていますので、CD-ROM を作成する人がきちんとCD-ROM に収録したパッケージ内容のリストに修正してない場合に不具合が出ると 思われます。 インストール時、追加したいパッケージがリストに出てこない場合はCD-ROM を入れ換え、インストール後再度インストーラを立ち上げて試してください。 また、ネットワークが確立しているならば、FTP インストールが確実です。 失敗したものをメモしておいて、pkg_add コマンドでインストールしても いいでしょう。 --- [管理番号 1188] (最終更新 1999/02/24 04:29:02) Q. Wnn4.2 を使っています。変換効率に不満があるのですが、この Wnn4.2 を もっと賢くする方法はありませんか? A. 辞書を増やす、補強するという方法があります。 ports/packages の標準ではインストールされている辞書のうち、 tankan2.dic (JIS第2水準単漢字辞書) tankan3.dic (JIS補助漢字単漢字辞書, JIS X0212) は default では利用されませんが、Wnn4 の設定で追加できます。設定方法は wnnenvrc、eggrc-wnn などを参照して下さい。 ただし、Wnn3互換ライブラリの制限で利用できない場合があります ([管理番号 1097])。 「Wnn を賢くする方法」 で公開されている pubdic+-wnn-1.0.tar.gz gerodic-1.00.tar.gz pubdic+-sup-1.00.tar.gz を導入する事で、辞書を大幅に補強できます。なお、これらの辞書は FreeBSD 3.1-RELEASE 以後の ports/packages では最初から組み込まれて いますので、改めて導入する必要はありません。 導入方法については、各配布物に日本語の説明書が入っています。 導入も make; make install で済みますので、非常に簡単です。 gerodic-1.00.tar.gz については、file が分割されていて、それを一つに まとめないといけませんが、各 Kit#* というファイルの header と 後ろの 部分を削除して、 % sh ./Kit#1 として、これを Kit#7 まで続けると、g-jinmei.u.Z というファイルができます。 これを gerodic-1.00 directory に移して、 % uncompress g-jinmei.u.Z として、展開します。 その後 make; make install で終りです。 新しく辞書を増設した時の設定ファイルの書き方については、 pubdic+-wnn-1.0.tar.gz の中の omake というディレクトリに設定例を示した ファイルが入っているので、それを参考にすれば簡単でしょう。 また、専門用語の辞書を増やしたいという場合には、 が参考になるでしょう。 ~/.wnnenvrc、~/.eggrc の設定に関して補足しておきます: 参考: Software Design 1994.2 号記事 「Nemacs、Mule の日本語変換環境 -たまご- を賢く使う編」 1) Wnn4 に関して調べていると 「Wnn4 を賢くする辞書パラメータ」という話を 聞くことがあるでしょうが、こ のパラメータの ports/packages における 導入状況は以下のようになっています。 mule の eggrc-wnn: 2.2.6R より対応。 xemacs-mule の eggrc-wnn: 最初に ports に入った時から導入済。 Wnn4 の wnnenvrc: FreeBSD 2.2 系列、FreeBSD 3.0R では未対応。 3.1R では導入済 2) また、Wnn の場合は、変換候補が出てくる順番は単語の頻度だけでなく、 辞書ファイルの優先度にも影響されます。 標準の wnnenvrc, eggrc-wnn では辞書ファイルの優先度は 1 か 5 にしか なっていませんので、使う辞書を増やした場合、辞書の内容に合わせて こういう部分も手直ししてみるとよいかもしれません。辞書を設定する コマンドは setdic (~/.wnnenvrc)、 add-wnn-dict (~/.eggrc) です。 引数の意味については wnnenvrc のマニュアルを参照して下さい。 --- [管理番号 1205] (最終更新 1999/04/07 06:23:17) Q. natd のプライベート側からグローバル側のマシンのディスクを mount するとアクセスに失敗することがあります。 A. mount_nfs -T host:dir dir のように TCP モードで mount してください。この時に NFS Portmap: RPC: Program not registered というエラーが出たら,TCP モードでは mount できないので、 mount -t nfs -r 1024 -w 1024 host:dir dir のように readsize と writesize を小さくして mount してください。 --- [管理番号 1206] (最終更新 2001/03/07 02:08:46) Q. ノートパソコンに Samba をインストールしてから再立ち上げをすると、他の Windows マシンのネットワークコンピュータに Samba を動かしているマシン が出てきません。 A. 原因はいくつも考えられますが、これは PC カードイーサネット (PCMCIA Ethernet Card) を使った場合の典型的な症状です。ここでは、Samba を例に とって説明しますが、他にも Apache や named でも問題があることが知られ ています。 一口で言うと FreeBSD の起動シーケンスで、PC カードの認識前に Samba 特に nmbd(8) が起動されてしまう事が原因です。 まず、PAO-FAQ の 606 番を読んでください。 Samba については inetd(8) から起動させるようにする事でも問題を回避でき ますが、inetd への登録は無条件に可能なわけでは無く、Samba 以外のプログ ラムでもこの技が使えるという意味ではありません。Samba を ports/packages からインストールしたのならば、以下の様な手順で inetd から動かすように 変更できます。 1. Samba の起動スクリプトを削除します。 # rm -f /usr/local/etc/rc.d/samba.sh 2. /etc/inetd.conf で、以下の2カ所 "#" のコメントマークをはずして、 --- # Enable the following two entries to enable samba startup from inetd # (from the Samba documentation). # netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd 3. inetd に /etc/inetd.conf の変更を認識させます。 # kill -HUP `cat /var/run/inetd.pid` FreeBSD 3.2-RELEASE からは標準で TCP Wrappers が有効になってますので、 /etc/hosts.allow の設定を間違うと全く使えなくて悩む事になります。詳し くは hosts_access(5) や inetd(8) を確認してください。 もし、PC カードを使用中に抜き挿しするなら、/etc/pccard.conf のエントリ に以下の行を追加します。PC カードデータベースの書式については pccard.conf(5) や、PAO 方面のドキュメントを参考にしてください。 remove killall nmbd これで他の Windows マシンのネットワークコンピュータから、Samba を動か しているマシンにアクセス出来れば問題解決です。 --- [管理番号 1207] (最終更新 1999/04/07 06:23:54) Q. C言語の printf 文で日本語を表示させようとすると、コンパイル時に エラーが出るときがあるんですが(コンパイルできる時もある)。 A. ソースの日本語コードが JISコードになっていませんか? % echo 'あいう' | nkf -j | hexdump -c 0000000 033 $ B $ " $ $ $ & 033 ( B \n でわかるように、JIS コードの「あ」には " というキャラクタコードが 含まれているため、printf("..") の "" の対応がおかしくなり コンパイル時にエラーになります。しかし % echo 'ほげほげ' | nkf -j | hexdump -c 0000000 033 $ B $ [ $ 2 $ [ $ 2 033 ( B \n のように、JIS コードには常に " が含まれているわけではないので、 表示させたい文字によって、エラーになったりならなかったりします。 EUC だと、日本語部分のコードは ASCII コードとは重ならない値を使うため、 エラーにはなりませんので、ソースを EUC コードに変換してください。 変換方法は [管理番号 1253] Q. ファイルの文字コードを変換したいのですが。 [管理番号 1289] Q. 新規ファイルをエディタで作成したときの、文字コード(JIS、EUCなど)を 指定したいのですが。 を参照してください。 --- [管理番号 1209] (最終更新 1999/05/07 00:49:33) Q. リモートプリンタで PostScript ファイルを印刷したいのですが、ローカ ルホスト側で Ghostscript にフィルタを使って通すと PostScript スクリプ トが印字されてしまいます。 A. 以下のことを確認して下さい。 1. /etc/printcap の記述は正しいですか? FreeBSDのバージョンが古過ぎませんか? 現在のバージョン (2.2.8R で確認) では、リモートプリンタの設定 ("rm=リモートホスト名") がしてあってもローカル側でのフィルタの設定 ("if=フィルタ") は有効ですが、古いバージョンでは "rm" の設定があると "if" の設定は無効になってしまいます。 プリンタスプール ("sd") が他のエントリと重複していませんか? プリンタスプールディレクトリは各エントリ毎に別個にして下さい。 FreeBSD のバージョンを上げて見て下さい。 古いバージョンで対応させる場合は [FreeBSD-users-jp 14570] を参考に /etc/printcap を書き直して下さい。 2. フィルタの記述は正しいですか? Ghostscript をローカルホスト側で通す場合、フィルタが正しいことを確認し て下さい。とくに、プリンタのデバイス名が、使用する Ghostscript に対応 しているか調べて下さい。("gs -h" コマンドで対応デバイス一覧が出てきま す。) できれば、使用するプリンタをまずローカルに接続し、フィルタを通して PostScript ファイルが印刷できることを確かめて下さい。 設定例: リモートホスト "rhost" につながるプリンタ "rps" からプリントする。 プリンタのデバイスは "epag" を使用する。 フィルタは "/usr/local/libexec/psfilter.sh" とする。 ------ /etc/printcap -------- r-ps|remote printer with gs:\ :lp=:rm=rhost:rp=rps:\ :sd=/var/spool/output/rps:\ :if=/usr/local/libexec/psfilter.sh:\ :lf=/var/log/lpd-errs:\ :mx#0:sh: ---------------------------------- -----/usr/local/libexec/psfilter.sh ------------ #!/bin/sh /usr/local/bin/gs -q -dNOPAUSE -sDEVICE=epag -sOutputFile=- - quit.ps ----------------------------------------------- --- [管理番号 1211] (最終更新 1999/02/24 04:28:27) Q. xanim で Quicktime などの animation file を表示すると メモリ不足のためエラーになります。xanim で使用するメモリ量を 減らす方法はありませんか? A. xanim は デフォルトでは まずファイル全体をメモリに読み込みますが、 オプションを指定することでメモリの使用量を減らすことが可能です。 とりあえず man を見る癖をつけると、今後幸せになれるかもしれません。 xanim(1) より +f Don't load anim into memory, but read each section only when needed. This is supported only for AVI, QT, IFF, FLI, FLC, JPEG, MPEG and DL animations. This option is cleared by the +b option. This saves memory at the cost of speed. このオプションを指定した場合、ディスクアクセスが遅いと、ときどき ギクシャクした動きになります。 xanim がデフォルトでファイル全体をメモリに読み込もうとするのは、 多くの場合その方が効率良く再生できると考えてのことのようです。 --- [管理番号 1217] (最終更新 1999/03/10 01:59:32) Q. qpopper の USER/PASS認証で ユーザ として root,toor,daemon,operator,bin,games,news,man,uucp,xten,nobody を指定すると、正しいパスワードを与えているのに以下のように 失敗してしまいます。なぜですか? % telnet news pop3 Trying 192.168.1.1... Connected to foo.bar.org. Escape character is '^]'. +OK QPOP (version 2.53) at foo.bar.org starting. <3185.919126589@foo.bar.org> USER news +OK Password required for news. PASS HogeHogeFuga -ERR Password supplied for "news" is incorrect. +OK Pop server at foo.bar.org signing off. Connection closed by foreign host. A. qpopper には、接続を拒否するユーザリストを与えることができます。 FreeBSD の portsや、packages からインストールした場合、デフォルトでは Makefile で ftp の接続拒否ユーザリストである /etc/ftpusers を指定してます。 O_DEFS= -DSETPROCTITLE -DKEEP_TEMP_DROP -DBSD44_DBM -DBIND43 \ -DBULLDB -DNONAUTHFILE='\"/etc/ftpusers\"' ユーザ news は、/etc/ftpusers にデフォルトで記述されていますので 失敗するわけです。 では、/etc/ftpusers からユーザ news の記述をはずせばいいかというと、 そうではないようです。 ユーザ news は、/etc/passwd にデフォルトで存在するユーザで、UID が 8 です。 恐らくセキュリティ上の理由からだと思われますが、 qpopper は UID が 10以下のユーザの接続を拒否するようです。 実際、認証は、 Access is blocked for UIDs below 10 というエラーで失敗します。 ユーザ news で qpopper に接続する理由が単に news 宛のメイル取得であれば、 /etc/aliases で一般ユーザに振ることで解決できるでしょう。 --- [管理番号 1218] (最終更新 1999/06/03 03:50:53) Q. package/ports にある、日本語対応の perl (jperl) をインストール したのですが、日本語に対して split 等を使っても、オリジナルの perl と同じ挙動になります。 A. jperl (パッケージ名 ja-perl) の日本語機能を使う場合は、 1) スクリプトの先頭行を #!/usr/local/bin/perl でなく、 #!/usr/local/bin/jperl と書く。 2) 日本語を使う前に perl スクリプトに use I18N::Japanese qw(re); と書いておく。 のどちらかを行ってください。どちらの条件も満たしていない場合、 jperl はオリジナルの perl として動作します。 また、処理対象の文字列の文字コードを確認してください。→[管理番号 1254] jperl は、コンパイル時に EUC か SJIS のどちらかを指定してコンパイル されます。この指定と、処理する文字列の文字コードが合っていないと 正しく処理されません。package/ports の jperl は EUC版になっています。 ただし、-Lsjis オプションをつけると SJIS 版として動きます。 つまり、スクリプトの先頭を #!/usr/local/bin/jperl あるいは #!/usr/local/bin/jperl -Leuc とすると EUC を扱えますし、 #!/usr/local/bin/jperl -Lsjis とすれと SJIS を扱うことができます。 --- [管理番号 1224] (最終更新 1999/07/02 16:27:49) Q. FreeBSD 3.1-RELEASE を DOS 領域からインストールしようと FREEBSD という ディレクトリに配布ファイルを置いてインストールしようとしましたが、 インストールできません。 A. これは 3.1-RELEASE のインストーラのバグです。3.2-RELEASE では修正されて います。また 3.1-RELEASE の場合でも、以下のどれかのディレクトリ構成に 従ってファイルを置くと、DOS領域からインストールできます。 / (直下) 例えば /bin, /src 等 /releases 例えば /releases/bin, /releases/src 等 /版数 例えば /3.1-RELEASE/bin, /3.1-RELEASE/src 等 /releases/版数 例えば /releases/3.1-RELEASE/bin, releases/3.1-RELEASE/src 等 例えば、\FREEBSD というディレクトリ名を \RELEASES に変えると、 インストールできるようになります。 --- [管理番号 1226] (最終更新 1999/05/07 00:50:05) Q. PC-9821Nr13 で XFree86 3.3.3.1 の XF98_SVGA がうまく動作しません。 XF98_SVGA -probeonly を実行すると、画面の上端と中心付近に明るい太めの 帯が走り、ほかは真っ暗な状態になります。文字は全く表示されません。 A. XF98_SVGA 中でこの機種のグラフィックチップ (Cirrus Logic GD7555) を 初期化している部分に TFT 液晶の機種に依存した値が使われており、DSTN 液 晶の機種では上記の症状が起こることが何例か確認されています。 [FreeBSD-users-jp 38632] に書かれているようなソースの修正を行い、 XF98_SVGA を作り直すと、動作するかもしれません。 なお、XF98_SVGA はまだ十分なテストが行われていませんので、Xjdoc.tgz に 含まれている README98.1st、README98 を読んで、動作レポートを送るように してください。 --- [管理番号 1234] (最終更新 1999/05/07 00:50:22) Q. NAT-patch をあてた iij-ppp をオンデマンドダイアルアップモードで起動すると、 コマンドプロンプトがすぐに返ってきません。数十秒後に勝手にダイアルを開始し、 ようやくコマンドプロンプトが返ってきます。 A. DNS を立ちあげていませんか?しかも DNS で解決できない場合、外部 (プロ バイダー等) の DNS に問い合わせるように設定していませんか? もしそうなら、 /etc/ppp/ppp.conf に add default ... という行があると思います。ppp はこの default をホスト名だと解釈して IP アドレスを引きに行きます。でもこの時点ではまだ ppp は起動していませんから、 タイムアウトを待つことになります。それが数十秒待つ原因です。その後 ppp が 起動するとあらためて DNS に問い合わせてしまうので、ダイアルアップして しまいます。 解決策としては、下記のいずれかが考えられます。 1. /etc/ppp/ppp.conf で add 0.0.0.0. ... とする。 2. /etc/host.conf を hosts bind の順に設定し、/etc/hosts に 0.0.0.0 default を加える。 --- [管理番号 1235] (最終更新 1999/03/10 02:00:29) Q. packageをインストールしたのですが、実行すると ELF interpreter /usr/libexec/ld-elf.so.1 not found Abort で止まってしまいます。 A. それは 3.X系のバイナリです。 FreeBSD 2.X系では 普通は 3.X 系のバイナリは動きません。 2.X系には 2.X系のpackageをインストールしましょう。 どうしても、3.X のバイナリを動作させたい場合には、2.2以降(?)であれば、 3.X系から、ld-elf.so.1 や必要とされる ELF の libc.so.?? を、 持ち込めば不可能ではありません。が、library の version 管理等考えると お勧めできません。 --- [管理番号 1238] (最終更新 2000/05/24 20:49:50) Q. FreeBSD 3.x で互換ライブラリ (compat* 配布ファイルに含まれます) も install してあるはずなのに、以下のようなメッセージが出て、昔のバイナリ が実行できません。 ld.so failed: Can't find shared library "libc.so.2.1" A. a.out 形式の互換ライブラリは /usr/lib/compat/aout/ に存在しないと いけないはずですが、バグのため一部は /usr/lib/compat/lib*.so.*.* として インストールされてしまいます。これは 3.3-RELEASE で修正されていますが、 それより前のリリースをお使いなら次の様に対処してください。 # mv /usr/lib/compat/lib*.so.*.* /usr/lib/compat/aout/ # ldconfig -aout -R このとき rc.conf(5) で変数 ldconfig_paths_aout に /usr/lib/compat/aout が含まれている事を確認してください。もし抜けていたら適切に修正して、 リブートするか ldconfig(8) の -m オプションを使ってください。 --- [管理番号 1243] (最終更新 1999/04/07 06:49:20) Q. NAT によって異なるネットワークに分割されている Windows 機の間で、 ファイルやプリンタの共有を行いたいのですが。 A. ファイル共有やプリンタ共有は次の要領で行います。  ・プロトコルを TCP/IP とする。  ・WINS を立ててどのマシンがどこに属しているかを教える。 (もしくは、LMHOSTS で指定する)  ・静的NAT情報を設定する。 以下に設定例を示します。ここでは、Windows におけるコンピュータ名の 解決に LMHOSTS を使い、また NAT として FreeBSD2.2.8 で IP Filter3.2.10 を用いているものとします。また、この例では、 hostA: public なネットワーク上 (123.45.67/24) の Windows 機 hostB: local なネットワーク上 (192.168.1/24) の Windows 機 とし、この2機間で共有を行うとします。 1. Windows 機で LMHOSTS を設定する。 ・hostA の LMHOSTS IPアドレス: IP filter 機 に割り当てられている public なIPアドレス ホスト名: hostB の Windows 上におけるコンピュータ名 ・hostB の LMHOSTS IPアドレス: hostA に割り当てられている public なIPアドレス ホスト名: hostA の Windows 上におけるコンピュータ名 (hostAにおける Window s上のコンピュータ名を、DNS で指定されている ホスト名と同じにしている時は、hostB の LMHOSTS を設定しなくても良い 場合がある。) 2. NAT 機で静的 NAT の設定をする。 IP Filter の場合、/etc/natrulesに、 rdr de0 123.45.67.0/24 port netbios-ssn -> 192.168.1.1 port netbios-ssn rdr de0 123.45.67.0/24 port netbios-dgm -> 192.168.1.1 port netbios-dgm を加える (192.168.1.1は hostB のIPアドレス、de0 は NAT 機の public 側の ネットワークインターフェースのドライバ)。 (投稿者の環境では、hostA、hostBいずれからでも[ネットワークコンピュータ] では相手のマシンが見えません。[スタート]-[検索]-[ほかのコンピュータ] とし、さらに相手のコンピュータ名を明示して検索することで、相手を 見ることが出来ます。) --- [管理番号 1247] (最終更新 2000/05/24 20:50:08) Q. Linux(x86) 版の MATLAB を FreeBSD で使えますか? (keyword: MATLAB, Linux, emulation) A. 使えます。もちろんライセンスの問題はこれとは別に解決する必要があります。 FreeBSD 2.2.8-STABLE での例を紹介します。これ以外方法や、他の動作環境 での実績があれば QandA に報告して追加・修正して下さい。 [概略] 適当な Linux マシンに Linux(x86) 用の MATLAB をインストールし、その ディレクトリを FreeBSD マシンが NFS マウントします。FreeBSD では、linux エミュレーション機能によってこのディレクトリ中の MATLAB を実行します。 (試した環境は、FreeBSD が 2.2.8-STABLE、MATLAB が 5.2.1 で Linux (Debian 2.2) マシンにインストールされ、ネットワークフローティングの ライセンスは Solaris 2.6 が管理しているという環境です) [手順] Step 0.(適当なマシンに MATLAB をインストールし NFS export する) ・NFS サーバとなる Linux マシンに、Linux(x86) 版のバイナリを含めて MATLAB をインストールし、少なくともそのマシンで使えるようにします。 ・MATLAB をインストールしたディレクトリ (例えば /usr/local/matlab と します) を、FreeBSD マシンに対して NFS export します。 Step 1.(FreeBSD マシンで linux エミュレーション機能を有効にする) ・linux_lib-2.6.1 を packages/ports からインストールします。ただし、 FreeBSD 3.3-RELEASE から linux_lib は linux_base に置き換えられた ため、この QandA の手順では動作しないかもしれません。 ・linux(8) エミュレータ・カーネルモジュールをロードします。また、 rc.conf(5) で linux_enable=YES とすればブート時に自動的に実行します。 Step 2.(MATLAB の linux(x86) 版のあるディレクトリをマウントする) ・上記の例に従って、mount -t nfs server:/usr/local/matlab /matlab とし、ls /matlab で bin や etc 等中身が見えるようにします。server は Linux マシンのホスト名、/matlab は予め mkdir しておきます。また、 fstab(5) に書いておくか amd(8) などを併用すれば便利でしょう。 Step 3.(FreeBSD マシンに必要な linux のライブラリを追加する) ・MATLAB の動作に不足している linux のライブラリを、/compat/linux/lib に追加します。/compat/linux/usr/bin/ldd /matlab/bin/* などと実行し、 見付からないライブラリを MATLAB をインストールした Linux 側の /lib からコピーすれば良いでしょう。 (ld-linux* は特に重要そうなのだが、取捨選択が私には難しい。そこで Linux 側の /lib を全部コピーした。linux_lib が上書きされるし、必要 以上にコピーするので乱暴かも知れないが、私の場合はこれで動作した。 現状は[付録]のようになっている) ・ライブラリを追加したら /compat/linux/sbin/ldconfig を実行します。 Step 4.(MATLAB を実行する) ・例えば、/matlab/bin/matlab -lnx86 によって、MATLAB を使用できます。 更にライブラリが不足しているようなら Step 3.を繰り返します。 [使用感] 少なくとも DEMO は全て実行できます。 音も出ます。(sb なサウンドドライバで確認) [付録] % ls -il /compat/linux/lib total 6031 749 -rwxr-xr-x 1 root wheel 45017 Feb 21 14:37 ld-2.0.7.so* 747 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 ld-linux.so.1@ -> ld-linux.so.1.9.10 124 -rwxr-xr-x 1 root wheel 21367 Oct 26 1996 ld-linux.so.1.7.14* 773 -rwxr-xr-x 1 root wheel 24396 Jan 14 12:23 ld-linux.so.1.9.10* 141 lrwxrwxrwx 1 root wheel 11 Mar 9 19:10 ld-linux.so.2@ -> ld-2.0.7.so 736 -rwxr-xr-x 2 root wheel 99488 Jan 14 12:23 ld.so* 125 -rwxr-xr-x 1 root wheel 24580 Oct 26 1996 ld.so.1.7.14* 736 -rwxr-xr-x 2 root wheel 99488 Jan 14 12:23 ld.so.1.9.10* 750 -rw-r--r-- 1 root wheel 2768 Feb 21 14:37 libBrokenLocale-2.0.7.so 142 lrwxrwxrwx 1 root wheel 24 Mar 9 19:10 libBrokenLocale.so.1@ -> libBrokenLocale-2.0.7.so 751 -rw-r--r-- 1 root wheel 651436 Feb 21 14:37 libc-2.0.7.so 134 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libc.so.5@ -> libc.so.5.4.46 128 -rwxr-xr-x 1 root wheel 705995 Oct 26 1996 libc.so.5.3.12* 139 -rwxr-xr-x 1 root wheel 1861963 Apr 11 1997 libc.so.5.4.23* 819 -rw-r--r-- 1 root wheel 586732 Mar 9 11:46 libc.so.5.4.46 143 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libc.so.6@ -> libc-2.0.7.so 724 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libcom_err.so.2@ -> libcom_err.so.2.0 117 -rw-r--r-- 1 root wheel 4100 Feb 11 08:13 libcom_err.so.2.0 752 -rw-r--r-- 1 root wheel 150380 Feb 21 14:37 libcrypt-2.0.7.so 144 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libcrypt.so.1@ -> libcrypt-2.0.7.so 753 -rw-r--r-- 1 root wheel 55588 Feb 21 14:37 libdb-2.0.7.so 145 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libdb.so.2@ -> libdb-2.0.7.so 754 -rw-r--r-- 1 root wheel 6612 Feb 21 14:37 libdl-2.0.7.so 126 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libdl.so@ -> libdl.so.1.7.14 135 lrwxrwxrwx 1 root wheel 15 Mar 9 19:10 libdl.so.1@ -> libdl.so.1.9.10 127 -rwxr-xr-x 1 root wheel 6983 Oct 26 1996 libdl.so.1.7.14* 816 -rwxr-xr-x 1 root wheel 5660 Jan 14 12:23 libdl.so.1.9.10* 146 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libdl.so.2@ -> libdl-2.0.7.so 735 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libe2p.so.2@ -> libe2p.so.2.3 733 -rw-r--r-- 1 root wheel 8820 Feb 11 08:13 libe2p.so.2.3 732 lrwxrwxrwx 1 root wheel 16 Mar 9 19:10 libext2fs.so.2@ -> libext2fs.so.2.4 728 -rw-r--r-- 1 root wheel 68524 Feb 11 08:13 libext2fs.so.2.4 136 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libfbm.so@ -> libfbm.so.1.0.0 132 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libfbm.so.1@ -> libfbm.so.1.0.0 130 -rwxr-xr-x 1 root wheel 72053 Oct 26 1996 libfbm.so.1.0.0* 755 -rw-r--r-- 1 root wheel 104192 Feb 21 14:37 libm-2.0.7.so 133 lrwxrwxrwx 1 root wheel 13 Mar 9 19:09 libm.so.5@ -> libm.so.5.0.8 129 -rwxr-xr-x 1 root wheel 36084 Oct 26 1996 libm.so.5.0.6* 138 -rwxr-xr-x 1 root wheel 76697 Apr 11 1997 libm.so.5.0.8* 157 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libm.so.6@ -> libm-2.0.7.so 746 -rw-r--r-- 1 root wheel 242644 Oct 30 22:57 libncurses.so.3.4 741 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libncurses.so.4@ -> libncurses.so.4.2 738 -rw-r--r-- 1 root wheel 240572 Dec 4 00:28 libncurses.so.4.2 756 -rw-r--r-- 1 root wheel 19044 Feb 21 14:37 libnsl-2.0.7.so 158 lrwxrwxrwx 1 root wheel 15 Mar 9 19:10 libnsl.so.1@ -> libnsl-2.0.7.so 757 -rw-r--r-- 1 root wheel 24660 Feb 21 14:37 libnss_compat-2.0.7.so 159 lrwxrwxrwx 1 root wheel 22 Mar 9 19:10 libnss_compat.so.1@ -> libnss_compat-2.0.7.so 758 -rw-r--r-- 1 root wheel 18096 Feb 21 14:37 libnss_db-2.0.7.so 160 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libnss_db.so.1@ -> libnss_db-2.0.7.so 759 -rw-r--r-- 1 root wheel 9976 Feb 21 14:37 libnss_dns-2.0.7.so 161 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libnss_dns.so.1@ -> libnss_dns-2.0.7.so 760 -rw-r--r-- 1 root wheel 30204 Feb 21 14:37 libnss_files-2.0.7.so 162 lrwxrwxrwx 1 root wheel 21 Mar 9 19:10 libnss_files.so.1@ -> libnss_files-2.0.7.so 761 -rw-r--r-- 1 root wheel 32092 Feb 21 14:37 libnss_nis-2.0.7.so 163 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libnss_nis.so.1@ -> libnss_nis-2.0.7.so 830 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libpam.so.0@ -> libpam.so.0.66 766 -rw-r--r-- 1 root wheel 96472 Feb 25 04:28 libpam.so.0.66 826 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libpam_misc.so.0@ -> libpam_misc.so.0.66 814 -rw-r--r-- 1 root wheel 5516 Feb 25 04:28 libpam_misc.so.0.66 748 -rw-r--r-- 1 root wheel 31708 Feb 10 12:38 libproc.so.1.9.0 764 -rw-r--r-- 1 root wheel 49524 Feb 21 14:37 libpthread-0.7.so 164 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libpthread.so.0@ -> libpthread-0.7.so 743 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libreadline.so.2@ -> libreadline.so.2.1 742 -rw-r--r-- 1 root wheel 176320 Feb 17 17:56 libreadline.so.2.1 762 -rw-r--r-- 1 root wheel 45104 Feb 21 14:37 libresolv-2.0.7.so 165 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libresolv.so.2@ -> libresolv-2.0.7.so 745 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libslang.so.1@ -> libslang.so.1.2.2 744 -rw-r--r-- 1 root wheel 226916 Oct 16 16:58 libslang.so.1.2.2 727 lrwxrwxrwx 1 root wheel 12 Mar 9 19:10 libss.so.2@ -> libss.so.2.0 726 -rw-r--r-- 1 root wheel 13972 Feb 11 08:13 libss.so.2.0 131 lrwxrwxrwx 1 root wheel 19 Mar 9 19:09 libtermcap.so.2@ -> libtermcap.so.2.0.8 137 -rwxr-xr-x 1 root wheel 11925 Oct 26 1996 libtermcap.so.2.0.8* 763 -rw-r--r-- 1 root wheel 6692 Feb 21 14:37 libutil-2.0.7.so 140 lrwxrwxrwx 1 root wheel 16 Mar 9 19:10 libutil.so.1@ -> libutil-2.0.7.so 737 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libuuid.so.1@ -> libuuid.so.1.2 833 -rw-r--r-- 1 root wheel 5700 Feb 11 08:13 libuuid.so.1.2 484567 drwxr-xr-x 2 root wheel 1024 Mar 8 14:24 security/ --- [管理番号 1249] (最終更新 1999/04/07 06:50:22) Q. ウイルスバスター98 を使っているのですが、tools/osbsbeta.exe と tools/osbs135.exe に対して PRESTO* というウイルスが発見されたんですが。 A. それは誤った警告です。実際にはウイルスに感染されていません。 詳しくはこちらをどうぞ。 --- [管理番号 1253] (最終更新 2001/08/12 05:24:59) Q. ファイルの文字コードを変換したいのですが。 A. nkf、qkc あるいは iconv を使いましょう。 % nkf file > file-jis (JISに変換) % nkf -e file > file-euc (EUCに変換) % nkf -s file > file-sjis (SJISに変換) qkc は ファイルを直接書き換えられるので、 % qkc -e file (EUCに変換) とすることもできます。 iconv は nkf や qkc などがサポートしている日本語文字コードの他に、 他言語の文字コードや unicode もサポートしています。 % iconv -f utf-8 -t euc-jp file > file-euc (UTF-8 から EUC に変換) % iconv -f utf-8 -t iso-2022-jp file > file-jis (UTF-8 から JIS に変換) % iconv -f utf-8 -t shift_jis file > file-sjis (UTF-8 から SJIS に変換) なお、iconv で JIS コードを変換する場合には ports/packages の iconv-extra もインストールした方が良いようです。 nkf、qkc、iconv のいずれも、ports/packages が用意されています。 さらに詳しい使用法は、コマンドと同時にインストールされる マニュアルページ nkf(1)、qkc(1)、iconv(1) を御覧下さい。 また、ファイルの文字コードを調べるには [管理番号 1254] を参照してください。 --- [管理番号 1254] (最終更新 2002/03/07 15:32:11) Q. ファイル中に使われている日本語部分の文字コードの種類を知るには どうしたらいいですか? A. port/package に textproc/coco というアプリケーションがあります (元々は mule に付属していたコマンドで、2002年3月に独立した port になりました。textproc/coco が見つからなければ mule をインストール してください)。 EUC・JIS・SJIS のファイルを読ませると、それぞれ % coco -q < file-euc In (*euc-china*unix): 3209 bytes % coco -q < file-jis In (*junet*unix): 3221 bytes % coco -q < file-sjis In (*sjis*unix): 3209 bytes と出力します。 なお、実際は日本語 EUC コードであるのにも関わらず、euc-china と判定して しまうというバグがあります。 他にも、 jless を起動して C-g ack -c kcc -c wkf -c kanji-type (むかし fj.sources に流れた) jcode.pl (単体のコマンドではないが、perl script 中で &jcode::getcode(*line) で判定可能) などの方法があります。 ファイルの文字コードを変換するには [管理番号 1253] を参照してください。 --- [管理番号 1255] (最終更新 2000/01/20 19:43:16) Q. 3.3-RELEASE を使っています。boot -c で起動して kernel のデバイスド ライバの設定を変更したのですが、再起動すると前回の 変更が有効になって いないようなのですが、kernel を make し直す以外に設定を変更する方法が あるのでしょうか。 A. 3.0-RELEASE から 3.1-RELEASE の間に kernel が a.out 形式から ELF 形 式に変更されました。これに伴って boot -c による USERCONFIG でのデバイ スドライバ設定の変更が kernel に記録されなくなりました。 /etc/rc には、 # snapshot any kernel -c changes back to disk here # this has changed with ELF and /kernel.config. とかいてあり、いつか、自動で save できるようになるようですが、 現在はできません。 次善の手段として以下の手順を行って下さい。 1. /boot/loader.rc または /boot/boot.conf というファイルが あれば、これが読み込まれます。(/boot/loader.rc が、優先されます。) (どちらもなければ /boot/loader.rc というファイルを作成しましょう。) 2. /boot/loader.rc に以下の内容を記述します。 userconfig_script_load="YES" また、読み込まれるファイル名は default では /boot/kernel.conf ですが、 /boot/defaults/kernel.conf ファイルにて userconfig_script_name="/boot/kernel.conf" と設定されているだけなので、これを /boot/loader.rc で上書きすればよ いでしょう。 3.1-RELEASE では書き方が異なり、 load -t userconfig_script /boot/kernel.conf となります。 3. /boot/kernel.conf というファイルに USERCONFIG で変更を行った、 あるいは、行いたい内容をそのまま記述しておくことでその config が 次回起動時に読み込まれます。 install 時に行った UserConfig は、/boot/kernel.conf に save され ています。 ただし、3.1-RELEASE では save されるファイルは /kernel.config です。 従って、install 時に save された設定をそのまま使うのであれば、 loader.rc には次のように書きます。 load -t userconfig_script /kernel.config (例) enable apm disable sio1 port sb0 0x220 pnp 1 0 os enable irq0 5 drq0 1 drq1 5 pnp 1 0 port0 0x220 port1 0x330 port2 0x388 pnp 1 1 os enable port0 0x200 pnp 1 2 os enable port0 0x620 port1 0xa20 port2 0xe20 quit また、/sbin/kget を用いて USERCONFIG にて行なった変更を読み出すことが できます。 3.1-RELEASE ではこのコマンドはありませんが、 /usr/src/release/picobsd/tinyware/kget に source がありますので、これ を make して使えばよいでしょう。 尚、上記の内容は、3.2-RELEASE、3.4-RELEASE についてもあてはまると思わ れますが、基本的に 3.3-RELEASE で確認しています。 --- [管理番号 1260] (最終更新 2003/11/17 02:28:48) Q. PocketBSD ってなんですか? A. PocketBSD は FreeBSD 2.2.5-RELEASE(注) をもとにした NEC の Mobile Gear 用 の システムです。 Mobile Gear は i486SX 相当の CPU と 4MB またはそれ以上 のメモリ搭載しており、UNIX を実行するのに充分なスペックを備えています。 ただし、HDDがないので、かわりに ATA カードを使用しています。 (注) 1999/5/6 現在、2.2.8 ベースのベータテストが行われています。 いくつかの機能はまだ実験段階ですが、多くの人の貢献によってかなり実用的な システムになりつつあります。ノートPCは重過ぎる! というモバイル派からコン ピュータは手段ではなく目的だというハッカーな人まで楽しめるシステムです。 オフィシャルホームページの から各種情報にアクセスできます。 PocketBSD で出来ること * FreeBSD がブートします(笑) * Mobile Gear の特徴のひとつである、suspend/resume を利用できます。 * 日本語表示できるので、mule と sj3/Canna で日本語の文書を作ったり できます。 * 外部インターフェースはシリアルポートと内蔵モデムを使用できます。 PPP を設定すればインターネットにアクセスできるので、メールの読み書 きや WEB の閲覧もなどできます。 * GCC をインストールすればいつでもどこでもプログラミングが楽しめます。 * スケジューラや画像ビューア、ゲームなどの GUI な独自アプリもあります。 * (j)nethack も勿論動きます。:-) PocketBSD で出来ないこと * ATA カードを root partition および swap device として使用するため、 PC カードスロットは ATA カードに占有され、他のカードを使用することは 出来ません。 * Mobile Gear 本来の環境である、UNISHELL との共存は出来ません。本体の RAM diskと ATA カードとの両方の内容を完全に上書きしてしまいます。 * 残念ながら、Mobile Gear はポケットには入りません。 --- [管理番号 1261] (最終更新 2004/04/09 05:04:55) Q. PocketBSD は 私の MobileGear で動作可能ですか? A. いわゆる DOS 版 MobileGear と呼ばれる機種で動作します。 動作確認機種は、 MC-MK12, MC-MK22, MC-MK32, MobileGear for DoCoMo です。その他の機種では動作に一部問題があるか、まったく動作しません。 MC-K1, MC-MK11 はバイナリ配布版のインストーラではインストールできません。 ソースコード版でインストールするか他の機種でインストールしたカードを 使います。メモリが不足するため動作が非常に遅い場面があり、あまり実用的 ではありません。 MC-P1, MC-MP11 もインストールおよび動作速度については MC-K1, MC-MK11 と 同様です。加えて、キーボードがないためなにも入力できません。 なお MIPS 系 CPU を使った WindowsCE 搭載の機種 (NEC MC-CSxx, MC-Rxxx, 及び他社製品など)では、NetBSD ベースの PocketBSD/hpcmips が動作します。 現在は NetBSD/hpcmips として本家にマージされると共に、NetBSD プロジェ クトの一環として開発を進めています。 --- [管理番号 1262] (最終更新 1999/05/06 00:00:00) Q. PocketBSD を使う際に、2MB でメモリが足りますか? A. MC-MK12, MC-MK22, MobileGear for DoCoMo の カタログの 2MB というのはユーザメモリのサイズです。 内蔵システム (DOS + UNISHELL) が約 2MB 使うので、 実際には約 4MB の物理メモリがあります。 PocketBSD で使う場合は、4MB 全部をメモリに使えます。 (MC-MK32 の場合は、8MB = 6MB + 2MB 使えます) --- [管理番号 1263] (最終更新 1999/05/06 00:00:00) Q. PocketBSD で、PCMCIA card(Modem、PIAFS、ネットワークなど)は 使えますか? A. PC card は PocketBSD からは使えないです。PocketBSD は ATA flash card にインストールして、ATA flash card から ブートします。動作中は ATA flash card を取り外すことが 出来ません。DOS 版 Mobile Gear はスロットが一つしかないので、 他の card を使うことはできません。 --- [管理番号 1264] (最終更新 1999/05/06 00:00:00) Q. PocketBSD で、インターネットやLANなどのネットワーク機能は使えますか? A. MK シリーズでは、内蔵モデムとシリアルインターフェースを利用可能です。 MKシリーズでは内蔵モデムに PHS を接続すれば、普通のモデムと同じように 使うことが出来ます。この場合、見なし音声によるデータ通信になります。 MobileGear for DoCoMo では、携帯電話インターフェースとシリアル インターフェースを利用可能です。DoCoMo の携帯電話インターフェースに 携帯電話を接続した場合、普通のモデムと同じように使うことが出来ます。 どの機種も市販のアダプタを利用すれば、シリアルインターフェースに 携帯電話や PHS を接続することも出来ます。またクロス接続のシリアル ケーブルを使用して MobileGear と PC を接続して通信することも可能です。 通信のためにはSLIPまたはPPPの設定を行います。 --- [管理番号 1266] (最終更新 1999/05/06 00:00:00) Q. PocketBSD で、日本語の表示は出来るのですか? A. 出来ます。特にコンソールのエミュレーターなどを使わなくても そのまま EUC が表示出来るので、日本語を通すページャーなどを 入れればそれだけで日本語が読めます。 --- [管理番号 1267] (最終更新 1999/05/06 00:00:00) Q. PocketBSD ではカーソル行以外のコンソールのフォントの大きさを変える事は できないのでしょうか? A. mgterm というプログラムを使うことで可能です。現在のところ 8dot,10dot, 12dot,16dot,24dot で表示できます。 mgterm はターミナルエミュレータといって kterm や kon の仲間です。と いってもピンとこない方は、DOS でいうところの V-Text と同じように コンソールのフォントの大きさや文字数を自由に変えて、その上でソフトを 動かすことのできるソフトだと思ってもらって結構です。 mule とか jed とか mutt とかの、コンソールで動くたいていのソフトは、 変更なしで動きます。 --- [管理番号 1268] (最終更新 1999/05/06 00:00:00) Q. PocketBSD をインストールした後、もとの DOS + Unishell に 戻すことができますか? A. バックアップがあれば戻せます。 PocketBSD の入ったカードをぬいてリセットすればいつもどおり Unishell が起動します (電池ぬきリセットとおなじ状態になります)。 ここでカードを差し込み、初期化を実行すればカードも元どおりです。 注意しないといけないのは、本体、カードのどちらの情報もきれいに 消えてしまうことです。DOS + Unishell に戻すにはカード以外の場所、 たとえば Windows パソコンなどからバックアップを戻すか、最初から 設定し直す必要があります (インストールのためのドキュメントに バックアップを取れ、としつこく書いてあるのはこのためです)。 カードブート以外の方法で DOS を使っている場合は単に Unishell の バックアップをカードにした後に、カードのバックアップをパソコンで 行なえばバックアップが作成できるはずです。 ただし Mobile Gear 上にしか存在しない文書や住所録など非常に 重要なデータは別途厳重にバックアップ (プリントアウトするとか) したほうが安心だとおもいます。 --- [管理番号 1269] (最終更新 1999/05/06 00:00:00) Q. PocketBSD と DOS を併用することは出来ますか? A. 出来ます。 PocketBSD をインストールする際に、カードに DOS パーティションを 作成することが出来ます。 カード全体を DOS で使うのに比べて DOS パーティションの容量は 小さくなってしまうので全く同じというわけには同じというわけには 行きませんが、このパーティションで DOS を使うことが出来ます。 ただし、DOS からカード上の PocketBSD 領域へはアクセスできません (PocketBSD から DOS 領域のアクセスは出来ます)。 また、PocketBSD のインストール時にはカード上の情報は全て消去され、 DOS 領域はあらたに作成されるので、中身はからっぽです。DOS 環境を 再構築するかバックアップを戻す必要があります。 --- [管理番号 1273] (最終更新 1999/05/06 00:00:00) Q. PocketBSD のインストールは成功したはずなのですが、電源を入れると Unishell が起動します。 A. 一部の flash card で MobileGear の起動時にカードが認識でないという 問題があります。このため、通常はちゃんと使用できるカードでも、カード からブートできずに、Unishell が起動してしまうのです。 これはカード単体の問題ではなく、MobileGear 本体との相性もあり、はっきりと どの製品に問題が発生するということはできません。しかし、古い時期に生産 されたカードや、安いカードに多いようです。 MobileGear と ATA flash card の組合せにより、運悪くこのような問題が 発生してしまった場合は、pbsdbootを使用してください。pbsdboot は Unishell 用の登録ソフトで、Unishell 内から PocketBSD を起動します。 --- [管理番号 1274] (最終更新 1999/05/06 00:00:00) Q. PocketBSDで、バイナリ配布版インストーラのヘルプファイルを 見たいのですが。 A. Unishell 版のインストーラ動作中に[F・1]キーで表示される ヘルプ情報は、pbsdinst.xxxxxx.zip に含まれる PBSDINST.UHP というファイルに含まれています。 このファイルはインストール 後の PocketBSD ファイルシステム上には 存在しません。インス トール中でなくても、pbsdinst.xxxxxx.zip を展開して、Windowsの メモ帳などで中身を参照することができます。 --- [管理番号 1275] (最終更新 1999/05/06 00:00:00) Q. PocketBSD の /bin や /sbin にあるコマンドのサイズがえらく 大きいのはなぜですか? A. バイナリ配布版では、これらのコマンドに crunched binary (複数のコマンドを1つにまとめたバイナリファイル) を使っているので サイズが大きくなっています。これら複数のコマンドに対しファイル 実体は一つで済むので、コマンドごとに バイナリを作っておくより スペースの節約になるのです。 --- [管理番号 1276] (最終更新 1999/05/06 00:00:00) Q. PocketBSDでは、コマンドによって crunch されていたりされて いなかったするのはなぜですか? A. crunched binary の場合、コマンドごとに owner/group や file mode を変える ことができないので、これらが異なるコマンド (set uid が必要とか)を ひとまとめにすることはできません。 また、crunch する主な目的は、スタティックリンクされるべき バイナリをひとまとめにして、それぞれのコマンドにリンクされる ライブラリを共有する ことで、トータルのサイズを小さくすることに あります。ですから、もともと ダイナミックリンクで良いコマンドの 場合、crunch するメリットはあまりないのです。 --- [管理番号 1277] (最終更新 1999/05/06 00:00:00) Q. PocketBSD で、たくさんのコマンドを入れたいのですが、ATA card の容量が足りません。コマンド サイズを小さくする方法はありませんか? A. 起動が多少遅くなりますが、バイナリファイルを gzip で圧縮して、 元のコマンドと同名にすることで容量の節約がはかれます。圧縮された バイナリを実行するためには、カーネルが pseudo-device gzip を 持っている必要が ありますが、バイナリ配布版の方は組み込み済みです。 他に gzexe というコマンドで圧縮する方法もありますが、上記の方法が 使える 場合には、これを使う必要はないでしょう。 --- [管理番号 1278] (最終更新 1999/05/06 00:00:00) Q. PocketBSD で、crunched binary はどうやって作るのですか? A. まず、母艦で FreeBSD の src を全部展開しましょう。 /usr/src/release に fixit floppy を作る部分がありますので、 これを流用するのが簡単です。 /usr/src/release/floppies/fixit/crunch ディレクトリに crunch.conf と いうファイルがありますので、これを書き換えて make すれば OK です。 これで crunch という名前のバイナリが できているはずなので、適当な場所に移し、目的のコマンド名で リンク(シンボリックリンクでも可)を張ればできあがりです。 --- [管理番号 1285] (最終更新 1999/05/07 00:50:26) Q. skk-9.6 附属の skkserv が pid XXX (skkserv), uid 0: exited on signal 11 (core dumped) とエラーを出して起動できません。 A. 以下に示す 2 通りの解決法があります。 1. /etc/hosts に 127.0.0.1 localhost と、自ホストの IP アドレスとホスト名を追加します。 2. skk-9.6 附属 の skkserv.c に以下のパッチを当てて skkserv を作り直し ます。 --- skkserv.c.orig Tue Jan 21 04:16:36 1997 +++ skkserv.c Thu Mar 25 19:45:50 1999 @@ -723,7 +723,11 @@ fprintf(errout, "%s:cannot get hostname, or too long hostname\n", pgmnm); exit(1); } - hentry = gethostbyname(hname); + if ((hentry = gethostbyname(hname)) == NULL + && (hentry = gethostbyname("localhost")) == NULL) { + perror("gethostbyname"); + exit(1); + } #ifdef NO_ADDR_LIST strcat(hname, ":"); strcat(hname, hentry->h_addr); --- [管理番号 1289] (最終更新 2001/10/14 11:51:14) Q. 新規ファイルをエディタで作成したときの、文字コード (JIS、EUC など) を 指定したいのですが。 A. エディタによって設定が違いますので、お使いのエディタのドキュメントを参 照してみましょう。 いくつか例をあげると、 mule-2.3 をお使いなら、 ~/.emacs に (set-default-file-coding-system *euc-japan*) emacs20/xemacs20 なら、 ~/.emacs に (set-default-file-coding-system 'euc-japan) mule-4 対応となった emacs20 以降は (prefer-coding-system 'euc-japan) nvi-m17n では .exrc に (または ex command として) set fileencoding=euc-jp set autodetect=jp+ と書くと、それ以降 作成されたファイルは、EUC コードになります。また、 euc-japan でなく iso-2022-jp とすれば JIS コード euc-japan でなく sjis とすれば ShiftJIS コード になります。 ただし、既に存在するファイルを編集・保存した場合は、emacs/mule は 文字コードを変換せずに、元の文字コードのままにします。 ですから、既存ファイルの場合は、明示的に変換しないといけません。 emacs/mule 上からだと M-x set-file-coding-system RET *euc-japan* (mule2.3の場合) (C-x C-k f *euc-japan* でも可) M-x set-buffer-file-coding-system RET euc-japan (emacs20/xemacs20の場合) (C-x RET f euc-japan でも可) でできます。また、一度 emacs/mule から抜けて、nkf や qkc を使っても よいでしょう [管理番号 1253] 。 kterm 上で jvim などを使って編集する場合は、 kterm -km euc として、EUC コードで kterm を立ち上げた上で編集しましょう。 また、Terminal 等から emacs で日本語を使う場合は、 (set-terminal-coding-system 'euc-japan) です。 nvi-m17n については、README.japanese を参照して下さい。 --- [管理番号 1295] (最終更新 2004/04/09 05:05:44) Q. Netscape Communicator の 4.0xや 4.x 系で、[Reload] (再読み込み) ボタンや、強制再読み込みの [Shift] を押しながらの [Reload] ボタンを 押しても、画面上のビットマップ画像をサーバから読み直さず、サーバ側の 画像ファイルが更新していても、更新画像を見ることができません。 A. (1) Netscape Communicator 4.0 系の Bug で、4.06 では治っているようで す。4.06 やそれ以降を使いましょう。 (2) Netscape Navigator 3.0x 系ならば、[Shift] を押しながら[Reload] (再読み込み)ボタンを押すこと実現できます。 (3) Web Server に Apache を使っている場合 次の通り、Apache configure で --enable-module=expiresをつけて mod_expires をつけて、 conf file に下記のような設定をすれば、 ブラウザによらず reload できます。 ExpiresActive On ExpiresByType image/gif "access plus 1 second" ExpiresByType text/html "access plus 1 second" ExpiresDefault "access plus 1 second" # # index.html is not automatically generated ExpiresActive Off (4) すかさず二個目の Communicator を起動します。すると、二個目に起動した Communicator は、「キャッシュが利用出来ずに起動する」と言う警告を 表示しつつ起動します。これで見ると逐一更新してくれます。 頻繁に更新したページをテストで見る時は、キャッシュを利用しない二個 目の Communicator で見る事をお勧めします。 --- [管理番号 1299] (最終更新 2003/10/16 23:20:15) Q. XEmacs (Emacs, Mule) を使っていますが SHIFT+SPACE や CTRL+o を押すと、 本来のキーバインドが無視され、kinput2 の入力ウィンドウがポップアップ してしまいます。 A. この問題は XEmacs (Emacs, Mule) のキーバインドが kinput2 に乗っ取られる ことによって生じます。XIM を無効にすればこの問題を回避できます。 お勧めは XEmacs (Emacs, Mule) を起動するときに、環境変数 XMODIFIERS を @im=none (none は実在しないもの) にしておく。 です。XEmacs の場合なら具体的には $ XMODIFIERS=@im=none xemacs & (sh系) % env XMODIFIERS=@im=none xemacs & (csh系) のように起動します。これを alias にしておくか /usr/local/bin/xemacs という シェルスクリプトにしておくと便利でしょう。XEmacs でなく Emacs や Mule を 使用している場合は xemacs の部分を emacs や mule に読み替えてください。 確認環境: 4.3-RELEASE とその ports/packages ja-xemacs-canna-21.1.14 ja-kinput2-canna-3.0 3.1-RELEASE とその ports/packages ja-mule-wnn[46]-2.3 ja-kinput2-wnn[46]-2.0.4 FreeBSD 固有の問題ではありません。 X サーバは、上記環境のとおりで、XEmacs (Emacs, Mule) を X クライアント として Solaris から起動した場合も、ja 環境で起動すれば同様の現象が 起きます。 --- [管理番号 1300] (最終更新 2004/04/09 05:05:18) Q. Chandra2 (IBM ThinkPad235, 日立 FLORA220等) の内蔵ハードディスク ドライブはどうやって換装したらいいでしょう? A. 基本的にはキーボードを取り外し、各種ケーブル類を取り外した後で、 マザーボードのネジを外して浮かせるとハードディスクが外せます。 以下の各URLに、写真入りの解説があります。 --- [管理番号 1302] (最終更新 2003/05/17 21:39:23) Q. NEC Aterm シリーズの ISDN TA で、同期 64Kbps のアクセスポイントに PPP 接続しようと思うのですが、うまくつながりません。TA は RS-232C ポートに 繋げて使っています。 A. 同期 64Kbps のアクセスポイントに接続するためには、「非同期/同期 PPP 変 換をする」という設定にする必要があります。Aterm シリーズの ISDN TA で は、AT コマンドで AT$N1=1 とすればこの設定ができます。 また、チャットスクリプトの段階で失敗するなら、\\d (2 秒待つ) を付加する ことで接続に成功するかもしれません。 AtermIT40、AtermIT45、AtermIT55、AtermIT60 では、次のチャットスクリプトでの 接続が確認されています。途中で改行していますが、実際は一行に続けて記述します。 なお、Aterm シリーズ固有の問題なのかどうかは分かっていません。 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT$N1=1 OK-AT-OK \\dATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT" ただし、FreeBSD 4.1-RELEASE 以降や 3.5-RELEASE 以降では、環境変数を 使える様になった関係で、AT$N1=1 を AT$$N1=1 や AT\$N1=1 とする必要が あります。 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT\$N1=1 OK-AT-OK \\dATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT" --- [管理番号 1303] (最終更新 1999/05/07 00:50:50) Q. マイクロスタッフ社製の PCI バス用 SCSI カードを使用していますが、3.x 系のカーネルでは SCSI デバイスを認識しないようです。コントローラの認識は できているようなのですが、"Waiting 15 seconds for SCSI devices to settle" の表示が現れません。 A. この症状は、SCSI BIOSで PCIコンフィギュレーションレジスタのコマンドレ ジスタの memory space bit が 1 に設定されていないために起こる問題だと 考えられています。これは仕様であるため、現状では解決法がありません。 2.2 系のカーネルでは問題なく使用できますので、当面は 3.x 系を使用する のを待った方がよいでしょう。あるいは、他のSCSIカードを使用してください。 今のところ、症状が確認されているのは次のカードです。 ・MPS32A また、マイクロスタッフ社製以外のカードでも、IO-DATA 社製の SC-98/PCI (初期ロットのもの) で同様の症状が確認されています (MPS32A とほぼ同様の BIOS を搭載しているため)。こちらは BIOS を IO-DATA 社製のものに更新する ことで解決できるようです。 --- [管理番号 1306] (最終更新 2001/08/12 02:51:17) Q. perl のソースを CPAN などから入手し、自力で build してインストール しましたが、色々なトラブルが起こるようです。 A. perl(1) の build は非常に難しく、ヘッダーファイルの依存関係、 システムコールやライブラリ関数の仕様を完全に理解していない限り 簡単に build できるものではありません。また、システムに インストールされている /usr/bin/perl も、FreeBSD 固有の変更が 施されたもので、CPAN などで配布しているソースは、そのまま コンパイルして動くような状態になっているとはいえません。 システム標準の /usr/bin/perl か ports/packages のものを用いるのが 無難です。 このようなシステム非標準の perl を用いた場合、たとえば apache に mod_perl を組み込む際にコンパイルできないなどの 様々な問題が生じる可能性があります。 --- [管理番号 1308] (最終更新 2000/05/24 20:52:12) Q. NIS/YP で + や - を含む行をもつ map を make しようとすると、 以下のメッセージが出て、その行は無視されてしまいます。 yp_mkdb: bad character at start of line: ... A. FreeBSD 3.2-RELEASE 以前の yp_mkdb(8) では、マップのキーかデータの先頭に `+' や `-' を使うと、警告メッセージを出してこの行を無視するようになって います。それに対して、3.3-RELEASE 以降ではこのチェックは -f オプション を指定したときだけ行われ、デフォルトではチェックは行わなくなりました。 しかし、これらの文字が passwd(5) や group(5) で特別な意味を持つことには 変わりませんので、これらのマップの処理だけ Makefile.yp で -f オプション が追加されるようになっています。 3.2-RELEASE 以前を使っていて、どうしてもこのチェックを外したければ、 /usr/src/usr.sbin/yp_mkdb/yp_mkdb.c の /* Check for silliness. */ というコメントがついている if 文のブロックを削ってコンパイルしなおせば、 一応使えるようにはなります。 /* Check for silliness. */ if (*keybuf == '+' || *keybuf == '-' || *datbuf == '+' || *datbuf == '-') { warnx("bad character at start of line: %s", buf); continue; } --- [管理番号 1310] (最終更新 1999/05/07 00:51:04) Q. X サーバに XF98_NECS3 を使っているのですが、16bpp 指定をすると画面 の左 1/4 だけに偏って表示されます。 A. CTRL+GRPH+(+)、CTRL+GRPH+(-) を押して解像度を変えるとうまく表示され ると思います。 XFree86 3.3.3.1 で抜本的に直すには、X のソースに下記の変更を加えて、X サーバの再構築をします。1 バイトだけの変更ですから、手パッチでもいいで す。 X のコアチームメンバの話では、XFree86 3.3.3.2 か XFree86 3.3.4 がリリー スされれば反映されるようで、バージョンアップで対応できるようですが、 XFree86 4.0 が出るようだと、古い S3 チップはサポートされない可能性があ るようです。 xc/programs/Xserver/hw/xfree98/accel/s3nec/s3pc98.c ここから、 *** s3pc98.c Mon Apr 5 00:30:10 1999 --- s3pc98.c.orig Mon Feb 16 09:42:38 1998 *************** *** 59,65 **** 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 18 - 1F */ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 20 - 27 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28 - 2F */ ! 0xc0, 0x8d, 0x00, 0x00, 0x10, 0x00, 0x8d, 0xfd, /* 30 - 37 */ 0x79, 0xbd, 0x95, 0x9a, 0x00, 0x00, 0x00, 0x00, /* 38 - 3F */ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, /* 40 - 47 */ 0xfc, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xc0, 0xc0, /* 48 - 4F */ --- 59,65 ---- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 18 - 1F */ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 20 - 27 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28 - 2F */ ! 0xc0, 0x8d, 0x00, 0x00, 0x10, 0x30, 0x8d, 0xfd, /* 30 - 37 */ 0x79, 0xbd, 0x95, 0x9a, 0x00, 0x00, 0x00, 0x00, /* 38 - 3F */ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, /* 40 - 47 */ 0xfc, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xc0, 0xc0, /* 48 - 4F */ ここまで --- [管理番号 1311] (最終更新 1999/05/07 00:51:06) Q. (bind-4.x.x で使用していたゾーンファイルのままで) BIND-8.2 + patch1 を動作させると、/var/log/messages に No default TTL set using SOA minimum instead というメッセージが出力されます。 A. デフォルトの TTL が設定されていないので、ゾーンファイルに TTL directive を記述して下さい。(参照: RFC1035,RFC2308) 例) $TTL 86400 ただし、 BIND-8.2 では「SOA レコードの minimum TTL」が 常に「default minimum TTL」に上書きされてしまうというバグが あります。これはエラーにはなりませんが、 8.2.1(1999/04/10 現在未公開) で修正される予定です。 --- [管理番号 1315] (最終更新 1999/05/07 00:51:11) Q. /var/log にあるログファイルの更新・圧縮は、どのプログラムが行って いるんでしょうか。どこに設定ファイルがあるんでしょうか。 A. /etc/crontab を見て下さい。そこには 0 * * * * root /usr/sbin/newsyslog いう行があります。これにより、cron デーモンは毎時0分に /usr/sbin/newsyslog を実行しますが、このプログラムがログの ローテートを行っています。 newsyslog に対する設定は /etc/newsyslog.conf で行ないます。 履歴の個数(*.1 *.2 をどこまでつくるか) 一定サイズを越えたら新しいファイルを作るか 一定時間を経過したら新しいファイルを作るか 圧縮するか などを設定することができます。詳細は newsyslog(8) で調べて ください。 なお、cron が起動しているかどうかは、 % ps axww | grep cron で確かめてください。/etc/defaults/rc.conf の cron_enable="YES" の行をいじらない限り、普通は動いてるはずです。 --- [管理番号 1317] (最終更新 1999/05/07 00:51:13) Q. 3.1-RELEASE 以降の boot.flp のサイズが 2.88MB あるのですが、1.44MB の FDD しかありません。どうしたらよいでしょうか。 A. 3.1-RELEASE 以降ではブートイメージが 1.44MB に入りきらなくったので、 ブートフロッピーが 2 枚に分割されました。 kern.flp と mfsroot.flp からブートフロッピーを 2 枚作成し、kern.flp で 作成したフロッピーを先に挿入しブートして下さい。途中で、mfsroot.flp か ら作成した方に交換するように要求されます。 フロッピーイメージをネットブートする ALPHA マシンか、LS-120 のような 2.88MB フロッピーからブートできる FDD があれば、boot.flp を使用するこ ともできます。 MS-Windows (MS-DOS) でブートフロッピーを作成するには、fdimage.exe を使 用します。 詳しくは、floppies/README.TXT を見てください。 --- [管理番号 1318] (最終更新 1999/11/03 04:50:26) Q. 3.1-RELEASE をインストールしようと、ブートフロッピーで起動すると RTC BIOS diagnostic error ff changing root device to fd0c rootfs is 2880KB compiled in MFS と表示された後、動かなくなってしまいます。 A. パラレルポート周りの不具合のようです。ブート時のユーザコンフィグで ppc0 や lpt? を disable にするとうまくいったという報告があります。 なお、FreeBSD 3.2-RELEASE ではこの問題は発生しません。 --- [管理番号 1320] (最終更新 1999/05/07 00:51:16) Q. mkisofsでブート可能なイメージを作成しようと、mkisofs-1.11.3 を pkg_add でインストールして、 mkisofs -b boot.flp -o /tmp/output-img.iso /usr/hogehoge と -b オプションを指定しましたが call to search_tree_file with an absolute path, stripping initial path separator. Hope this was intended... Uh oh, I cant find the boot image! とエラーで止まってしまします。 A. -b オプションは作成するイメージの /(ルート) からの相対パスで指定します。 例えば FreeBSD のインストールファイルが /usr/hogehoge/pub/FreeBSD/2.2.8-RELEASE にあり、CD-ROM のルートを 2.2.8-RELEASE にした場合、 mkisofs -b floppies/boot.flp -r -o /tmp/output-img.iso \ /usr/hogehoge/pub/FreeBSD/2.2.8-RELEASE (実際には一行です) などとなります。 言い換えれば、作成するイメージの中にブートイメージファイルが存在 しなければいけないのです。 --- [管理番号 1325] (最終更新 2000/04/19 21:31:55) Q. ビデオカードに Matrox Millennium G200 を使用していますが、3.x-RELEASE の VESA を使った 132x60 文字モードが使えません。過去メールを検索して みると、ちゃんと使えている人もいるみたいなんですが? A. まず、 % vidcontrol -i mode としてみて、132x60 や 1024x768x8 などのモードが出てくるか確認してみて ください。出てこない場合は、G200 の Unified BIOS が V2.x になっている 可能性があります。 この V2.x からは VESA サポートが弱くなってしまったようで、132x60 文字 モードが使えません。V1.x ではちゃんと使えるようです。具体的には、V1.3、 V1.4 では使えましたが V2.3 では駄目でした。 Matrox のサイトには常に最新の BIOS しか置いていないので、インターネッ ト上で V1.x の BIOS を入手するのは難しいようです。ただ、購入時の CD-ROM が手元にある場合は、その中に V1.x の BIOS が入っているかもしれ ないので、もし在ればそれに書き換えるという手はあります。InfoMagic の 日本語版 CD-ROM にはないかもしれません。 もちろん BIOS を古いものにする訳ですから、当然何かしらの不具合が出る 可能性はあります。AT 互換機は一般的に、VGA がうまく動かないと POST に 引っかかって (ピー、ピーピーピーのように鳴く) 起動もしなくなってしま いますから、危険を覚悟の上実行するようにしてください (駄目だったらこ のビデオカードは捨てよう、位の気持ちで望むといいでしょう)。 もっとも、BIOS を新しくしても VESA サポート以外に何が変わるわけでも 無いようですし、今の所 * GIGA-BYTE GA-6BA (BIOS: Beta 26) * Celeron 300A(450MHz、Base 100MHz) * I/O-DATA SC-PCI SCSI2 H/A (Symbios 53C810) * Matrox Millennium G200 AGP 8MB SGRAM * Sound Blaster 16 * メーカ不明 NE2000 互換 NIC という構成では、G200 の BIOS を V2.3 から V1.3 にしても (Win98/Linux でも) 特に不都合なく動いているようです。 --- [管理番号 1332] (最終更新 1999/06/03 03:49:40) Q. ThinkPad 535E 上で、`rio' ( DiAMOND 社製 MP3 player Rio PMP300 用 ファイル転送プログラム) を使おうとしたところ、 device not found と言われ、通信できません A. rio はパラレルポートを使って通信するのですが、この時に base IO port を 直接操作します。rio は /dev/lpt0 などを使うようには作られていません。 ThinkPad 535E の lpt0 の base IO port は通常の PC の base IO port と異り、『0x3bc』が base IO port 番号です。したがって、 rio -p 0x3bc -d のように、IO port 番号を指定しなくてはいけません。 IO port の情報は、ブート時に出力されるメッセージを見る([管理番号 145]) ことでわかります。 たとえば私のマシンの場合、 May 11 22:09:41 myname /kernel: lpt0 at 0x3bc-0x3c3 irq 7 onisa ===== とありますので、0x3bc であることが判ります。同様にすれば、他の機 種の場合も対応できるはずです。 --- [管理番号 1334] (最終更新 2003/10/16 23:20:29) Q. boot -v などで起動すると、起動メッセージの最初の部分が、dmesg にも /var/log/messages にも残っていないのですが。 A. dmesg で表示されるメッセージは、カーネルがメッセージバッファに貯めて いるものです。このサイズは決まっており、起動時のメッセージが長すぎると バッファに入り切らず、先頭部分が表示されなくなります。 また、/var/log/messages には、マルチユーザーモードに入って syslogd が 起動した時に、カーネルのメッセージバッファを読んで書き込まれます。 その時点でバッファがあふれてしまっているので、これも dmesg と同様に 先頭部分が記録されないわけです。 このバッファのサイズは /usr/src/sys/sys/msgbuf.h で #define MSGBUF_SIZE 8192 と指定されています。 バッファを増やすには、MSGBUF_SIZE というオプションを指定して カーネルの再構築をします。LINTによると、 # Size of the kernel message buffer. Should be N * pagesize. options "MSGBUF_SIZE=40960" のように指定します。この場合はデフォルトの 5倍の容量になるわけです。 i386アーキテクチャではページサイズは普通は 4096 バイトとなっています ので、4096の倍数で指定してください。 カーネルの再構築の方法は を参照してください。 なお、MSGBUF_SIZE が使えるのは 2.2.7 以降のバージョンです。 --- [管理番号 1340] (最終更新 2001/08/12 02:51:17) Q. カーネルを再構築しようと思い、ハンドブックなどを参考に config、 make depend、make という順番で作業を進めていきました。 すると config と make depend までは正常に終了するのですが、 make をすると error を出して止まってしまいます。 A. カーネルコンフィギュレーションファイルに間違いはありませんか? config(8) コマンドは可能な限りカーネルコンフィギュレーション ファイルのチェックを行いますが、限界があります。 このような場合、原因は色々考えられますが、次のような点をチェック してください。 (1) pseudo-device などのエントリの誤り。 (2) 依存する options の指定がない。 例えば 4.3-RELEASE の場合、options として DUMMYNET や BRIDGE を指定する場合には同時に IPFIREWALL も指定しなければ なりませんが、options IPFIREWALL が欠けていても config(8) は warning も error も報告しません。しかし、 カーネルをリンクする際に失敗します。 このような options は LINT や NOTES などに注意が記述されて いるので必ず目を通してください。 (3) 依存するデバイスの指定がされていない。 例えば、device atadisk が指定されているのに device ata など が指定されていない場合などにはコンパイル時やリンク時に エラーになります この他に、テストの十分でない機能やデバイスを指定した場合に 類似の問題が生じることもあります。 --- [管理番号 1353] (最終更新 1999/07/02 16:26:34) Q. POP/APOP 認証だけ行ってメールを受信しないようにするにはどういった方法 がありますか。POP before SMTP採用サイト(SPAM対策のために、メールを 送信する直前に POP/APOP 認証が必要なサイト)を使う際に必要なのです。 A. 以下のとおりいくつかの方法があります。 1. fetchmail -c を実行する 2. MH の msgchk を pop/apop で実行する (man msgchk を参照してください) 3. 手動で認証を行う。 % telnet POPSERVER 110 USER USERNAME PASS PASSWORD QUIT 4.認証だけ行うクライアントを作る。 1) シェルスクリプトを使う。 #!/bin/sh ( sleep 1; echo USER USERNAME; sleep 1; echo PASS PASSWORD; sleep 1; echo QUIT ) | telnet POPSERVER 110 2) perl5 と p5-Net を使う。 #!/usr/local/bin/perl use Net::POP3; $pop = Net::POP3->new('POPSERVER'); $pop->user("USERNAME"); $pop->pass("PASSWORD"); $pop->quit(); --- [管理番号 1355] (最終更新 2002/03/07 15:32:11) Q. FreeBSD(98) 3.1R で、2台目以降の SCSI HDD から起動したい。 A. SCSI ID と、da device の unit number が一致していないと、SCSI HDD からの 起動に失敗することがあります (FreeBSD(98)3.1R-Rev01 で確認)。 例えば、下記のような SCSI 機器構成の場合、 0:NONE 1:NONE 2:2BG HDD (FreeBSD(98)2.2.8R-Rev02 (da0) 3:6GB HDD (FreeBSD(98)3.1R-Rev01 (da1) 4-6:NONE 7:ホストアダプタ 起動ディスクとして SCSI 3の HDD (kernel からは da1 として認識される)を 選択すると、SCSI デバイスの初期化の後、 change root device to da3 と表示した後 cannot mount root で、panic・reboot してしまうという不具合が報告されています。 この場合、2通りの解決方法があります。 1. SCSI ID を変更する。 上記の構成を次のように変更して、SCSI ID と da device の unit number を 一致させれば、da1 から起動することができます。 0: 2BG HDD (FreeBSD(98)2.2.8R-Rev02 (da0) 1: 6GB HDD (FreeBSD(98)3.1R-Rev01 (da1) 2-6: NONE 7: ホストアダプタ 2. loader の設定を変更する。 ハードウェア上の制約などから 1 の方法を採ることができない場合もある でしょう。このような場合は loader に、読み込むべき kernel の場所を明 示します。/boot/loader.rc を下記の内容で作成して下さい。 set root_disk_unit=1 #1を適宜変更する。 load /kernel load -t userconfig_script /boot/kernel.conf #必要な場合 autoboot 5 /boot/kernel.conf については を参照して下さい。 ただし loader.rc の記述が無くても起動できるのが正常なので、 FreeBSD(98) 3.3R-Rev01 では、root_disk_unit を設定しなくても 起動できるようになっています (FreeBSD(98)3.2R ではどうなるか未確認)。 また、FreeBSD 3.2-RELEASE でも SCSI構成 0 : 4GB HDD(WindowsNT) 1 : 2GB HDD(FreeBSD3.2R) 2-6: NONE 7: ホストアダプタ(Adaptec AHA-2940UW) ホストアダプタ設定 BootTargetID = 1 のように設定した場合に、 cannot mount root で、panic reboot する不具合が発生しています。FreeBSD(98)-3.1R と 同じように「2. loader の設定を変更する」で対処が可能です。 関連 QandA: [管理番号 85] `panic: cannot mount root' で FreeBSD が起動しない。 --- [管理番号 1363] (最終更新 1999/07/24 15:03:28) Q. ports/packages を使ってインストールしようとすると、 install-info: Undefined error: 0 for /usr/local/info/dir pkg_add: command 'install-info /usr/local/info/wget.info /usr/local/info/dir' failed などと、失敗してしまいます。 A. その ports/packages が、install-info で info をインストールして いる場合、先に /usr/share/info/dir をインストールしておく必要が あります。 まず、/stand/sysinstall などで配布物の中から info をインストールし、 その後 /usr/local/info/dir を削除して、再度 目的の ports/packages を インストールして下さい。 --- [管理番号 1364] (最終更新 1999/07/02 16:28:12) Q. /var/log/messages に last message repeated 2 times というログが残っているんですが、これは何ですか? A. 直前の行と同じメッセージが、更に2回分出力されたことを意味しています。 syslogd が関与する記録では、同様な処理が行われます。 たとえば tail -f /var/log/messages としてログを見ながら、別の kterm 上で ・su でわざと間違ったパスワードを入力する。それを3回繰り返す。 ・su で正しいパスワードを入力して root になる。 としてみてください。すると、/var/log/messages に su: BAD SU username to root on /dev/ttyp0 last message repeated 2 times su: username to root on /dev/ttyp0 と記録されることがわかると思います。 これは su: BAD SU username to root on /dev/ttyp0 su: BAD SU username to root on /dev/ttyp0 su: BAD SU username to root on /dev/ttyp0 su: username to root on /dev/ttyp0 と同じ意味ですが、ログの容量を抑え、なおかつログを読みやすくするために syslogd が工夫してくれているわけです。 --- [管理番号 1366] (最終更新 1999/11/03 04:51:17) Q. kterm など X 上の日本語文字表示可能なはずのアプリケーションで 日本語が表示されるはずの部分が空白になってしまいます。 A. 日本語フォントはインストールされていて、サーチパスに含まれていますか? まず、xterm や kterm の中で % xlsfonts | grep jisx0208 としてみてください。なにも出てこなければ、X Window System から 日本語フォントが全く見えていないということです。 次に X の日本語フォントがインストールされているかを確認します。 /usr/X11R6/lib/X11/fonts/misc/ の下に k14.pcf.gz, jiskan16.pcf.gz, jiskan24.pcf.gz というファイルがあり、同じディレクトリの fonts.alias というファイルに k14 などの alias が記述されていれば正しくインストールされています。 もし、日本語フォントがインストールされていなかったら、XFree86 の インストール時に Fonts メニューで選択する必要があります。 /stand/sysinstall を実行し、 [Configure] → [Distributions] → [XFree86] → [Fonts] とたどって [non] Japanese, Chinese and other non-english fonts を選択して下さい。 フォントがインストールされているのに % xlsfonts | grep jisx0208 で何も表示されない場合は、/etc/XF86Config ファイル中の Section "Files" の FontPath の行を確認して下さい。日本語フォントのパス (/usr/X11R6/lib/X11/fonts/misc/) は含まれていますか? なお、フォントパスの一時的な変更は、xset(1) の fp option で出来ます。 なお、ports/packages で kappa20、naga10 などの追加フォントをいれた場合は /usr/X11R6/lib/X11/fonts/misc/ でなく、 /usr/X11R6/lib/X11/fonts/local/ というディレクトリに入ります (これは 3.1-RELEASE + XFree86 3.3.3.1 以降の場合。それ以前のバージョン では /usr/X11R6/lib/X11/fonts/misc/ にインストールされます) --- [管理番号 1406] (最終更新 2000/05/24 20:52:33) Q. 下記の環境で、apm -z (zzz) がうまく動作しません。 M/B: ASUS P5A ACPI BIOS Revision 1006 OS: FreeBSD 2.2.8R + PAO(PAO-19990405.tar.gz) apm -z を実行すると、ピッピッピッピッと(ピッが4回)音がして、 画面が一瞬真っ黒になった後、元の状態に戻ってしまいます。 その時、/var/log/messages には、次のようなログが残されます。 Jul 26 00:48:16 choota /kernel: resumed from suspended mode (slept 00:00:01) A. apm -z[ENTER] というコマンドを実行する時、key press によって suspend 状態に入り、key release event で resume してしまっている可能性がありま す。これが原因なら、[ENTER] の入力から apm -z 起動のタイミングを少し遅 らしてやると (とりあえず) 動作します。具体的には、下記のように apm(8) コマンド実行前に sleep(1) コマンドをはさんでやります。 % sleep 1; apm -z ただし、PAO3 (3.x 系 の PAO) 及び 3.3R 以降では、カーネルが上記に相当 する処理を行なうようになっていますので、この対処は意味がありません。 なお、この待ち時間は sysctl(8) を使って確認/変更できます。 a) 現在の待ち時間の表示 % sysctl machdep.apm_suspend_delay b) 待ち時間を 3 秒に設定 # sysctl -w machdep.apm_suspend_delay=3 --- [管理番号 1408] (最終更新 2004/04/09 05:05:56) Q. PC Card タイプの Ethernet カードを挿入したとき ed0: device timeout という表示がでて機能しません。 A. 使用するドライバによってメッセージは多少異なりますが、この原因は多くの 場合、PC Card に割り当てられた IRQ が、実際には他のデバイスに使われて いることにより、正常に割り込み処理が行えないことにあります。 新たに PC Card がマシンに挿入されると、pccardd(8) が未使用の IRQ を その PC Card に割り当てようとしますが、FreeBSD がサポートしていない サウンドカードなどは、使うべき IRQ がシステムに登録されていないため、 結果的に重複して IRQ を割り当ててしまうことになります。 この状況を確認するには、まず自分のマシンにどんなハードウェアが搭載され ていて、そのデバイスがどういう風にリソースを割り当てているのか正確に 把握する必要があります。 a) マニュアル等でマシン仕様を確認します。 b) Windows などのシステムプロパティで確認します。 c) PCI デバイスは BIOS の認識メッセージや、 scanpci か pciconf などのコマンドでも判ります。 次に対策としては 3つの方法が考えられます。 1. 認識されていないデバイスをなんとか FreeBSD に認識させる。 2. マシンの BIOS 設定でそのデバイスを無効にする。 3. pccardd(8) にその問題の IRQ を使用しないよう指示する。 具体的には、 1. 認識されていないデバイスをなんとか FreeBSD に認識させる。 まず、そのデバイスを FreeBSD がサポートしているのかどうか調べます。 各種ドキュメントや LINT を参考にして、カーネルを再構築することになる でしょう。その結果、サポートされないデバイスであったり、使用予定が 無いドライバをカーネルから削除した場合、次の対処法に移ります。 2. マシンの BIOS 設定でそのデバイスを無効にする。 全てのマシンで可能なわけでは無いのですが、BIOS 設定において問題の デバイスを無効化します。ただ、最近の NOTE-PC 等ではこれらの設定が 行えないものも多く、運悪くそういうマシンに当ったときは次の手段しか 残されていません。 3. pccardd(8) にその問題の IRQ を使用しないよう指示する。 次の二通りの方法がありますが、両方とも指定されると i) より ii) が 優先されますので、混乱しないように注意してください。どちらかと言えば i) の方をお勧めします。なお、PAO を使用している場合は事情が異ります。 i) pccard.conf(5) の irq に指定する方法 /etc/defaults/pccard.conf でデフォルト値が設定されていますが、こちら は変更せず、/etc/pccard.conf に使用可能な IRQ をリストします。次のよ うにタイプしてから PC Card を挿し直してください。 # echo "irq 10 11" > /etc/pccard.conf # kill -HUP `cat /var/run/pccardd.pid` ii) rc.conf(5) で pccardd_flags に指定する方法 同様に使用可能な IRQ を pccardd(8) への `-i ' オプションで指定 します。/etc/rc.conf を変更したら reboot するのが確実です。 pccardd_flags="-z -i 10 -i 11" --- [管理番号 1429] (最終更新 1999/11/19 16:04:26) Q. ppp コマンドでインターネットに接続しているのですが、ftp コマンドで ファイルを転送したり、メールに添付してファイルを送る場合などに、ある 特定のサイズ (20kbytes くらい) 以上のファイルを送ろうとすると、途中 から送信が止まったような状態になります。この時、kernel が sio1: 1 more silo overflow (total 1) などというエラーメッセージを出しています。同じハードウェア構成でも Windows95 では全く問題ありません。 A. PC-モデム間の送信フロー制御の設定が正しくない時や、ケーブルが不適切な 時に起こりそうな症状です。DCE速度 (33.6kbps) よりも DTE速度 (例えば 115.2kbps) の方が速いので、よほど LAPM で圧縮が効くデータでない限り モデムのバッファが一杯になってモデムから PC へ送信停止要求が行きますが、 これが発生しなかったり正しい方式でなかったり (xon/xoff制御) するとフロー 制御ができなくてオーバーフローした送信データが消失します。 以下の点を確認してみて下さい。 1) モデムはハードウェア (RTS/CTS 又は RS/CS) フロー制御になってい るか。(またはPPP接続初期化時にハードウェアフロー制御に設定する ATコマンドが送られているか)。 2) (念のため)sio の irq が正しいか。 モデムに関する設定は 1) PC 側の設定は ppp コマンドを実行してから show modem で 2) モデム側の設定は AT コマンドで それぞれ参照できます。AT コマンドの詳細はモデムのマニュアルを参照して 下さい。私の環境では /etc/ppp/ppp.conf の set dial を以下のように しました。 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATLM \ OK-AT-OK AT&K3 OK-AT-OK ATDP\\T TIMEOUT 40 CONNECT" ここで、 "AT&K3" が私のモデム(Diamond Multimedia SupraExpress 336i PnP)で RTS/CSフロー制御にするための ATコマンドです。 また sio の irq に関しては dmesg | grep sio で、見ることができます。 他の OS (例えば Windows) などがある場合はそちらでも irq を確認して みましょう。 --- [管理番号 1437] (最終更新 1999/12/23 18:00:31) Q. PPP 接続して オフラインで mqueue にためたメールを送るため % sendmail -q -v を実行したときに配送を拒否されると、直後に再配送を試みても Running AAA02472 (sequence 1 of 1) AAA02472: too young (00:00:06) などと表示され、配送できません。 A. /etc/sendmail.cf に O MinQueueAge=10m という行があるはずです。これは「mqueue に保存されてから再処理 されるまでの最短時間」を表します。 `too young' と言われたのは、ここで設定した時間 (この例では10分) が 経過しないうちに再配送しようとしたからです。これを O MinQueueAge=1m とすれば1分になりますし、コメントアウトすればいつでも再配送できます。 CF をお使いなら、sendmail.def の中の #MIN_QUEUE_AGE='10m' を適切に設定すればよいでしょう。CF-3.7Wpl2 の sendmail-v8.def を 使うと、デフォルトでは O MinQueueAge=10m となるような sendmail.cf が生成されます。 --- [管理番号 1446] (最終更新 2000/04/19 21:32:07) Q. 社内ネットワークで DHCP サーバーを構築しようと思っていますが、 Microsoft ネットワーククライアント向けに WINS サーバーの IP アドレス を DHCP で配布することはできますか? A. FreeBSD では、WIDE 版と ISC 版の両方の DHCP が利用できますが、それぞ れによって対応が違います。 1. WIDE 版の場合 dhcpdb.pool ファイルに、以下のオプションを指定します。()内は、DHCP オプションの番号です。 WINS Server(44): nnsv=IP Addressのリスト NetBIOS DD Server(45): ndsv=IP Addressのリスト Node Type(46): nbnt=ノードタイプ Scope ID(47): nbsc="パラメーターを指定" [設定例] nnsv=192.168.0.1, 192.168.1.1: nbnt=0x8: 詳しくは、man dhcpdb.pool をどうぞ。 なお、以上のオプションの動作は WIDE-DHCP 1.4.0、FreeBSD 2.2.8-RELEASE で確認しました。 2. ISC 版の場合 dhcpd.conf ファイルに、以下のオプションを指定します。()内は、DHCP オ プションの番号です。 WINS Server(44): option netbios-name-servers IP Addressのリスト NetBIOS DD Server(45): option netbios-dd-server IP Addressのリスト Node Type(46): option netbios-node-type ノードタイプ Scope ID(47): option netbios-scope "パラメーターを指定" [設定例] option netbios-name-servers 192.168.0.1, 192.168.1.1; option netbios-node-type 8; 詳しくは、man dhcp-options をどうぞ。 なお、以上のオプションの動作は ISC-DHCP version2、FreeBSD 3.2-RELEASE で確認しました。 --- [管理番号 1447] (最終更新 1999/11/03 04:54:41) Q. diskless マシンをつくりたい。 A. 少なくとも次の3つの方法があります。 1. handbook に出ています。 2. etherboot を使う。port/packages が用意されています。 3. Intel LANDesk Wired for Management (WfM) を使う。 また、以下のスレッドも参考になるでしょう。 [FreeBSD-users-jp 39030] Diskless & ELF kernel (FreeBSD(98)-current) [FreeBSD-users-jp 42241] Intel LANDesk でdiskless ブート [FreeBSD-users-jp 45327] etherboot によるnetboot をしたい --- [管理番号 1451] (最終更新 2001/02/18 15:26:53) Q. Future Domain 1610M ISA SCSI カード (TMC18C30 チップセットベース) は FreeBSD で使えますか? A. PAO の stg ドライバは ISA frontend をそなえて FreeBSD にマージされました。 4.2-RELEASE 以降の stg ドライバで使うことはできますが、インストールフロッ ピーでは認識させることができませんので、インストール時には別の方法を使っ てください。また、3.5R と PAO3 の組み合わせでもおそらく使えると思います。 カーネルをコンパイルする手段は別に必要ですが、kern.flp のカーネルだけ 入れ換えればインストール時にも使えます。入れ換えるカーネルの要点は、 GENERIC (PAO3 なら PAO_ALL) カーネルから不必要なドライバを削除した上で、 device stg # TMC 18C30/18C50 という行を device stg0 at isa? port 0x140 irq 11 # TMC 18C30/18C50 と変更したカーネルを作ります。リソース指定値は個別に調整してください。 このとき、`options MFS' と `options MD_ROOT' (PAO3 というか 3.x では `options MFS_ROOT') は削除しないでください。作成したカーネルは kern.flp を書き込んだフロッピーを普通にマウントすればコピーできます。 # cp GENERIC # vi # config -r # cd ../../compile/ # make -DNO_MODULES depend all # mount /dev/fd0c /mnt # gzip -9cv kernel > /mnt/kernel.gz # umount /mnt なお、vnconfig(8) を使えば kern.flp 自体を直接変更できます。 # vnconfig /dev/vn0 /tmp/kern.flp # mount /dev/vn0c /mnt # gzip -9cv kernel > /mnt/kernel.gz # umount /mnt # vnconfig -u /dev/vn0 --- [管理番号 1454] (最終更新 1999/11/19 15:53:08) Q. プリンタがうまく動きません。プリンタの設定方法が分かりません。 A. 以下の説明を順に読んでください。 [管理番号 1455] Q. UNIX や FreeBSD でのプリンタの扱いはどうなってるの? (必ず読んでください) [管理番号 1456] Q. プリンタが反応しない(接続のチェック) [管理番号 1457] Q. テキスト印刷をするためのフィルタはありますか? (テキスト印刷がしたい/テキスト印刷がうまくできない) + Q. 日本語が化けて印刷されるのですが? [管理番号 1458] Q. PostScript/Ghostscript ってなんですか? [管理番号 1459] Q. gs はどうやって使うの? [管理番号 1460] Q. Ghostscript が対応しているプリンタはどれですか? (見分け方は?) [管理番号 1461] Q. Ghostscript を用いて PostScript の図を印刷したいのですが [管理番号 1462] Q. 日本語の ps file が印刷したいんですけど [管理番号 1463] Q. VFlib って何ですか? [管理番号 1464] Q. gs でもっと簡単に印刷したい [管理番号 1465] Q. gs でもっともっと簡単に印刷したい (lpr の利用) lpr/lpd がうまく動かない(lpr/lpd の利用 & 関連 QandA 集) [管理番号 1466] Q. その他 プリンタ関連 QandA リソースリスト --- [管理番号 1455] (最終更新 2000/12/07 02:35:58) Q. UNIX や FreeBSD でのプリンタの扱いはどうなってるの? A. まず FreeBSD handbook 7章 プリンタの利用 その中でも特に 基本的なセットアップ プリンタを使う プリンタ設定上級編 をよく読んでください。実はこの説明のほとんどは、FreeBSD に限らず、 UNIX 一般に当てはまります。少々長いですが、ここをちゃんと読めば 90% の人の疑問は解決します。 逆にここをちゃんと読まずに メーリングリストやネットニュースに投稿しても 結局何が問題なのか他の人にも判別がつかないので、解決はできないと思って ください。 しかし、ハンドブックも万全ではありません。また広い範囲を対象にしている ので少し説明が冗長である部分もあります。また、日本人が書いたものではない ので、日本語のテキスト関連の情報や日本のプリンタの情報などはありません。 そこでこの QandA 集では主にその辺りを中心にはまりやすいポイントと 解決法を書きます。 PostScript についてよく知らない人は [管理番号 1458] Q. PostScript/Ghostscript ってなんですか? を読んでください。 lpr/lpd についてよく知らない人は [管理番号 1465] Q. gs でもっともっと簡単に印刷したい。lpr/lpd がうまく動かない を読んでください。 --- [管理番号 1456] (最終更新 1999/11/19 15:53:18) Q. プリンタが反応しない (接続のチェック) A. きちんと接続されているかどうか、ケーブル/電源などを確認してください。 [よくある問題] printer port を間違えていないか もう一つよくある間違いに、ハードウェア的な接続は正しいのに、 デバイスファイルなどを間違えているというものがあります。 パラレルポートは /dev/lpt0 (Linux だと /dev/lp0) が一番目です (番号は unix 系では 0 から始まるのが一般的)。 デバイスファイル名を間違えていたら何をどうやっても印刷できません。 デバイスが /dev/lpt0 であると思われる場合は、まず % ls -l /dev/lpt0 を実行してみて、デバイスファイルの存在を確認しましょう。 これは キャラクタデバイスなので ls -l した先頭の文字は 'c' となっているはずです。もし /dev/lpt0 が存在しなければ # cd /dev; ./MAKEDEV lpt0 してください。 デバイスファイルがない、あるいはデバイスファイルはあっても 正しく作られていない場合に以下の作業を行うと、/dev 以下に 巨大なファイルが作られ、/ file system が溢れて、印刷も されないということになってしまいます。 次に # echo test > /dev/lpt0 としてみて何か(ごみでもいいから)印刷されるか、印刷されなくても ピーピー言うとか LED が一瞬光るなど反応をしているかを見てください。 なにかしら反応があれば、デバイス名は多分あっています。 なお、プリンタ言語によっては適当な text を送るだけでは 印刷はしないものもあるようですが、たいてい何かしらの 反応は示すものと思われます。 注意: /dev/lpt0 は通常は root 以外は書き込み出来ません。 --- [管理番号 1457] (最終更新 1999/11/19 15:53:20) Q. テキストの印刷をするためのフィルタ はありますか? (テキスト印刷がしたい/テキスト印刷がうまくできない) A. プリンタの種類によっては、escpf、lipsf などいくつかあります。 また、a2ps などを用いて一旦 PostScript に変換して Ghostscript を 用いて印刷するという方法もよく用いられます。少々重いのが難点ですが、 gs にさえ対応していれば、日本語フォントを搭載していないプリンタでも 大丈夫、というのが魅力です。 もしあなたが使ってるプリンタが文字コードと(復帰改行や改ページなどの) 簡単なプリンタ制御コードのみで印刷可能であるなら、特別なフィルタが なくてもテキストの印刷はできます。そういうプリンタはかつてはよく 使われていましたので、/etc/printcap のみで設定できるようになって います。最近のプリンタでもそういったテキスト印刷のモードを持って いればフィルタ無しでテキスト印刷できます。ただし、その他(グラフィック など)のモードとの切替が必要だったり、プリンタにテキスト印刷の モードがない場合には専用のテキストフィルタを用いたり、gs を使う 必要があります。また、テキスト用のモードがあっても漢字フォントを 搭載していない場合は日本語の印刷は gs を利用する必要があります。 おまけ Q. 日本語が化けて印刷されるのですが A1. そのプリンタは日本語フォントを持っていますか? 安価な color inkjet printer の多くは日本語フォントを 持っておらず、windows でもすべて"画像"として印刷します。 一旦 ps に変換し、gs を使いましょう [管理番号 1458] A2. 印刷する漢字コード/プリンタ側の設定は合っていますか? --- [管理番号 1458] (最終更新 1999/11/19 15:53:21) Q. PostScript/Ghostscript ってなんですか? A. UNIX の世界では多くのソフトが印刷用の出力などを PostScript(ps) というPDL (Page Description Language: ページ記述言語) で出力 します。PostScript は簡単に綺麗な絵などを描ける代わりに、処理が 複雑です。PostScript の処理系を内蔵していて印刷できるプリンタは 市販されていますが、通常のプリンタより高価です。 そこで、Ghostscript(gs) という PostScript 互換の処理系でパソコン 側で PostScript 形式のデータを処理して、繋がっているプリンタ用の データ形式に変換してから送りつけるという方法がよく使われます。 これは、プリンタのカタログで「ソフトウェア RIP で PostScript を 出力」と書いてある方法に相当します。 --- [管理番号 1459] (最終更新 1999/11/19 15:53:22) Q. gs はどうやって使うの? A. まず gs の動作チェックをしましょう。 Ghostscript をインストールしてください。FreeBSD の場合は ja-vfghostscript-*.tgz といった名前の package を入れれば OK です。 プリンタ用フィルタをつくる前に、gs の動作確認を。 以下、"GS_VERSION" はお使いの Ghostscript の version 名などで 適当に置き換えてください。 /usr/local/share/ghostscript/"GS_VERSION"/examples/tiger.ps などのサンプルを用いて (FreeBSD の ports/package では上記のような パスにインストールされますが、システムによってはパスが異なるか、 入ってないかもしれません) % gs tiger.ps で画面上に虎の絵が表示されますか? されなければ、Ghostscript が 正常に動作していません。ports/packages を用いるなり、自分で コンパイルするなりして入れ直しましょう。次に gs をプリンタ用の フィルタとして使うためには % gs -help を実行してみて、gs のバージョンおよび Available devices: の 中に自分の使いたいデバイスドライバが入っているかどうかを確認して ください。自分の使いたいプリンタとデバイスドライバ名の対応は /usr/local/share/ghostscript/"GS_VERSION"/doc などを片っ端からあさって見てみましょう。なお、gs さえ日本語対応 していれば、プリンタドライバとしては日本語対応していなくても問題 ありませんので海外で開発された stcolor なども Epson machjet/colorio プリンタで問題なく使用できます。 [管理番号 1460] Q. Ghostscript が対応しているプリンタはどれですか? (見分け方は?) に 1999年6月現在、筆者が把握している gs ドライバとプリンタとの 対応表を挙げておきます(間違い訂正や、情報の追加/更新は大歓迎です:)。 ごく一部ですが、gs 2.6x でしか使えないドライバというものもあります。 また、最近開発されたドライバで、まだ ports/packages に組み込まれて いないものについては自分で gs に組み込んでコンパイルする必要があります。 --- [管理番号 1460] (最終更新 1999/11/19 15:53:26) Q. Ghostscript が対応しているプリンタはどれですか? (見分け方は?) A. gs driver と対応するプリンタリストと URI 集: (1999/6/27 チェック) (物凄く要補完) canon LBP series [LIPS III, LIPS IV, (LIPS II+)] lips3(300dpi),lips4(600dpi),lips4c(color) (220 など LIPS 非搭載 windows 専用プリンタは不可) 太古の LIPS II+ , LBP-8 などは gs 2.6.x のみ対応? Epson LP series [ESC/Page] epag (除く LP-5000?) NEC laser(?) npdl 上記 3つ共に by 大森さん他() HP laserjet [PCL?] ?? (??? deskjet djet500 laserjet ljetplus ljet2p ljet3 ljet4 とかかな?) ricoh [RPDL] rpdl OKI MICROLINE 620CL Fujitsu FMLBP2xx (gs 2.6.x 用) fj.sources Date: Wed, 24 Jun 1998 11:40:25 JST Message-ID: Epson machjet/colorio/stylus [ESC/Pラスター? ] mj{180,360,720},stcolor,uniprint (mjc: 大森さんによる改良版があるらしい?) Canon BJC(最近のカラーのもの)[BJラスターコマンド?] bjc600? (bjc800), uniprint 古いモノクロ[???] bj10v bj10vh bj10e bj200 などを試す? HP (PCL 3 のもの; PPA の物は不可) (????? cdjcolor cdjmono cdj550 pj pjxl pjxl300 ??????) hp850 などなど... 大森さんのところからいくつか最近の HP inkjet のドライバリンクがある ALPS MD シリーズ? md2k(?) ??? dmprt(?) ( []内は PDL 名 ) 他で集められた gs でのプリンタ実績リスト このリストを見てプリンタを購入しようという方は、なるべくドライバの 配布元など より詳細な情報をチェックして、例外や注意事項などを把握 するようにしてください。 また、Windows で 6色インクなどを用いて写真画質と言っているものは 基本的には gs で使うときは CMYK の4色のみ (CMY 3色もあるかも) しか 利用できません。薄色インクの利用法は実質上、プリンタメーカーの 細かい設計やノウハウに依存するため、開発が難しいのです。プリンタ 会社が gs のドライバも開発してくれると良いのですが。 上記のプリンタのリストに自分のプリンタと全く同じ型番のプリンタが ある必要があるわけではありません。[管理番号 1459] で軽く触れてあるように、 プリンタは実際にはある固有の言語 (PDL) を解釈し、それをラスタ画像 (ビットマップイメージ)に展開して紙に写します。そしてこの PDL と いうのは通常同じ会社の同じシリーズであれば、全く同じか、少なくとも 似ているものになっています。特に新しい機種は古い PDL に対し上位 互換の PDL を搭載しているのが普通です。プリンタのカタログの仕様を よく見ると "ページ記述言語" "PDL" "制御コード" "コマンド体系" などと書かれていないでしょうか? 機種名が違っていても、場合によってはメーカーが違っていても PDL と そのバージョンが共通であれば基本的には使えるはずです。なお、PDL の バージョンはプリンタドライバのバージョンとは別の概念です。 --- [管理番号 1461] (最終更新 2000/05/24 21:06:34) Q. Ghostscript を用いて PostScript の図を印刷したいのですが A. [管理番号 1460] の表などから gs のデバイスドライバの当たりをつけます。 ここでは仮に Canon の laser printer を例にとります。 するとドライバはたとえば lips3 となります(以下の説明では 'lips3' を 適宜自分のプリンタの該当するものに置き換えてください)。 また、自分のプリンタにピッタリな説明がなくても同じ会社のもの、とか 適当に当たってみると動くものがあることもあります。プリンタの仕様の 言語の欄などを参考にいろいろ試してみてもいいかもしれません。未知の プリンタの場合は、適当に近そうなドライバをいくつか試して試行錯誤する ことが必要かもしれません。 (grep lips3 などと gs の doc directory でやるなどして 関連ドキュメントは読んでおく; driver の配布元があればそこも 見ておくのがなお良いでしょう) % cat tiger.ps | gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=lips3 -sOutputFile=/tmp/gstest.bin - quit.ps として、/tmp/gstest.bin を作ってみてください。/tmp/gstest.bin の ファイルサイズが妙に小さければ、gs が正常に機能していません。 color ならたとえば大体、 解像度に応じたドット数 × CMY(K) × 各色 8bit というようなデータサイズになるはずです。ただしデータを圧縮する機能を 持つドライバもあるので、必ずこの大きさになるわけではありませんが。 上記コマンドを実行した際に gs がなにかしら文句を言ってくるようで あれば、それを良く読んでください。このメッセージがプリンタの制御 コードに混ざってしまうと、フィルタとして実行する際に邪魔になります。 次に less (jless) で /tmp/gstest.bin を見てみましょう。 "/tmp/gstest.bin" may be a binary file. See it anyway? と言われますが、構わず見てみて、わけわからないデータであれば気に しなくていいです。通常、プリンタ用のデータは わけのわからない バイナリ形式になっています。逆に英語の warning メッセージのような ものが書いてあったら、要注意でしょう。良く読んでください。 次に # cat /tmp/gstest.bin > /dev/lpt0 してみてください。テストデータファイル名やプリンタデバイス名は 適宜合わせてください。tiger.ps なら虎の画像が A4 一面にでるはずです。 ここで inkjet 系のプリンタについて注意: 擦れたり、横に線(スジ)が入って印刷される場合があります。 それらは多くの場合、プリンタヘッドが詰まっているなどが原因で、 ドライバの問題ではないかもしれません。何度かクリーニングを しましょう。プリンタヘッドが問題の場合は、Windows で印刷を 行っても同様の結果になります。 --- [管理番号 1462] (最終更新 2000/06/06 23:24:42) Q. 日本語の ps file が印刷したいんですが。 A. [管理番号 1461] と基本的に同じです。日本語の ps ファイルについても、 まず X 上で表示できるかどうかを確認してください。 % gs hoge.ps とすると画面上に表示されるはずです。確認したら GS> quit と入力して抜けてください。 ports/packages で gs をインストールしたなら、サンプルは /usr/local/share/ghostscript/"GS_VERSION"/vflib/article9.ps などにあるかもしれません。 ここで日本語が表示できなかったら gs が日本語対応になっていないか、 うまく機能していない可能性があります。ports/packages を使って インストールし直してください。 VFlib については [管理番号 1463] VFlib って何ですか を参照してください。 画面上で確認できたら、[管理番号 1461] と同様に、プリンタで印刷できるか どうか確かめてください。 --- [管理番号 1463] (最終更新 1999/11/19 15:53:36) Q. VFlib って何ですか? A. 日本語の TrueType フォントなどを利用して、任意の解像度の日本語 フォントを扱うための、フォントレンダラーです。これが組み込まれた gs では、日本語文字がギザつきなしにきれいに印刷できます。 また、X-TT と呼ばれる、X サーバに freetype という同様のフォント レンダラーを組み込んだものもあり、これを利用すると X の画面の上 でも多様な大きさの日本語文字をきれいに扱うことができます。 最近の gs は日本語文字の表示(レンダリング)に VFlib という ライブラリを用いています。VFlib の設定ファイルの vfontcap が 正しく設定されているか、ktest -f min などとしてみて確認して みてください。 FreeBSD の ports/packages 以外で VFlib をインストールした場合 には、ktest はパスが通っていないかもしれません。 /usr/local/lib/VFlib などにないか探してみてください。 VFlib については を参照してください。 vfontcap は FreeBSD の ports/packages の場合、 /usr/local/share/VFlib/__VERSION__/ にあります。 --- [管理番号 1464] (最終更新 2002/08/24 06:22:44) Q. gs でもっと簡単に印刷したい! A. PostScript を受け取って自分のプリンタの PDL に変換する フィルタスクリプトを作りましょう。 適当なディレクトリ、例えば /usr/local/libexec/ などに、ps2pr.sh と いうフィルタを作ります (ファイル名は何でもいいです)。 ----- ps2pr.sh の例 ---- #!/bin/sh /usr/local/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=lips3 -sOutputFile=- - quit.ps ------------------------ -sDEVICE=lips3 の部分は、自分の使うプリンタで置き換えましょう。 gs は間違いを避けるために フルパスで記述した方がいいでしょう。 また、シェルスクリプトなので、作ったら chmod +x しておくのを 忘れないようにしましょう。 良く使う option: -r360x360 (解像度を dpi で指定) そのほかに ドライバによってはいくつか独自のオプションを持つものが あるので、ドキュメントを見ておきましょう。オプションを指定しないと 実力を発揮できないどころか全く機能しないものもありますし、逆に何も 指定しない状態に比べて格段にきれいになるドライバもあります。 注意点 o stcolor は stcolor.ps というファイルを先に読み込ませてやる必要があります。 o uniprint driver を使う場合は適切な upp file を指定する必要があります Ghostscript の doc directory の Devices.htm (devices.txt) を良く読み ましょう(環境によってはフルパスで指定しないと動作しないかもしれません)。 用意できたら、 # cat test.ps | /usr/local/libexec/ps2pr.sh > /dev/lpt0 としてみましょう。パスは環境に合わせて適宜置き換えてください。 うまく印刷できたらフィルタは完成です。 --- [管理番号 1465] (最終更新 1999/11/19 15:53:39) Q. gs でもっともっと簡単に印刷したい (lpr の利用) lpr/lpd がうまく動かない (lpr/lpd の利用 & 関連 QandA 集) A. UNIX の世界では、普通は直接プリンタを操作せずに、プリンタを 担当する daemon (lpd) に lpr コマンドを通して依頼を出します。 lpd は、複数の人から複数の仕事の依頼があるかもしれないので、 それらを調整して出力をします。なお、SystemV 系の UNIX では、 lpr ではなく lp というコマンドを利用します。設定は異なりますが、 基本的な思想は共通です。詳しくは lpr、lpd のマニュアルをどうぞ。 lpd の設定はハンドブックや printcap のマニュアルなどを参考に してください。FreeBSD では printcap のマニュアルも、jman に より日本語で参照できます。 よくある注意事項: ・ printcap: 行の最後の '\' を忘れていないか? ・ '\' の後に空白などがついていないか? ・ ':' が最初や最後でつけ忘れていないか? (サンプルの書式を良く見ましょう) まずは % grep lpd /var/log/messages の結果と printer log (printcap の lf で指定したファイル) 確認してください。とにかく、問題が起きたらエラーメッセージを 確認しましょう。lpd/printcap について ML/news などで質問する ときも、これらの情報は必須です。 lpd は起動していますか? % ps auxww | grep '[ l]pd' でlpd が起動しているかどうか確認してください。なければ FreeBSD では /etc/rc.conf に lpd_enable="YES" の行を追加。 関連 QandA: [管理番号 558] (lpd 死亡:2.2.5R のみ?) [管理番号 552] (lpd:/etc/rc.conf 関連) Q. lpc restart "PRINTER_ENTRY" すると "no daemon to abort" と言われてしまう A. "no daemon" というのは lpd の親玉のことではなくて、 現在プリンタと通信してデータを送ろうとしている lpd の "子分 daemon" がいないという意味(印刷中であっても、 データが転送し終わっていればもういなくなります)なので、 特に印刷中でなければこのメッセージには問題はありません。 複数エントリで spool ディレクトリがだぶっていないか? FreeBSD では別なエントリに同じ spool dir を 割り当てることを禁止しています。 [管理番号 163] duplicate spool lpd から if を起動するときの PATH は 自分がログインしているときの PATH とは違うので、フィルタにはなるべくフルパスを書きましょう。 [管理番号 773] (mx #0 関連) [管理番号 584] lpd が datasize limit に引っ掛かった... ECP の関連 remote printing 関連 通常の lpd では remote printer (rm の項)に対しては if(入力フィルター) の設定は無視されますが、FreeBSD では 2.2.6-RELEASE 以降、if が有効になるようになっています。 [管理番号 177] rm には if 効かない => 2.2.6-RELEASE 以降の FreeBSD では obsolete --- [管理番号 1466] (最終更新 2001/08/12 05:24:59) Q. プリンタ関連 QandA リソースリスト A. [管理番号 411] 三田さんページへのリンクの gs の使い方 [管理番号 614] man -t の使い方 [管理番号 1142] remote printer、/etc/hosts.lpd 関連 [管理番号 1209] (remote 関連 + filter 記述チェック)ある程度メタ的 UNIX Magazine 1999年6月号 p.133 プリンタの設定(UNIX の玉手箱) lpr/lpd のガイドが出ています --- [管理番号 1470] (最終更新 2000/05/24 20:52:55) Q. FreeBSD から、Windows NT 4.0 に接続されたプリンタへの印刷。 A. 以下のような2つの方法があります。 1. WinNT に lpd(8) サービスを導入して印刷。 まず FreeBSD 側の設定です。 a) /etc/printcap に実際のプリント用と Ghostscript のフィルタ用の二つの エントリを追加します。なお、リモートホスト名を BLESS、リモートプリンタ 名を LP-1500 と仮定します。書式についての詳細は printcap(5) を読んで ください。 remote:\ :lp=/dev/null:sh:mx#0:lf=/var/log/lpd-errs:\ :sd=/var/spool/output/remote:\ :if=/usr/local/libexec/LP-1500.sh: remote-help:\ :lp=/dev/null:sh:mx#0:lf=/var/log/lpd-errs:\ :rm=BLESS:rp=LP-1500:\ :sd=/var/spool/output/remote-help: b) 上記で追加したエントリ用のスプールディレクトリを作成します。 # mkdir /var/spool/output/remote # mkdir /var/spool/output/remote-help c) 以下の様なフィルタ /usr/local/libexec/LP-1500.sh を作成し、chmod +x しておきます。使用するプリンタにより設定は異るでしょう。 #!/bin/sh exec /usr/local/bin/gs -q -dNOPAUSE -sDEVICE=epag \ -sOutputFile=- - | lpr -l -Premote-help d) WinNT で lpd の service を稼働させるには、 サービス -----> TCP/IP Print Server です。 e) 印刷方法は、 % lpr -Premote tiger.ps です。 森さんよりの貴重なアドバイスについては、[FreeBSD-beginners-jp 6561] 前後を見てください。 2. lpd を使わずに smbclient(1) の print コマンドで印刷する。 /etc/printcap は使いません。スクリプトによる自動化では [FreeBSD-users-jp 38229] を参考にしました。 a) /usr/local/bin/gsf として以下の内容のスクリプトを作成します。 #!/bin/sh OF=/var/tmp/gsf.$$.LP-1500 trap "rm -f $OF; exit 1" 2 15 touch $OF chmod 600 $OF { echo showpage ; echo quit ; } | \ /usr/local/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=epag \ -sPAPERSIZE=a4 -sOutputFile=$OF $1 > /dev/null 2>&1 /usr/local/bin/smbclient '\\BLESS\lp-1500' \ himitu -U user1 -P -N -c "print $OF" rm -f $OF exit 0 b) スクリプトのパーミッションを設定します。特に smbclient へのパスワー ドとユーザ名については、一般ユーザに読めないようにする必要があるかも しれません。 # chown root.wheel /usr/local/bin/gsf # chmod 711 /usr/local/bin/gsf c) そして印刷は、 % gsf tiger.ps です。ただし、一時ファイル /var/tmp/gsf.$$.LP-1500 を印刷実行中に変更 しないこと! ここでも森さんにお世話になりました。[FreeBSD-beginners-jp 6586] 前後を 見てください。 --- [管理番号 1471] (最終更新 1999/11/19 15:58:09) Q. FreeBSD 3.x で FreeBSD 版の netscape navigator/communicator を使っ ています。gv などの外部プログラムを呼ぶように設定すると、terminal に /usr/libexec/ld-elf.so.1: Invalid file format と表示されて外部プログラムが起動しません。 A. Netscape に限らず、a.out 形式のプログラムから ELF 形式の外部プログ ラムを呼び出すとこうなります。 netscape の場合は外部プログラムの設定の際。Application: の欄に LD_PRELOAD= gv %s のように書いて、環境変数 LD_PRELOAD の値を空にしてから外部プログラムを 呼ぶようにしましょう。 --- [管理番号 1472] (最終更新 1999/11/19 15:58:30) Q. 初代 Happy Hacking Keyboard (PD-KB01) を NotePC の PS/2 ポートに接 続しましたが、正しく認識してくれません。 A. NotePC によっては HHK 添付のケーブルを使用していない場合にこうなり ます (例: Libretto110CT)。HHK 添付のケーブルを使っているかどうか確認し て下さい。 PFU に問い合わせたところ、 HHkeyboardは、機種切替の認識にコネクタの未使用端子を使っています。 NotePCでは、同じ未使用端子をマウスの信号に割り当てているもの が多く あります。 市販の延長ケーブルは、すべてのピン同士を接続してあるものがほとんどの ため、機種識別の信号とマウスの信号がぶつかってしまいます。 HHkeyboard標準ケーブルは、そのような問題がおこらないようになっていま す。 通常、デスクトップ機では、未使用端子はマザーボード側で未接続となって いるため、市販の延長ケーブルでも多くの場合問題無く使えています。しか し、一部の小型筐体のPCで動作しないこともあるようです。 との事です。 --- [管理番号 1473] (最終更新 1999/12/23 18:00:45) Q. /usr/bin/mail で日本語のメールを読もうとすると、長いメール だけが文字化けします。 A. $HOME/.mailrc で set PAGER=jless となっているか見直しましょう。 環境変数 PAGER で jless が設定されていても、$HOME/.mailrc で set PAGER=more となっているとページャとして more が起動されて しまいます。 短いメールはページャが起動されずに素の iso-2022-jp が出力され、 kterm は iso-2022-jp を正しく表示できるのでうまく表示されますが 長いメール (環境変数 crt よりも行数が多いメール) はページャが 起動されて、ページャが ESC コードを ^[ と出力してしまいます。 --- [管理番号 1480] (最終更新 2000/04/19 21:32:36) Q. FreeBSD 3.3-RELEASE でインストーラからブートマネージャをインストール したところ、Windows 用 ウイルスチェックプログラム「SYMANTEC Norton AntiVirus(2000.00)」を使用すると、 「コンピュータに次のウイルスが感染しています」 「BloodHound.MBR」 と、警告されました。 A. この件について株式会社シマンテックからは 「このメッセージは、MBRが別のプログラムに更新されたことに対する警告で す。ウイルスに感染した恐れがあるという意味のメッセージであり、感染 したかどうかの判定ではありません」 との回答がありました。 これは FreeBSD のブートマネージャが BootEasy から FreeBSD boot0 ブー トマネージャに変更されたことによるもので、たまたまパターンマッチの都 合上、3.2-R までは警告表示されなかったのでしょう。或は SYMANTEC でも 折込済みだったかです。もしかしたら新版では対応されるかもしれませんが、 気になるようなら FreeBSD 配布 CD-ROM や FTP サイトなどの tools ディ レクトリから、BootEasy (bootinst.exe、boot.bin) や osbs.exe(osbs20b8) など、別のブートマネージャに入れ替えれば警告は出なくなります。なお、 boot0 に関しては 3.4-R でも変更がなかったので、同じように警告される でしょう。 また、この件に関する質問は同社ユーザサポート窓口にて確認することがで きます。 株式会社 シマンテック (英文名称 Symantec Japan, Inc.) ユーザサポート TEL:03(3476)1156 FAX:03(3476)1159 FreeBSD 2.2 系では BootEasy を標準のブートマネージャに採用していまし たが、基本的に FreeBSD 外部のプログラムのためメンテナンスしにくいと いう問題があり、これを解決するために boot0 と呼ばれるブートマネージャ が新たに作られ、3.0-R 以降では標準採用されています。インストーラ (sysinstall) によって MBR にインストールされるなど、表面的には BootEasy とほぼ同じですが、boot0cfg(8) を使って設定を変更することが できます。ソースコードは /usr/src/sys/boot/i386/boot0/ にあり、シス テム構築後バイナリは /boot/boot0 に置かれます。 --- [管理番号 1487] (最終更新 2000/04/19 21:36:25) Q. FreeBSD 3.3-RELEASE でネットワーク関係のプログラムがうまく動きません。 例えば、NIS/NFS、samba、ssh の port forwarding、DHCP などで問題が起き ます。 A. ifconfig -a で network interface についての情報を見て下さい。 lo0 はどうなっていますか。 詳しくは 3.3-RELEASE の errata の lo0 (ループバックデバイス) の項を 参照して下さい。 尚、3.3-RELEASE で DHCP を利用している場合は /etc/rc.conf で network_interfaces="auto" としてもうまく動きませんので、 network_interfaces="lo0 ed0" などと、lo0 を筆頭に全ての network interface を書く必要があります。 3.4-RELEASE ではこのバグは修正されています。 3.3-RELEASE における不具合の実例としては、users-jp 下記のメールから 始まる thread に報告があります。 Subject: [FreeBSD-users-jp 45823] 3.3R & NIS and NFS Message-ID: <19990921113616P.taoka@infonets.hiroshima-u.ac.jp> Subject: [FreeBSD-users-jp 46880] Did rc.conf format changed? Message-ID: <19991026104712V.okuyama@trl.ibm.com> Subject: [FreeBSD-users-jp 47316] samba-2.0.3 on FreeBSD3.3-RELEASE(PAO3) Message-ID: <19991110002735V.takachan@running-dog.net> Subject: [FreeBSD-users-jp 47741] [Q] ssh-1.2.27: can't forward Message-ID: <19991126232217P.vorspiel@duelists.org> 3.4-RELEASE 以降を使っているのに、lo0 が configure されておらず (ifconfig -a でみても、lo0 に IP address が割り振られていない)、 同様の問題が起こるという場合は /etc/rc.conf の記述を間違えている可 能性が大きいです。 /etc/defaults/rc.conf の List of network interfaces (or "auto"). というコメントでは分かりにくいかもしれませんが、auto keyword は単独 で記述する必要があります。具体的な例を出すと、 network_interfaces="vr0 auto" は間違いで、 network_interfaces="auto" または、 network_interfaces="lo0 vr0" # 全ての network interface を羅列 が正しい書き方になります。 --- [管理番号 1489] (最終更新 2003/05/17 21:39:26) Q. ghostview, gv で、起動時に ps ファイルを指定すると % ghostview xxx.ps Segmentation fault (core dumped) となります。そこで ghostview の場合に % ghostview で立ち上げて ghostview の menu で xxx.ps を選択し、okay を押す Cannot open file: No such file or directory と表示されるだけで xxx.ps を読むことができません。 A. ~/.Xdefaults や ~/.Xresources などで *international : TRUE としていませんか。X のアプリケーションの中には international という リソースを TRUE にすると正常に動作しなくなるものがあります。 解決方法としては、次のどちらかを選べばよいでしょう。 1. 正常に動かなくなるアプリケーションについては Ghostview*international : FALSE GV*international: false を ~/.Xdefaults や ~/.Xresources に書き加える。 2. *international : TRUE と書くのをやめて必要なアプリケーションに 対してだけ XCalendar*international : TRUE のように指定する。 --- [管理番号 1490] (最終更新 1999/12/23 18:02:13) Q. Mathematica 4.0 をインストールしようとしたところ、付属の インストーラでは、次のように表示されて止ってしまいます。 > Enter 'd' for default installation, 'c' for custom, 'h' for help [c]: > ELF binary type not known. Use "brandelf" to brand it. > Abort trap > MathInstaller cannot determine what kind of computer > system it is running on. A. インストーラのメッセージにあるように、インストーラを含め関連する バイナリファイルを % brandelf -t Linux ファイル名 としてやれば動きます。 たとえば CD-ROM を全部 MO にコピーした後、MO のマウントポイントで % find . -print -type f | grep /Binaries/Linux | xargs brandelf -t Linux とすれば、その MO を使って普通にインストールできます。 --- [管理番号 1497] (最終更新 2001/08/12 02:51:17) Q. NIS って何ですか? NIS を導入したいのですが、やり方がよくわかりません。 A. 簡単に言うと、複数のホストで /etc/passwd や /etc/hosts などの 情報を共有する仕組みです。例えば、複数のホストにアカウントを 持っているユーザがパスワードを変更したいとき、NIS がない場合は 全てのホストにいちいちログインして、passwd(1) コマンドで パスワードを変更しないといけません。 一方、NIS を導入しておけば、1つのホストでパスワードを変更すれば、 自動的に他のホストにも新しいパスワードの情報が反映されます。 NIS の概念、用語、関係コマンドについてはハンドブック に丁寧な説明がされています。また、NIS マスタサーバ、 NIS スレーブサーバ、NIS クライアントのセットアップの方法も 具体例にもとづいて書かれています。 このほかに、NIS の導入時には、以下のページが参考になるでしょう。 --- [管理番号 1501] (最終更新 2000/03/04 08:15:31) Q. FreeBSD 3.x でカーネルを再構築した後、新カーネルで起動すると起動中に無 効にしたはずのデバイスに関する以下のようなメッセージが表示されます。な にが原因なのでしょうか。 config> di psm0 No such device: psm0 Invalid command or syntax. Type `?' for help. config> di ppc0 config> di zp0 No such device: zp0 Invalid command or syntax. Type `?' for help. config> di ze0 No such device: ze0 Invalid command or syntax. Type `?' for help. (上記の例では /sys/i386/conf 以下のカーネル設定ファイルで無効にしたデ バイスは psm0、zp0、ze0 です) A. 最初のインストールのとき、以下の Kernel Configuration Menu が出てきた と思いますが、 Skip kernel configuration and continue wiht installation Menu Start kernel configuration in Visual mode Startkernel configuration in CLI mode のうち、 Menu Start kernel configuration in Visual mode あるいは Start kernel configuration in CLI mode を選んでインストールしませんでしたか? 3.x ブランチでは、インストール時にこれらのモードを使ってデバイスを非活 性にするとその情報を /boot/kernel.conf に書き込みます。そして、インス トール直後の GENERIC カーネルはそのファイルの情報を元にデバイスを非活 性にします。([管理番号 1255] 参照)。 新しいカーネルを作成した場合、たとえば psm0 を削除したカーネルでそのま ま起動をかけると /boot/kernel.conf を読み込んで psm0 を非活性にしよう としますが、カーネル自体に psm0 のドライバが含まれていないため config> di psm0 No such device: psm0 Invalid command or syntax. Type `?' for help. となるわけです。 FreeBSD 3.x において、自分で作った新しいカーネルを使う場合は、カーネル 構築後、/boot/kernel.conf の内容を消去する (方法は色々ありますが、例えば cp /boot/kernel.conf /boot/kernel.conf.old cp /dev/null /boot/kernel.conf ) か、/boot/loader.confの userconfig_script_load="YES" を "NO" あるい はコメントアウトするなりして /boot/kernel.conf を起動時に読み込まない ようにして下さい。 また、逆にカーネルに組み込んであるデバイスを臨時に非活性にしたいような 場合は /boot/kernel.conf を編集すればOKです。たとえば、セカンダリの IDEコントローラを (wd1) を非活性にしたい場合は次のようにします。 di wdc1 q --- [管理番号 1505] (最終更新 2001/05/07 03:21:08) Q. FreeBSD 2.2.x-RELEASE を使用しています。一般ユーザでも mount(8) コマンドが使用できるように chmod 4555 /sbin/mount としたところ、次回起動時からはシングルユーザモードでしか 立ち上がらなくなりました。 A. 2.2.x-RELEASE の場合、 ls -l /sbin/mount などとしてみると、デフォルトでは -r-xr-xr-x 1 bin bin 69632 Mar 25 /sbin/mount となっていると思います。これを chmod(1) コマンドなどで SUID すると、たとえ root が実行しても、ユーザ bin の権限でしか 実行されなくなり、ファイルシステムが mount 出来なくなってしまいます。 対策としては、fixit.flp からシステムを起動して Fixit# mount /dev/wd0a /mnt (もし /mnt が無ければつくる。) Fixit# chmod 555 /mnt/sbin/mount と元に戻して reboot(8) してください。fixit.flp については [管理番号 483] に説明があります。 なお、mount(8) コマンドを SUID するのは薦められません。 [管理番号 666] などを参考にして amd(8) の使用を検討してください。 --- [管理番号 1506] (最終更新 2000/01/20 19:47:50) Q. 8GB/33GB を超えるハードディスクドライブが使えないことがあると いう話を聞きましたが本当ですか? A. 正確には、1,024シリンダを超える HDD に関する問題で、普通は 1,024 シリンダで 8GB (8x2^30 バイト=8.4GB) となるところから「8GB 超」と 呼ばれています。また、これとは別に 33.8GB 以上の HDD が使えない 問題もあります。以下の QandA を参照して下さい。 [管理番号 1507] Q. どうして 8GB 超の HDD が使えないことがあるのですか? [管理番号 1508] Q. FreeBSD の大容量 IDE HDD への対応状況は? [管理番号 1509] Q. 大容量 HDD (SCSI/IDE) を使うに際の注意点は? [管理番号 1510] Q. HDD の構造はどうなっているのでしょう? [管理番号 1511] Q. HDD の「CHS」って何ですか? [管理番号 1512] Q. HDD の「ジオメトリ」って何ですか? [管理番号 1513] Q. HDD の「ジオメトリ変換」って何ですか? [管理番号 1514] Q. HDD の「LBA」って何ですか? [管理番号 1515] Q. パーティション (partition) って何ですか? [管理番号 1516] Q. FAT32 って何ですか? [管理番号 1517] Q. FAT32X って何ですか? [管理番号 1518] Q. FDISK.EXE はどうやってパーティションを決めているのですか? [管理番号 1519] Q. 8GB 以内の領域なのに FAT32X が出来てしまいました。 [管理番号 1520] Q. FIPS で 8GB 超 HDD は扱えますか? [管理番号 1521] Q. PatritionMagic で 8GB 超 HDD は扱えますか? [管理番号 1522] Q. PartitionIt で 8GB 超 HDD は扱えますか? [管理番号 1523] Q. PARTITION COMMANDER で 8GB 超 HDD は扱えますか? [管理番号 1524] Q. 8GB 超 HDD で使えるブートセレクタを教えて下さい。 --- [管理番号 1507] (最終更新 2000/01/20 19:47:52) Q. どうして 8GB 超の HDD が使えないことがあるのですか? A. 原因はハード、ソフト共に色々とあって、それぞれの原因により問題の 程度や症状も異なります。 8GB 超の IDE HDD を扱う場合、主に以下の 5 つの問題点があります。 (A) マザーボードの制限 (B) BIOS の制限 (C) ブートローダの制限 (D) OS kernel の制限 (E) 各 application の制限 このいずれかが原因で、8GB 超の HDD 領域が扱えないような場合は、 それぞれに応じて以下のような問題が起こります。 1.physical access 全ての PC はマザーボード上の IDE bus を介して IDE HDD に アクセスするので、(A) の制限がある場合、どうやっても 8GB 超の HDD 領域を利用することはできません。 しかし、1995 年頃以降に発売されている PC であれば、このような マザーボード上の制限はまずないと見てよいでしょう。 2.boot Windows・DOS・PC-UNIX 問わず、全ての PC 環境は、まず BIOS によって起動されるので、OS のブートプログラムが 8GB 超の位置に あった場合、(B) の制限に引っかかります。 HDD 全体をパーティション分割した場合、起動させたい OS のブート プログラムを含むパーティションの先頭が 8GB 以内に存在すれば、 この問題は回避できます。 8GB 超領域からブートプログラムを起動したい場合、BIOS update しか手はありません。ただ、1998 年頃以降に発売されている PC で あれば、このような BIOS 上の制限はまずないと見てよいでしょう。 ただし、(A) の制限がある場合は、BIOS の update は無効です。 ただし、FreeBSD はブート時以外は BIOS を介さないため、 一度ブートしてしまえば BIOS の制限は関係なくなります。 3.ブートローダ OS のブートプログラムは、HDD 先頭セクタに書かれているブート ローダから読込まれるので、OS のブートプログラムが 8GB 超の 位置にあった場合、(C) の制限が有効となってきます。 BIOS 問題同様、OS のブートプログラムを含むパーティションの 先頭が 8GB 以内に存在すれば、この問題は回避できます。 8GB 超領域からブートプログラムを起動したい場合、8GB 超に対応 したブートローダが必要となります。FDISK.EXE で標準的に作られる ブートローダや、LILO、booteasy といった PC-UNIX 用の標準的な ブートローダは 8GB 超に対応していません。 この問題はスライス (パーティション) 設定を工夫することで回避できます。 [管理番号 1509] 大容量 HDD (SCSI/IDE) を使うに際の注意点は? を参照して下さい。  8GB 超対応のブートローダとしては、extipl や GNU GRUB といった ものが確認されています。  ただし、(A)(B) の制限がある場合はブートローダを変更しても 意味はありません。 4.MS-DOS, Windows MS-DOS, Windows95 初期バージョン(4.00.950, 4.00.950 A) の システムコールや DLL は、8GB 超の HDD を扱えないので、(D) の 制限が効いてきます。 HDD のパーティションをどうやりくりしたところで、8GB 超を扱う 手段がないので、OS を介する限りは 8GB 超領域にはアクセスでき ません。8GB 以内の領域に完全に含まれるパーティションのみを 利用していれば、この問題は回避できます。 8GB 超領域を扱いたい場合、Windows95 OSR2, Windows98 などの 新しい OS に upgrade するか、または直接 BIOS 経由で HDD に アクセスするようなアプリケーションを用いるしか手はありません。 ただし、(A)(B) の制限がある場合、OS を upgrade しても 意味がありません。 5.FreeBSD [管理番号 1508] Q. FreeBSD の大容量 IDE HDD への対応状況はどうなっているのでしょうか? [管理番号 1509] Q. 大容量 HDD (SCSI/IDE) を使うに際の注意点は? を読んで下さい。 6.FAT32X file system Windows で 8GB 超領域を扱う場合、そのパーティションは LBA という アクセス方式を用いるためのファイルシステム (FAT32X) として用意 されます。 このファイルシステムは、MS-DOS や Windows95 初期バージョン、 FreeBSD 旧バージョン (2.2.8-RELEASE 以前) では知られていない ので、(D) の制限が効いてきます。 Windows の FDISK.EXE で「大容量ディスクのサポートを使用 可能にしますか (Do you wish to enable large disk support)」 の問いに [N] と答えてパーティションを作成すれば、FAT32X は作成 されませんので、この問題は回避できます。 FAT32X を扱いたい場合、Windows95 OSR2, Windows98 及び FreeBSD 3.x-RELEASE に upgrade するか、または直接 BIOS 経由で HDD にアクセスするようなアプリケーションを用いる (MS-DOS, Windows)、 もしくは自分でカーネルソースの diskslice_machdep.c を書換えて FAT32X 対応カーネルを作る (FreeBSD) しか手はありません。  ただし、FAT32X が扱えるようになっても、8GB 超領域が使えるか どうかは別項目の制限に依存します。 7.partitioning tools MS-DOS,Windows 環境でパーティションを切るためのアプリケーションは、 FDISK.EXE 以外に FIPS.EXE や Partition Magic などがありますが、 これらには (E) の制限が効いてきます。 FIPS 1.4 以前は FAT32X に対応していないので、8GB 超を扱う ためのファイルシステムを操作できません。FIPS 2.0 は FAT32X を 扱うことはできますが、8GB 超を扱えないので、8GB 超にある パーティションを操作すると HDD 内容を壊してしまいます。 Partition Magic 3.0 以前は FAT32X に対応していないので、8GB 超を扱うファイルシステムを操作できません。Partition Magic 4.0 は FAT32X を扱うことは出来るが、8GB 以内に作られた FAT32X を 異常扱いしてしまうため、8GB 超の FAT32X しか扱えません。 Windows の FDISK.EXE だけを使っていれば、この問題は回避 できます。 FAT32X を安全に扱いたい場合、FIPS や Partition Magic の作者、 メーカに対して要望を出し、アプリケーションの改善を訴えるしか ありません。 ただし、FAT32X が安全に扱えるようになっても、8GB 超領域が 使えるかどうかは別項目の制限に依存します。 --- [管理番号 1508] (最終更新 2001/10/14 11:51:14) Q. FreeBSD の大容量 IDE HDD への対応状況はどうなっているのでしょうか? A. 結論から言うと、 - FreeBSD 2.2.7-RELEASE 以前 8GB (8.4GB) まで。それ以上の HDD では最初の 8GB しか使用 できない。 - FreeBSD 2.2.8-RELEASE 以降 (3.0-RELEASE 含む) デフォルト (CHS モード) では 33.8 GB まで。 LBA モードにすると 33.8 GB 超でも問題なし。 となります。 理由を簡単にまとめると、 1. IDE のハードディスクのセクターをアドレス指定する方法は、 CHS 変換とLBA 変換の2種類があります。 2. CHS 変換の場合は3つパラメーターがありますが、 それぞれの最大値は16383、16、63です。 3. そのため CHS 変換の場合の最大容量は 8.4GB になります。 (16383x16x63x512 = 8.4x10^9) 4. ハードディスクベンダーは、CHS 変換では 8.4GB までの使用しか 保証していないようです (実際に動作するかどうかは別)。 8.4GBを超える容量を使用するには LBA 変換を推奨しています。 5. FreeBSD の wdドライバは、CHS 変換を標準で採用しています。 LBA 変換の使用は *公式には* サポートされていないようです。 以上より、FreeBSD で *公式* にサポートされている IDE HDD は 8.4GB までと判断するのが妥当だと思われます。2.2.7-RELEASE 以前は この制限があてはまります。 しかし、2.2.8-RELEASE 以降は 6. CHS 変換で 8.4GB を超える容量を取り扱う場合、パラメータを 65535x16x63 まで拡張していますので、CHS変換で 33.8GB まで 使用可能なシステムが多いようです。 (65535x16x63x512=33.8x10^9) 7. 33.8GB を超えると、最初のパラメーターが 65535 を超えるため、 誤作動します。 8. CHS モードでなく LBA モードにすると 33.8GB 超でも OK です。 となっています。ただしこれは現行の wd ドライバに対するものです。 現在 (1999/12) current で新しい ata ドライバーがテスト中ですので、 将来適切なコードが組み込まれることが期待できます。 その他の注意点は [管理番号 1509] Q. 大容量 HDD (SCSI/IDE) を使うに際の注意点は? を読んで下さい。 まとめると、 - 8 GB 超 IDE HDD を利用する場合 まず [管理番号 1507] を読んで、マザーボードと BIOS が対応している ことを確認してください。FreeBSD 2.2.8-RELEASE 以降 (3.0含む) を 使用し、CHS モード (デフォルト) で使用するのが良いでしょう。 ただし、マザーボードが 8.4GB 以上の IDE HDD に対応していなくても、 POST 中にハングせず、FreeBSD のカーネルが HDD を正しく認識できる 場合は、使用可能な場合があります。 - 33.8GB以上のIDE HDDを使用する場合 マザーボードと BIOS が 33.8GB 以上の IDE HDD に対応していることを 確認してください。HDD は、ATA-4 以降の仕様が良いでしょう。 FreeBSD は 2.2.8-RELEASE 以降 (3.0含む) を使用し、デフォルトの CHS モードでなく LBAモードで使用します。具体的には カーネル コンフィグレーションメニューで、 Storage---IDE/ESDI/MFM disk controller wdc0 (または wdc1) を選択し、Flags を 0x10001000 に設定します (これは Master と Slaveを両方指定する場合)。 なお、カーネルダンプにバグがありますので、カーネルダンプを無効に しておくか、カーネルにパッチをあてる必要があります。 参考資料 d1153r18 ATA/ATAPI - 4 revision 18 8.4GB Barrier Getting beyond the ATA 8.4 GB limit Parameters of 8.4 GB and Larger AWARD BIOS 4.5x 33.8GB Limitation UPDATE10: ATA/ATAPI driver new version available. [FreeBSD-users-jp 38444] Over 8GB HDD FAQ 8GB 超 HDD 問題の解説 [FreeBSD-users-jp 47968] Re: FreeBSD 32GB Limitation? current では sos の書いたata(4)ドライバがあります。 [FreeBSD-users-jp 34329] Re: Does 3.0-RELEASE support LBA mode (over 8GBATA)? 現在のコードの LBA の問題 [FreeBSD-users-jp 31748] Re: ATA DISK larger than 8.4GB on 2.2.5 LBA 問題のパッチ(3.0系用) [FreeBSD-users-jp 31746] Re: ATA DISK larger than 8.4GB on 2.2.5 LBA 問題のパッチ(2.2.5, 2.2.6, 2.2.7用) [FreeBSD-users-jp 47965] Re: FreeBSD 32GB Limitation? 3.3-RELEASE のカーネルのコードの解説 ASUStek マザーボード 大容量 IDE HDD対応予想リスト [FreeBSD-users-jp 47999] ASUStek Slot 1マザーボード [FreeBSD-users-jp 47996] ASUStek Socket 7マザーボード [FreeBSD-users-jp 48004] 予想リストの解説 ASUStek マザーボード大容量 IDE HDD への対応調査結果 [FreeBSD-users-jp 48747] Re: FreeBSD 32GB Limitation? (30.0GB-NG) --- [管理番号 1509] (最終更新 2000/01/20 19:47:54) Q. 大容量 HDD (SCSI/IDE) を使うに際の注意点は? A. IDE HDD の場合は、まず [管理番号 1508] Q. FreeBSD の大容量 IDE HDD への対応状況は? を読んで下さい。 以下の記述は、SCSI HDD・IDE HDD の両方に当てはまります。 注意点は、以下の2点です。 (1) FreeBSD のブートローダは [管理番号 1507] 3. ブートローダ にあるように 8GB 超に対応していないため、2.2.8-RELEASE 以降で あっても、ルートパーティションを含むスライスの先頭を 8GB 以内の 領域に置かなくてはいけません。 標準のブートローダでなく、GNU GRUB を使って直接カーネルを起動させる 設定にしておくと、8GB 超の位置にあるカーネルを起動できるようになります。 (2) ある条件が重なると、バグによりブート時に停止してしまいます。 [FreeBSD-users-jp 48565] Re: QandA about over 8GB/32GB IDE HDD ブート時の bad144 に関するバグの解説とパッチ ルートパーティションを含むスライス全体が 8GB 以内に収まるようにすると 回避できます。 例えば wd0 が 20GB なら、 /dev/wd0s1 ... 15GB (Windows 用) /dev/wd0s2 ... 5GB (FreeBSD 用) /dev/wd0s2a ... / 100MB /dev/wd0s2e ... /var 100MB /dev/wd0s2f ... /usr 4.8GB だと、ルートパーティション (/dev/wd0s2a) を含むスライス (/dev/wd0s2) の 先頭が 8GB 以内でないので、ブートできません。 一方、 /dev/wd0s1 ... 5GB (Windows 用) /dev/wd0s2 ... 15GB (FreeBSD 用) /dev/wd0s2a ... / 1GB /dev/wd0s2e ... /var 1GB /dev/wd0s2f ... /usr 13GB では、ルートパーティション (/dev/wd0s2a) を含むスライス (/dev/wd0s2) の 先頭は、8GB 以内から始まっているので (1) の問題は回避できます。 しかし、ルートパーティション (/dev/wd0s2a) を含むスライス (/dev/wd0s2) 全体は 8GB に収まっていないので、(2) を回避するためには /dev/wd0s1 ... 5GB (Windows 用) /dev/wd0s2 ... 1GB /dev/wd0s2a ... / 1GB /dev/wd0s3 ... 14GB /dev/wd0s3e ... /var 1GB /dev/wd0s3f ... /usr 13GB とすればよいわけです。 * ここでの「スライス」とは DOS での用語「パーティション」と * 同じ意味です。また、ここでの「パーティション」という用語は * 「スライス」を /usr /var などのファイルシステム単位で分割 * したものを指します。 --- [管理番号 1510] (最終更新 2000/01/20 19:47:56) Q. HDD の構造はどうなっているのでしょう? A. 一般に HDD は薄い円盤を何枚か重ね合わせた構造をしており、この円盤の 各面をヘッド (または サーフェス) と言います。 また、この各面に対し、半径方向に等分した一円周をトラックと言い、この 各面のトラックを回転軸方向に連ねた仮想的な円筒をシリンダと言います。 さらにこのトラックを円周方向に分割した一区切りをセクタと言い、これが HDD を構成する最小ブロックとなります。 物理的には、ヘッド -> トラック -> セクタという順で構成されていますが、 これを輪切りではなく皮を剥くような仮想的な構成に見たてて、論理的には、 シリンダ -> トラック -> セクタという順で構成されているものとして 扱うことが多くなっています。 --- [管理番号 1511] (最終更新 2000/01/20 19:47:57) Q. HDD の「CHS」って何ですか? A. シリンダ/ヘッド/セクタ (cylinder/head/sector) の頭文字を取ったものです。 「HDD 一台辺りの総シリンダ数」 「HDD 一台辺りの総ヘッド数」 「トラック 1 つあたりの総セクタ数」 をそれぞれ 「シリンダ数」「ヘッド数」「セクタ数」 と呼び、これらの組を「CHS 値」と呼びます。 ちなみに、ヘッドとトラック (track) は別の概念ですが、その構造を頭に 描いてもらうと、「ヘッド数」と「1 シリンダ辺りのトラック数」とが 等しくなることが判ると思います。 CHS 値の中の「ヘッド数」が表現によって「トラック数」となることがあるの はこのためです。 --- [管理番号 1512] (最終更新 2000/01/20 19:47:58) Q. HDD の「ジオメトリ」って何ですか? A. 元々の意味は「幾何学」ですが、HDD の性質を表す要素として用いられる ことがあります。 具体的には、HDD 全体で幾つのシリンダを持つかとか、1セクタ辺りの バイト数だとかを総称して「ジオメトリ情報」と呼びます。CHS 値もその 代表的なものです。 --- [管理番号 1513] (最終更新 2000/01/20 19:48:00) Q. HDD の「ジオメトリ変換」って何ですか? A. 従来の IDE HDD では、各シリンダ/ヘッド/セクタ (cylinder/head/sector) にそれぞれ番号を割り振って、 「第 x シリンダの y 番目のトラックの z 番目のセクタ」 といった風に、その番号の組み合わせで位置を示していました。 しかし、HDD の容量が増加するにつれ、シリンダやセクタの分割の細密化が 激しくなると、外周トラックと内周トラックとでセクタ数が異なったり、 各トラック間での開始セクタの位置が異なったりと、従来の CHS 値が 使えなくなってきました。 このため、物理的なジオメトリ情報は無意味になり、その代わりに仮想的 なジオメトリ情報をデッチ上げて用いることになりました。この情報改竄 を「ジオメトリ変換」と言います。 --- [管理番号 1514] (最終更新 2000/01/20 19:48:01) Q. HDD の「LBA」って何ですか? A. Logical Block Access の略で、IDE HDD 上の位置を示すために使われる 数値の表し方です。 CHS 値での表し方とは異なり、LBA 方式では全てのセクタに HDD 全体の 通し番号を設けて、その位置を表しています。このため、ジオメトリ変換も いりませんし、ソフトウェア側からは HDD 内の構造を一切意識する必要が なくなりました。 最も大きな利点は、CHS 方式でのアクセスを行なう PC/AT BIOS には、各 ジオメトリ値に上限があり、シリンダ値の上限が 1,024 となっていたので ですが、LBA 方式ではこの上限が無くなったという点にあるでしょう。 したがって、1,024 cylinders 超の HDD 領域をアクセスするには、LBA 方式が不可欠となります。 --- [管理番号 1515] (最終更新 2000/03/04 08:15:44) Q. パーティション (partition) って何ですか? A. 一台の HDD の中を論理的に複数の領域に分けて用いる場合、この各領域を パーティションと呼びます。こうして分割して用いることで、各パーティ ションごとに別々の OS を入れたり、別々のフォーマットにしたりする ことが可能になります。 それぞれのパーティションには OS 固有の ID 値が書き込まれますので、 OS がこれを見てそのパーティションのフォーマットを知ることができる ようになっています。 また FreeBSD においては、DISK内を /usr /var などのファイルシステム 単位で分割したものをパーティションと呼ぶため、ここでいうパーティ ションをスライスと呼びます。 --- [管理番号 1516] (最終更新 2000/01/20 19:48:03) Q. FAT32 って何ですか? A. パーティションのフォーマットタイプの一つで、Windows95 で採用されて いる、大容量対応のパーティションです。従来の FAT12 や FAT16 という パーティションとは異なり、最大 2GB の領域を作成できます。PC/AT 機 でのパーティション ID は 0Bh です。 「FAT」の後の数値は、パーティション上の位置を示す数値を何ビットで 表現するかというビット数を表しています。FAT16 は 16 ビットの数値で 位置を示すため、大容量パーティションにすると後ろの方の位置が 示せなくなるのです。 --- [管理番号 1517] (最終更新 2000/01/20 19:48:05) Q. FAT32X って何ですか? A. パーティションのフォーマットタイプの一つで、Windows95 OSR2 で採用 されている、LBA 対応のパーティションです。ディスクアクセスに CHS 方式を使う FAT32 と異なり、最大 2TB までの領域を作成できます。 PC/AT 機でのパーティション ID は 0Ch です。 FAT32 と同様に、FAT16 にも LBA 対応版の FAT16X というパーティションが 存在しますが、FAT12 については LBA 対応版は存在しません。LBA 方式で しかアクセスできない領域には、必ず FAT32X か FAT16X でパーティションが 作成されます。 --- [管理番号 1518] (最終更新 2000/01/20 19:48:06) Q. FDISK.EXE はどうやってパーティションタイプを決めているのですか? A. 最初に 「大容量ディスクのサポートを使用可能にしますか」 (英語版では「Do you wish to enable large disk support」) と聞いてきますが、ここで「Y」と答えた時のみ FAT32, FAT32X, FAT16X が 作成されます。 FAT12, FAT16, FAT32 の違いはパーティションサイズによって一意に定まり ます。一般的には、そのパーティションタイプで作成可能な最大容量までは、 そのパーティションが採用されます。 FAT16X, FAT32X は、そのパーティションの位置が HDD 先頭から 8GB 超の 位置にある時のみ作成されます。8GB 超の位置では、容量がいくら小さくても FAT12 パーティションは作成しません。 --- [管理番号 1519] (最終更新 2000/01/20 19:48:11) Q. 8GB 以内の領域なのに FAT32X が出来てしまいました。 A. FDISK.EXE のパーティションタイプ決定ルールの例外です。HDD の末尾を含む パーティションを作成するとこうなります。 CHS 方式でジオメトリ変換を行なうと、丁度割り切れない場合に除算の余りが 生じます。このため、一番最後のシリンダには CHS 方式では表現し切れない 個所が生じてしまいます。 この部分を有効に使うためには LBA 方式を使う必要があるため、この部分 を含むパーティションは FAT32X や FAT16X で作成されます。 --- [管理番号 1520] (最終更新 2000/01/20 19:48:12) Q. FIPS で 8GB 超 HDD は 扱えますか? A. 扱えません。LBA に対応していませんので、8GB 以内でのディスク再配置 しかできません。 1.4 以前では単に扱えないだけで済むのですが、1.5c 以降の新しい版では 更に注意が必要です。1.5c で FAT32 対応をした際に、FAT32X パーティション についても、一般の FAT32 パーティションと全く同等に CHS 方式を用いるよ うに構築されてしまいました。 このため、8GB 超の位置にデータの存在する HDD については、正しく再配置 できずに、内容を壊してしまいます。この時に破壊されるのは、8GB 超の 位置ではなく 8GB 以内の位置にあるデータなので、思わぬところにある データが壊れていることになるでしょう。 --- [管理番号 1521] (最終更新 2002/03/07 15:32:11) Q. PatritionMagic で 8GB 超 HDD は扱えますか? A. 4.0 以降でのみ扱えます。それより前の版では LBA 対応されていませんの で、FAT32X や FAT16X は再配置出来ません。 ただし、4.0 では 8GB 以内の FAT32X や FAT16X を「異常パーティション」と 決め付けてしまっているので、これらのパーティションについては 4.0 を用い ても再配置出来ません。 また、4.0 に添付の BootMagic というブートセレクタがありますが、こちらは 残念ながら LBA 対応されていませんので 8GB 超領域の OS をブートできません、 --- [管理番号 1522] (最終更新 2000/01/20 19:48:19) Q. PartitionIt で 8GB 超 HDD は扱えますか? A. FAT32 のサポートはされていますが、LBA 対応されていないので FAT32X は扱えません。WindowsNT 用の 64KB cluster も扱えませんので、FAT16 で扱える最大容量は 2GB となります。 PartitionIt では、これらの扱えないパーティションタイプに対して、 一切の警告なしに勝手に他のパーティションタイプに変換してしまうよう ですので注意して下さい。 また、添付の SelectIt というブートセレクタも同様に LBA 対応されて いませんので、8GB 超領域の OS をブートできません。 --- [管理番号 1523] (最終更新 2000/01/20 19:48:20) Q. PARTITION COMMANDER で 8GB 超 HDD は扱えますか? A. LBA にも FAT32X にも標準で対応していますので、8GB 超 HDD 環境で 使用して問題ありません。 また、添付の SYSTEM COMMANDER Personal というブートセレクタも同様 に LBA, FAT32, FAT32X を扱えますので、8GB 超 HDD で使えます。 --- [管理番号 1524] (最終更新 2001/10/14 11:51:13) Q. 8GB 超 HDD で使えるブートセレクタを教えて下さい。 A. 以下のブートローダ LILO booteasy OS-BS は 8GB 超では使えません。LILO 以外は最終更新日がかなり古いソフトなので、 今後の対応も余り期待出来ないと思われます。 HDD の先頭から 8GB 超のパーティション (FreeBSD の用語でいうスライス) からのブートに対応しているブートセレクタ (ブートマネージャとも言います) に以下のようなものがあります。しかし、変化も著しいのでここに書いてある 内容を鵜呑みにしないでください。 XOSL GPL でソース配布もされています。GUI オペレーションなのが特徴です。 インストールには DOS パーティションあるいは独自のパーティションが必要 ですが、普通の人にとっては使いやすく、高機能なブートマネージャでしょう。 現在判明している不具合として、一部の環境において、マウスで特定のボタン をクリックしたとたんにマウスが凍り付く問題がありますが、キーボードでの オペレーションは可能なので致命的ではありません。 MBM Symon この二つはバイナリ配布のみのようです (MBM については未確認)。 Symon は boot0 (FreeBSD の標準ブートマネージャ) 同様複数のディスクを 使う場合には、それぞれのディスクにインストールする必要があります。 バージョン 2.05 になってからは特に大きな問題もありません。 現在お薦めできそうなものは以上の3種類です。いずれも OS-BS 等から考えると かなり高機能です。なお XOSL と Symon については、実際に使用して FreeBSD の起動に使えることを確認しています。 extipl は LBA 対応版の ソースが公開されているので、それをコンパイルすれば 8GB 超環境で 使えますが、512 bytes というサイズの制限から、通常版と比べると 若干機能が省略されます。 GNU GRUB は標準で 8GB 超に対応して いますが、コンパイルはあまり簡単ではなく、binutils の新しいバージョン を手に入れる必要があります。しかし安易に最新の binutils を入れるのは 危険ですので、試してみるだけならコンパイル済みのバイナリを使うのがよい でしょう。また、FreeBSD 3.0R 以降の ELF 形式のカーネルを直接指定して 起動させることも可能ですが、UserConfig 等の設定を生かすことができない ため、/boot/loader を起動するようにした方がよいでしょう。 Ranish Partition Manager は元々はパーティション再配置ツールですが、独自のブートセレクタを持って います。Ver.2.38βで LBA 対応しましたが、残念ながらこの版からシェアウェア になってしまいました。 商用ソフトになりますが、システムコマンダー 2000 SYSTEM COMMANDER 2000 は 8GB 超問題をクリアしています。また、パーティションコマンダー PARTITION COMMANDER もあり、これには、SYSTEM COMMANDER Personal が含まれており、これは SYSTEM COMMANDER 4 の簡易版です。 Windows NT/2000 が導入されていれば、Windows NT/2000 の boot loader を 使用する方法もあります。FreeBSD FAQ や [FreeBSD-users-jp 17043] が参考に なるでしょう。 --- [管理番号 1541] (最終更新 2001/10/22 01:18:34) Q. 浮動小数点演算を行なう program が SIGFPE で core dump してしまいます。 同じ program が他の OS では問題無く動くのに何故でしょうか。 A. 浮動小数例外 (SIGFPE) のデフォルトアクションが「コアイメージの作成」 (core dump) になっている為です。そのため FreeBSD 3.5-RELEASE 以前では、 SIGFPE が発生すると core dump してしまいます。4.0-RELEASE 以降、及び 3.5-STABLE では、標準で SIGFPE が Mask されるようになったので、この ような問題は起りません。 問題の回避方法について詳しくは を御覧下さい。 他にも、オンラインマニュアル fpsetmask(3)、math(3) や [FreeBSD-ports-jp 1993] [FreeBSD-users-jp 46652] Re: long double が参考になるでしょう。 --- [管理番号 1544] (最終更新 2002/03/07 15:32:11) Q. man の文書をテキスト化するにはどのようにすれば良いのでしょうか。 A. 単純に % man man > man.txt として plain text ファイルを作成すると、cat や more、less などで 見る分にはよいのですが、vi や emacs などのエディタで見ようとすると LS(1) FreeBSD General Commands Manual LS(1) N^HNA^HAM^HME^HE l^Hls^Hs - list directory contents S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS のように、太字や下線の部分がおかしくなってしまいます。これは NAME の太字を表現するのに、 N(^Hで一文字戻る)NA(^Hで一文字戻る)AM(^Hで一文字戻る)ME(^Hで一文字戻る)E のように、コントロールコード ^H を使っているからです。同様に 下線付きの `ABC' は A^H_B^H_C^H_ となります。 これを plain text にするには、以下のような方法があります。 (1) colcrt(1) を使用する % man man | colcrt > man.txt これが一番簡単でしょう。 % jman jman | colcrt > jman.txt jman も OK です。 (2) col(1) を使用する。 % man man | col -b > man.txt man ならよいのですが、日本語に対応していないため、jman では うまくいきません。 FreeBSD(98) の col は、3.5.1 以前は日本語が通るようにパッチがあてられて いましたが、4.0 以降は日本語化パッチが配布物の中に含まれています。 (3) colcrt や col の行なっていることを sed や perl で行なうと % jman jman | sed 's/.^H//g; s/.^H//g' > man.txt % jman jman | perl -pe 's/..\x08\x08|.\x08//g' > man.txt のようになります。なお、^H は Ctrl-v BackSpace や Ctrl-v h として 入力します。 (4) emacs (mule) 上で man を見て、ファイルに保存する。 M-x man [ENTER] マニュアル名 [ENTER] とすると、emacs 上にマニュアルが表示されます。それをファイル名を 指定して書き出せばいいでしょう。~/.emacs に (defvar manual-program "jman") としておくと、日本語マニュアルが表示されます。 おまけ。 (5) plain text ではありませんが、 % gzcat /usr/share/man/man1/ls.1.gz | groff -man > ls.ps とすると、マニュアルを Postscript 形式に変換できます。日本語マニュアルは ja-groff (/usr/local/bin/groff にインストールされる) を使って % gzcat /usr/share/man/man1/ls.1.gz | /usr/local/bin/groff -man > ls.ps とします。そのまま Postscript プリンタに出力したり、gs コマンド (ghostscript に含まれています) で見ることができます。 --- [管理番号 1547] (最終更新 2001/02/18 15:26:53) Q. wget で HTTP や FTP 経由で再帰的にファイルを取得したいのですが。 A. HTTP や anonymous FTP の場合は、それぞれ wget -m -np http://host/dir/ wget -m ftp://host/dir/ でできます。 HTTP では、http://host/robots.txt に探索を排除する記述があると、 ファイルを再帰的には取得できません。 また、 wget は HTML の OBJECT 要素、CITE 属性、LONGDESC 属性、 USEMAP 属性、PROFILE 属性、スクリプトなどに対応しておらず、 これらで参照されるファイルは取得できません。スタイルシートへの 対応も不完全です。 普通の FTP で、例えば ~/dir 以下を取得したい場合、 wget -m ftp://user:pass@host/dir/ とします。 普通の FTP で、ホームディレクトリ以外、例えば /dir 以下を取得したい 場合は、絶対パスで、 wget -m ftp://user:pass@host/%2Fdir/ と書きます。 %2F はルートディレクトリを表すスラッシュを URL エンコード したものです。スラッシュをエンコードせずに、 wget -m ftp://user:pass@host//dir/ としても同じ結果が得られますが、これは RFC 的に正しくありません。 (従って wget 以外に応用しようとするとうまくいかない可能性があります)。 一般的な URL の書式については RFC2396 を、HTTP URL や FTP URL の 解釈については RFC1738 を参照してください。 host というディレクトリを掘られたくなければ、-nH を、home/user/ と いったディレクトリを掘られたくなければ、--cut-dirs=2 を追加すれば よいでしょう。 wget には多くのオプションがありますので、詳しくは wget --help や info wget などとしてください。 --- [管理番号 1549] (最終更新 2000/05/24 20:54:39) Q. 既存の FreeBSD 領域の前 (HDD の中に存在するスライスの順番でいう前) に FreeBSD 領域を作ったら起動しなくなった。 A. FreeBSD 2.2 系のブートブロックは、HDD のスライステーブル (PC/AT 用語で 言う fdisk(8) パーティション) から、最初に見つけた FreeBSD 領域から /kernel を読み込もうとするため、同一の HDD の既存の FreeBSD 領域の前に 新たな FreeBSD 領域を作成すると、間違えて新規に作った領域から /kernel を読み込もうとして FreeBSD が起動できなくなります。 逆に言うと、後ろにスライスを作成する分には問題になりませんし、新しく作っ た領域に / (ルート)パーティション (BSD パーティション) を移動すれば動 作します。または、3.1R 以降ならこの問題は修正されていますので、可能な ら 3.4R 以降へのアップグレードをお薦めします。 どうしても新領域にルートパーティションを入れずに解決したい場合、ブート ブロックに新しい領域を FreeBSD 以外のスライスと思い込ませておくことに より、この領域をスキップして FreeBSD が既存領域から立ち上がるようにで きます。一旦システムが起動してしまえば、マウントして使用する事には影響 しません。この発展形として [管理番号 797] があります。 <解決法の一例> 1) root 権限で /stand/sysinstall を起動します。 2) メニューから「設定」->「パーティション」(Configure -> Partition) を 選び、目的のディスクを選択して新規スライスを作成します。 開始位置 大きさ 終了位置 名称 タイプ 種別 副タイプ フラグ 0 63 62 - 6 unused 0 63 2459457 2459519 wd0s2 2 fat 6 2459520 1024128 3483647 wd0s3 3 freebsd 165 C <---- 3483648 2661120 6144767 wd0s4 3 freebsd 165 6144768 201600 6346367 wd0s1 1 unknown 132 6346368 8064 6354431 - 6 unused 0 矢印のように領域を作成したら「Q」でこの画面を終了します。 3) 続いて「ディスクラベル」(Label) をメニューから選択します。ディスク ラベルを書き込み、ファイルシステムを作ります。 「C」で新たな FreeBSD のパーティションを作成します。最初にパーティショ ンのサイズを聞かれますが、デフォルトで使用可能な全ブロックサイズが指定 されますから、ディスク全体を一つのパーティションで使用する場合はこのま まで良いでしょう。次にパーティションのタイプを聞かれますから、ファイル システムを選択します。さらにそのパーティションをマウントする位置を聞か れます。/mnt などのパスを指定します。このとき、指定したディレクトリが なければ、自動的に作成されます。 ディスク: wd0 区画名: wd0s3 空き領域: 0 ブロック (0MB) ディスク: wd0 区画名: wd0s4 空き領域: 0 ブロック (0MB) 区画 マウント位置 容量 Newfs 区画 マウント位置 容量 Newfs ---- ------------ ---- ----- ---- ------------ ---- ----- wd0s2 1200MB DOS wd0s3e /mnt 500MB UFS Y <--------- wd0s4a 32MB * wd0s4b swap 199MB SWAP wd0s4e 30MB * wd0s4f 1037MB * 「W」で書き込むと disklabel(8), newfs(8), mount(8) まで行なわれますの で、「Q」でこの画面を終了し、一旦 sysinstall を終了します。 4) df で調べると無事 newfs が済み、/dev/wd0s3e がマウントされています ので、umount /mnt でディスクを切り離しておきます。 5) 再度 /stand/sysinstall を起動して、「設定」->「パーティション」 (Configure -> Partition) を選んで、スライス情報を書き変えます。 ディスク名: wd0 FDISK パーティションエディタ ジオメトリ: 788 シリンダ/128 ヘッド/63 セクタ (計 6354432 セクタ) 開始位置 大きさ 終了位置 名称 タイプ 種別 副タイプ フラグ 0 63 62 - 6 unused 0 63 2459457 2459519 wd0s2 2 fat 6 2459520 1024128 3483647 wd0s3 1 OpenBSD FFS 166 <------ 3483648 2661120 6144767 wd0s4 3 freebsd 165 C 6144768 201600 6346367 wd0s1 1 unknown 132 6346368 8064 6354431 - 6 unused 0 上記のようにスライス種別 (Desc) を 'freebsd' 以外の ID (ここでは 166 を利用します) に変更して、「W」で書き込みます。この ID は 165 以外な らなんでも良いですが、6 (FAT) や 132 (ハイバネーション用) など特定の 目的にリザーブされたものは避けてください。スライス種別を変更したら、 それ以外の値をいじらないようにして「Q」でこの画面を抜けて sysinstall を終了します。 6) 起動時に自動的にマウントさせるには、以下の行を /etc/fstab に追加 します。 /dev/wd0s3e /mnt ufs rw 1 2 動作確認に使用した version: FreeBSD 2.2.6-RELEASE --- [管理番号 1551] (最終更新 2001/10/19 21:29:39) Q. csh スクリプトを書いていて、わからないことがあるのですが。 csh でスクリプトを書くべきではないといわれたのですが、どうしてですか。 A. csh (tcsh) でスクリプトを書く際の問題点は、多数指摘されています。 「なぜ csh でプログラムを書くのが良くないのか」 (原題 `Csh Programing Considered Harmful') これ以外に、関数定義ができないなどの問題があります。中規模・大規模な スクリプトを書く場合は、sh を使うか、perl、ruby、python、scheme の ようなスクリプト言語を使った方がよいでしょう。 ただ、ログインシェルとして csh (tcsh) を使うなら、~/.cshrc などは csh スクリプトとして書く必要がありますので、最低限の知識は知っておいた 方がよいでしょう。 --- [管理番号 1552] (最終更新 2000/03/22 02:27:29) Q. FreeBSD(98) で ZIPドライブを利用しています。ドライブは認識されています が、FAT (msdos 形式) の media を msdosfs で mount しようとしてもうまく 行きません。 A. kernerl configuration file で、 options COMPAT_ATDISK の行を有効にしてください。 このオプションは領域 (スライス) の分割が PC/AT 互換機タイプ (512bytes/sector) のディスクを利用するのに必要です。Microsoft Windows で利用している ZIP media のフォーマット形式もこれに当てはまります。 (FreeBSD(98) 3.3R-Rev? (Revision 不明) にて確認) --- [管理番号 1553] (最終更新 2000/12/07 02:35:39) Q. AOpen の DVD-RAM DVD-520S を使用したいのですが、どのようにすれば良いで しょうか? A. 以下の URL から各リリース用の OD ドライバをインストールします。 --- [管理番号 1554] (最終更新 2004/04/09 05:04:55) Q. Ports の Web ページ ( または )から、 ある Ports スケルトンをダウンロードしてインストールを試みましたが、 ===> Verifying install for nkf in /usr/ports/japanese/nkf >> No directory for nkf. Skipping.. と表示されてしまい続けることができません。再び、上記 Web ページに アクセスし、その ports を入手しようとしましたが、登録されていないよう です。こいう場合、どうすればよいのでしょうか? A. 現在の Ports は相互依存が非常に強く、Web ページ上で「必要なもの」とさ れた Ports だけじゃダメなケースが多々あります。また Web ページの更新は 手作業ですので、Ports ツリーの最新状況を正確には反映していません。一番 確実なのは、Ports ツリー全体を自分のマシン上に持ってくることです。この 中には、Web ページ上に掲載されていない Ports も含まれています。 FTP サーバから ports.tar.gz (約23MB、2004/02/13 現在) を取ってくるか、 CVSup を使って Ports ツリー全体を同期させるようにします。 ports.tar.gz をダウンロードしたら、任意のディレクトリ (例 /usr/ports) 上で展開しましょう。全ての Ports スケルトンがあなたのマ シンの中にインストールされます (スケルトンなので、大した容量は食い ません)。そして、その中の「インストールしたいソフトウェア」のディレ クトリ上で make してみましょう。 ports.tar.gz は各ミラーサーバにもあります。 --- [管理番号 1555] (最終更新 2001/11/17 19:15:35) Q. FTP の passive (パッシブ) モードの使い方を教えてください。 A. ファイアウォールが存在する場合、その設定によっては active モードでは 外部の FTP サーバを利用できないことがあります。このようなとき、FTP クライアントの設定を passive モードに変更してやると、接続できるように なるかもしれません。 - FreeBSD の ftp(1) コマンドの場合 1. ftp コマンドの起動時に -p オプションをつける 2. pftp (/usr/bin/pftp) を使う。ftp -p と全く同じ 3. ftp> プロンプトで passive と打つ (もう一度 passive と打つと active モードに戻る) 4. 環境変数 FTP_PASSIVE_MODE を設定する 例: % setenv FTP_PASSIVE_MODE YES (csh・tcsh の場合) $ export FTP_PASSIVE_MODE=YES (sh・bash の場合) 環境変数 FTP_PASSIVE_MODE は、fetch(1) コマンドに対しても 有効なので、ports 利用時に指定すると便利です。→ [管理番号 443] なお、FreeBSD 4.0-RELEASE 以降ではデフォルトで FTP_PASSIVE_MODE=YES となります (これは /etc/login.conf に記述されています)。 - ncftp の場合 ncftp では、サイトごとの設定で passive モードに設定し、 なおかつ、~/.ncftp/prefs 内で ftp-mode 1 と書く必要が あります。 各サイトごとの設定変更は次の通りです。 1. ncftp のプロンプトから [open] コマンドを実行 2. 希望のサイトをカーソルキーで選択 3. [/ed] と打ち込んで、Edit モードへ移行 4. [K] キーを押して ``K Can use passive FTP:'' を選択 5. [Space] キーで ``Yes'' に変更し、[Enter] キーで選択 6. [X] キーを押して編集を終了 この変更は保存されます。あとは、そのまま [Enter] キーを押せば passive モードで接続できます。 余談. 多くの Web ブラウザや Proxy サーバも、FTP サーバにアクセスすると きは、デフォルトで passive モードを使うようになっています。 --- [管理番号 1556] (最終更新 2003/10/16 23:20:29) Q. Plug & Play の内蔵モデムを使いたい。 A. まず、そのモデムが (いわゆる) WinModem で "ない" ことを確認してくだ さい。WinModem の場合、一部モデルに関しては専用のデバイスドライバが ports にあります。[管理番号 832] を参照してください。 内蔵モデムの一般的な使用法は [管理番号 574] を参照してください。ここ では Plug & Play (以下 PnP) の内蔵モデムについての特記事項のみ示します。 実は FreeBSD FAQ にそのものズバリの説明が記載されていますので、まずは こちらを参照してください。 http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/faq/hardware.html#AEN979 この URL の内容を簡潔にまとめると次の説明のように、カーネル再構築を最大 で2回行う必要があります。 1. カーネルの PnP サポートを有効にするため、カーネルコンフィギュレーショ ンファイルに以下の行を加えてカーネルを再構築します。 controller pnp0 2. 再構築したカーネルをインストール、再起動すると PnP サポートが有効に なるので、再起動時に PnP モデムが次の例のように認識されます (dmesg コマンドで確認できます)。重要なのは、PnP ID (例では 0x0302aa1a) と ベンダー ID (例では FUJ0203) です。 CSN 2 Vendor ID: FUJ0203 [0x0302aa1a] Serial 0x08001a17 Comp ID: @@@0000 [0x00000000] sio1: type 16550A 3. /sys/i386/isa/sio.c の 2777 行目 (FreeBSD のバージョンにより異りま す) 付近の siopnp_ids[] に、上記で調べた PnP ID とベンダー ID を書 き加えます (/*...*/ 部分はコメントですので書かなくても OK です)。 static pnpid_t siopnp_ids[] = { { 0x5015f435, "MOT1550"}, { 0x8113b04e, "Supra1381"}, { 0x9012b04e, "Supra1290"}, { 0x7121b04e, "SupraExpress 56i Sp"}, { 0x11007256, "USR0011"}, { 0x30207256, "USR2030"}, { 0x31307256, "USR3031"}, { 0x90307256, "USR3090"}, { 0x0100440e, "Cardinal MVP288IV"}, { 0x0302aa1a, "FUJ0203"}, /* 追加部分 */ { 0 } }; 4. ふたたびカーネル再構築、インストール、再起動して以下のような起動時 メッセージが出てくれば成功です。下記例ではモデムが sio0 に認識され ています。 CSN 2 Vendor ID: FUJ0203 [0x0302aa1a] Serial 0x08001a17 Comp ID: @@@0000 [0x00000000] sio1: type 16550A sio1 (siopnp sn 0x08001a17) at 0x3e8-0x3ef irq 9 on isa 5. 可能ならばこれらの情報を、パッチを付けて send-pr(1) してください。 上手くすれば次の FreeBSD のリリースでは、何もしないで使えるようにな るかもしれません。なお、send-pr については [管理番号 19] を参照して ください。 --- [管理番号 1563] (最終更新 2000/03/22 02:27:45) Q. 定期的にある処理を行ないたいのですが、どうすればよいでしょうか。 A. 基本的には cron を利用します。cron(8)、crontab(1)、crontab(5) を御覧下さい。 (system 管理の為等で) root で実行したい場合は、/etc/crontab に記述しますが、 毎日、毎週または毎月実行したいという場合は、 /etc/periodic/daily (毎日) /etc/periodic/weekly (毎週) /etc/periodic/monthly (毎月) いずれかのディレクトリの下に実行可能な shell script をおくことで実行されます。 尚、FreeBSD 2.2.x 以前では /etc/periodic ディレクトリは存在しません。 代わりに、/etc/daily、/etc/weekly、/etc/monthly という shell script が ありますので、それを編集しましょう。 --- [管理番号 1575] (最終更新 2002/01/27 00:09:33) Q. FreeBSD 3.4-RELEASE 以前の配布ファイルの tools/ ディレクトリにある presizer.exe を用いて 12GB のハードディスクを分割し、Windows 98 との Dual boot をしようとしましたが、presizer.exe が次のようなエラーを表示 して止まってしまいます。 The Partition Resizer v. 1.3.0 (c) Zeleps 1994-98 Please wait... Checking: -Available physical IDE drives...done. -Partition structure...Divide error どうしたらよいでしょうか? A. presizer.exe のバージョンが古い (Partition Resizer v. 1.3.0) のが原因 です。新しいバージョン Partition Resizer v. 1.3.4('00/06/26 現在) を から取ってきて使えばよいです。 --- [管理番号 1576] (最終更新 2000/04/19 21:36:51) Q. rsh・rlogin・rcp って何ですか。 A. 他のホストでコマンドを実行 (rsh)、他のホストから (あるいは 他のホストへ) ファイルをコピー (rcp)、他のホストにログイン (rlogin) するコマンドです。 相手側に対応する rshd、rlogind などのサーバが用意されている 必要があります。FreeBSD では、これらのサーバはデフォルトで 実行されるようになっています。 local.hoge.ac.jp の user1 というユーザが、remote.hoge.ac.jp に hoge2 というユーザとしてログインする場合、 % rlogin -l user2 remote.hoge.ac.jp とします。もしリモートとローカルでユーザ名が同じなら `-l user2' は 省略可能で、単に % rlogin remote.hoge.ac.jp とすればよいです。 また、相手側のホスト (remote.hoge.ac.jp) の ~/.rhosts という ファイルに local.hoge.ac.jp user1 と記述しておくと、local.hoge.ac.jp から - rlogin 時にパスワード入力が不要 - rsh・rcp が使用可能。こちらもパスワード入力が不要 ができるようになります。 - rsh の使い方。 local.hoge.ac.jp から remote.hoge.ac.jp で ls コマンドを 実行するには % rsh -l user2 remote.hoge.ac.jp ls とします。 - rcp の使い方。 % rcp user2@remote.hoge.ac.jp:/dir1/dir2/file . remote.hoge.ac.jp の /dir1/dir2/file を local.hoge.ac.jp の カレントディレクトリにコピー % rcp user2@remote.hoge.ac.jp:dir1/dir2/file . ホームディレクトリ以下の dir1/dir2/file がコピーされます。 % rcp file user2@remote.hoge.ac.jp:~/dir1/dir2/ 逆向きにリモートへファイルをコピー % rcp user2@remote.hoge.ac.jp:~/dir1/\*.txt ~/dir1 エスケープすればワイルドカードも使えます。 上の例とは逆に、local.hoge.ac.jp の ~/.rhosts に remote.hoge.ac.jp user2 と書いておくと、remote.hoge.ac.jp から local.hoge.ac.jp へ、 ノーパスワードで rsh・rlogin・rcp が実行できます。 要は、 「ログインしたいホストの ~/.rhosts に」 「どこのホストのどういう名前のユーザを許可するか」 を書いておくわけです。 r* コマンドは便利なのですが、セキュリティを重視するサイトでは、 rsh・rlogin・rcp の代わりに ssh を使うところが多いです。 また、セキュリティ以外の面でも、ネットワークが細い場合は -C オプションによる圧縮の効果もあります。できるだけ ssh を 使う方がよいでしょう。 [管理番号 1577] ssh・slogin・scp って何ですか。 r* コマンドで接続させないようにするには、/etc/inetd.conf から shell stream tcp nowait root /usr/libexec/rshd rshd login stream tcp nowait root /usr/libexec/rlogind rlogind のエントリを # でコメントアウトしたあと、 # killall -HUP inetd として現在実行中の inetd にファイル変更を反映させます。 仮に r* コマンドを使用可能にするとしても、tcp_wrapper (tcp_wrappers) を導入し、指定したホスト以外からの rsh・rlogin・rcp を弾くようにした方がよいでしょう。 --- [管理番号 1577] (最終更新 2001/08/12 05:25:04) Q. ssh・slogin・scp って何ですか。 A. 簡単に言うと、rsh(1)、rlogin(1)、rcp(1) のセキュリティを高めたものです。 相手側に対応するサーバ sshd(8) を実行しておく必要があります。 FreeBSD 4.0-RELEASE 以降なら、OpenSSH に変更を加えたものがシステムに インストールされます。リリースによっては FreeBSD のインストール の際に明示的にインストールするようにインストーラに指示しなければ なりません。 2001 年 6 月 2 日現在、FreeBSD のバージョンによって二系統の ssh があります。一つは OpenSSH 2.3 ベースのもので、もう一つが OpenSSH 2.9 ベースのものです。 それ以前の FreeBSD なら相手側とローカル側の両方のマシンに、 ports から ssh をインストールしておけば OK です。ports には ssh-1.2.27 と openssh、openssh-portable などがあります。 商用の ssh にはライセンスが緩いが SSH1 しか使えないものと ライセンスが厳しいかわりに SSH2 の使えるものの二種類があります。 詳細は を参照してください。 また、ssh の暗号化の仕組みを知りたい方は、 が参考になるでしょう。 単純に telnet(1) や rlogin(1) の代用としてなら、いたって簡単に使えます。 例えば、リモートホスト remote.hoge.ac.jp にログインするには、 % slogin remote.hoge.ac.jp -l username username@remote.hoge.ac.jp's password: あるいは % ssh username@remote.hoge.ac.jp username@remote.hoge.ac.jp's password: とします。ここで相手先のパスワードを入力すれば OK です。ローカルホ ストとリモートホストでユーザ名が同一であれば、username の指定は 省略できます。 これはパスワードを crypt し、/etc/master.passwd のエントリと一致するか どうかを試しているだけですが、ネットワークを流れるデータが暗号化 されているので telnet や rlogin よりは安全です。 --- [管理番号 1578] (最終更新 2002/08/24 06:22:40) Q. ssh, slogin, scp, sftp を使うたびに、毎回パスワード/パスフレーズを 入力するのが面倒なのですが、省略することは出来ませんか? A. 面倒な作業を楽にするためには、何らかの形でマシンに接続情報を残すことに なります。そのマシンがクラックされた場合、いもづる式に他のマシンも クラックの対象になってしまいます。セキュリティに対して責任を持てる場合 以外は楽をするべきではありません。このことを認識したうえでお読み下さい。 なお、この QandA の内容は OpenSSH のバージョン 2.9 以降に基づいています。 (OpenSSH2.9 は FreeBSD 4.5-RELEASE および 4.6-RELEASE に付属しています。) 古いバージョンの OpenSSH や、他の SSH の実装 (ports の security/ssh 等) では、一部の機能が使えなかったり、設定方法が異なる場合があります。 SSH で使われる認証方法を分類すると以下のようになります。 A. パスワード認証 PasswordAuthentication (SSH1, SSH2) B. 公開鍵認証 PubkeyAuthentication (SSH2) RSAAuthentication (SSH1) C. ホストベース認証 HostbasedAuthentication (SSH2) RhostsRSAAuthentication (SSH1) D. その他 このうち、公開鍵認証やホストベース認証を使っている場合は パスワード/パスフレーズの入力を省略することができます。 [公開鍵認証の場合] 公開鍵認証を行なうためには、まず認証鍵の作成が必要です。 [管理番号 1948] [管理番号 1949] を読んで認証鍵の設定をして下さい。 秘密鍵は絶対に洩れてはいけない情報ですので、ファイルに記録される際は 安全性を考えて鍵作成時に入力したパスフレーズによって暗号化されています。 ssh 接続時にパスフレーズの入力を求められるのは、認証を行なうために 暗号化された秘密鍵を復号する必要があるからです。 そこで、あらかじめ復号済みの秘密鍵を記憶しておくことで 接続のたびにパスフレーズを入力する手間を省いてくれる ssh-agent というコマンドが用意されています。 もちろん、復号済みの秘密鍵は ssh-agent プロセスのメモリ内だけに 記憶されているので、メモリの内容を直接覗かれたりしない限り 秘密鍵が洩れる心配はありません。 ssh-agent を利用するには以下の 2 つの手順が必要です。 1. ssh-agent を起動する。 2. ssh-add を使って、秘密鍵を復号し ssh-agent に登録する。 1. ssh-agent を起動する。 ssh-agent の起動方法は 2 つあります。 ひとつは % ssh-agent tcsh として新しいシェルを起動する方法です。 この場合、新しく起動したシェルの中からだけ ssh-agent の機能を 利用することができます。シェルが終了すると ssh-agent も 自動的に終了します。 もうひとつは % eval `ssh-agent -c` % ...(ssh-add, ssh, scp 等の利用)... % eval `ssh-agent -c -k` として、現在のシェルに対し ssh-agent の情報を eval によって 伝える方法です。この場合は、ssh-agent は自動的には終了しないので eval `ssh-agent -c -k` で終了させるのを忘れないようにして下さい。 また、bash や zsh など sh 系のシェルを使っている場合は ssh-agent -c の代わりに ssh-agent -s と指定して下さい。 2. ssh-add を使って、秘密鍵を復号し ssh-agent に登録する。 ssh-agent が起動できたら、続いて認証鍵の登録を行ないます。 引数に秘密鍵のファイル名を指定して ssh-add を実行して下さい。 % ssh-add ~/.ssh/identity パスフレーズを入力してやれば鍵の登録は完了です。 また、X を使用している場合は % ssh-add ~/.ssh/identity < /dev/null とすることで GUI のパスフレーズ入力ウインドウを開くことができます。 ただし、あらかじめ port/package から security/openssh-askpass を インストールしておく必要があります。 ssh-agent の起動と認証鍵の登録が終れば、パスフレーズを入力することなく ssh, scp 等が利用できるようになります。 上記の手順をさらに自動化する方法も紹介します。 a. pam_ssh を使う。 4.6-RELEASE からは、pam_ssh module を使うことが出来ます。 /etc/pam.conf を適切に設定してやれば、 ログイン時に ssh-agent の起動や認証鍵の登録を、 ログアウト時に ssh-agent の終了を自動で行なってくれるようになります。 /etc/pam.conf の xdm 部分の設定例は次のようになります。 xdm auth required pam_unix.so xdm auth optional pam_ssh.so use_first_pass xdm account required pam_unix.so xdm session optional pam_ssh.so xdm session required pam_permit.so xdm password required pam_deny.so このように設定し、UNIX パスワードと同じパスフレーズで SSH の秘密鍵を作成しておくと、ログイン時に自動で ssh-agent が起動し、その秘密鍵が登録されるようになります。 また、起動した ssh-agent はログアウト時に自動的に終了します。 詳しくは、pam_ssh(8), pam.conf(5) を参照して下さい。 b. スタートアップスクリプトで ssh-agent を起動させる。 pam_ssh を使わない場合は、~/.login 等のスタートアップスクリプトで ssh-agent を起動する方法があります。 コンソールからログインしている人は、~/.login の最後に eval `ssh-agent -c` としておいて、~/.logout に eval `ssh-agent -c -k` と書いておくとよいでしょう。 xdm を使用している人は ~/.xsession に ----------- #!/bin/sh eval `ssh-agent -s` twm & # ウィンドウマネージャを起動 PID=$! ...(kterm などの起動)... wait $PID # ウィンドウマネージャの終了を待ち eval `ssh-agent -s -k` # ssh-agent を kill ----------- と書いたり、 ----------- #!/bin/sh xrdb .Xresources exec ssh-agent fvwm # ウィンドウマネージャを ssh-agent の制御下で起動 ----------- と書いておくとよいでしょう。 次に、ssh-add でパスフレーズを入力しなければいけませんが ----------- #!/bin/sh if [ -z "${SSH_IDENT}" ]; then SSH_IDENT="${HOME}/.ssh/identity" fi if [ -n "${SSH_AUTH_SOCK}" -a -z "${SSH_CLIENT}" -a -f "${SSH_IDENT}" -a -f "${SSH_IDENT}.pub" ]; then FINGERPRINT=`ssh-keygen -l -f "${SSH_IDENT}.pub" | awk '{print $2}'` if ! ssh-add -l | grep "${FINGERPRINT}" >/dev/null; then if [ -z "${DISPLAY}" -o -z "${SSH_ASKPASS}" ]; then ssh-add "${SSH_IDENT}" else ssh-add "${SSH_IDENT}" (22) sshd (6010) ↓ 暗号化された通信路 ↑ X server (6000) xclock (環境変数 DISPLAY 参照) 3. TCP ポートフォワーディング オプション : -L port:host:hostport -L port/host/hostport (IPv6) 設定ファイル : LocalForward port host:hostport TCP/IP ポート host:hostport を、リモート側から暗号化された通信路 を経由してローカルの port に転送します。通常 host は ssh の接続先ホ ストですが、それ以外のホストを指定してもかまいません。この場合、接 続先ホストと host 間の通信は暗号化されませんので、注意してください。 なお、host は接続先ホストから見た名称となります。 オプション : -R port:host:hostport -R port/host/hostport (IPv6) 設定ファイル : RemoteForward port host:hostport TCP/IP ポート host:hostport を、ローカル側から暗号化された通信路 を経由してリモートの port に転送します。これを見てピンときた人もい るでしょうが、これを使えば X11 forwarding をエミュレートできます。 どの指定方法も必要なら複数指定することができます。 4. POP over ssh 例えば、ホスト remote.hoge.ac.jp の POP3 サーバとのデータのやりとりを telnet(1) で行うと、 % telnet remote.hoge.ac.jp 110 ... USER username (ユーザ認証) PASS password .... RETR 1 (メール番号 1番を取得) .... (メールの内容が送られてくる) QUIT となります。これではパスワードやメールの内容が全て平文でネットワーク 上を流れてしまいます。 リモート (remote.hoge.ac.jp) に sshd(8) が上がっている場合は、この代わりに % ssh -L 8000:remote.hoge.ac.jp:110 remote.hoge.ac.jp とします。そして、ローカルのポート 8000 にアクセスすると、 % telnet localhost 8000 ... USER username (ユーザ認証) PASS password .... RETR 1 (メール番号 1番を取得) .... (メールの内容が送られてくる) QUIT と、remote.hoge.ac.jp:110 の代わりに localhost:8000 に接続して、 同じ POP3 プロトコルをしゃべればメールが取得できるわけです。 ssh(1) が自動的にリモートのポート 110 宛に転送してくれます。 流れるデータは全て暗号化されており、-C で圧縮することもできます。 a) Netscape Netscape Messenger では、サーバ名を指定する所に 「ホスト名:ポート番号」 (例 localhost:8000) と記述します。なお、メールを取り込む前に % ssh -L 8000:remote.hoge.ac.jp:110 remote.hoge.ac.jp を実行しなくてはいけません。 b) fetchmail(1) POP over ssh の例は、fetchmail のオンラインマニュアルにも載っています。 以下の ~/.fetchmailrc はその一例です。この例では pophost には直接 ssh で接続できないので、shellhost を経由しなければならないと仮定し ています。 ---[~/.fetchmailrc の例]--- defaults proto apop timeout 120 mda "/usr/local/bin/procmail -d localuser" username popuser password poppass postconnect "/usr/sbin/sendmail -q"; poll pophost.domain via localhost port 10110 with proto pop3: preconnect "ssh -f -L 10110:pophost.domain:110 shellhost.domain -l popuser sleep 20 /dev/null 2>&1"; --- local shellhost (10110) ssh (xxx)<================>(22) sshd ↑↓ 暗号化された通信路 ↓↑ LAN fetchmail (110) POP3 server pophost 5. IMAP over ssh 6. SMTP over ssh a) sendmail(8) + CF まず、sendmail.cf を作りなおします。CF の .def ファイルを編集して、 未使用のメーラを SMTP over ssh 用に設定します。 ESMTP_MAILER_ARGS='IPC $h 10025' ESMTP_MAILER_FLAG_BASE="$SMTP_MAILER_FLAG_BASE" 上の例では esmtp メーラを使い、ssh による TCP forwarding にポート番 号 10025 を割り当てます。つぎに配送方法の指定ですが、基本的に全ての メールを暗号化して送るのなら以下のような指定になるでしょう。 DIRECT_DELIVER_DOMAINS='local.domain' DIRECT_DELIVER_MAILER=smtp DEFAULT_RELAY='esmtp:[localhost]' DELIVERY_MODE='queue' または、逆に一部のドメイン宛のみ暗号化するのなら、STATIC_ROUTE_FILE か MAILERTABLE を使用すれば良いでしょう。 [mailertable の例] myoffice.domain esmtp:[localhost] % ssh -f -C -L 10025:localhost:25 host.myoffice.domain sleep 60 % sendmail -q 7. NNTP over ssh a) leafnode(8) ports から入れたのなら /usr/local/share/doc/leafnode+/config.example に例があります。 8. rsync(1) オプション : -e ssh または --rsh=ssh 環境変数 : RSYNC_RSH % rsync -avz --delete --rsh=ssh . user@remote:dir/ カレントディレクトリ配下のツリー全体を remote の ~user/dir/ ディレ クトリへ反映させます。その際 remote との接続に ssh を使用します。 なお、ssh 側で既に Compression yes になっている場合は、rsync の -z オプションは無意味でしょう。 $ export RSYNC_RSH=ssh (sh 系) % setenv RSYNC_RSH ssh (csh 系) 環境変数を設定しておけば、オプション指定は省くことができます。 9. cvs(1) 環境変数 : CVS_RSH $ export CVS_RSH=ssh (sh 系) % setenv CVS_RSH ssh (csh 系) % cvs -d freefall.FreeBSD.org:/home/ncvs checkout src/sys CVS リポジトリのあるサーバへの接続に ssh を使います。 10. VPN using ssh 例えば、出先からプロバイダ経由で社内のサーバを利用するような場合、 通信路を暗号化したトンネルを構築すればデータを安全に利用できます。 まず、手元のクライアント及びサーバとなるマシンの /etc/ppp/ppp.conf に以下の設定を追加します。ssh コマンドはクライアントの root 権限で 動かしますので、ssh -l user officeserver でログインできる事を確認し てください。また、user が root 以外の場合は、サーバの /etc/group の network グループに user を登録する事を忘れないで下さい。 ---[ppp.conf の例]--- sloop: set timeout 0 set log phase chat connect lcp ipcp command set openmode passive set device "!ssh -l user officeserver exec /usr/sbin/ppp -direct loop-in" set dial set login set ifaddr 127.0.0.2 127.0.0.3 set server /var/tmp/loop "" 0177 loop-in: set timeout 0 set log phase lcp ipcp command allow mode direct --- 以下はクライアントでのオペレーション例です。この例では、最初の ppp(8) でプロバイダへ接続していますが、専用線を使う環境では省くことができ るでしょうし、ipfw(8) を利用してゲートウェイとして動作させることも できます。 % su # ppp -quiet -auto provider # eval `ssh-agent -c` # ssh-add # ppp -background sloop # suspend % execute your network application... % % # pppctl /var/tmp/loop close # eval `ssh-agent -k -c` # pppctl /var/tmp/provider 'close; quit all' --- [管理番号 1580] (最終更新 2000/04/19 21:38:21) Q. FreeBSD 3.x で追加された、VESA ビデオモードを使用した広いコンソール を使いたいのですが、どうすればいいですか? A. 以下の手順で作業してみてください。 1. ビデオカードが VESA に対応しているか確認する そのビデオカードのメーカのサイトへ行って、VESA に対応しているかを 確認しましょう。ただし、最近は 3D 関係ばかりが重要視されて、VESA に 関して情報を載せていないメーカもあります。 または、MS-DOS のプログラムですが、 にある vesadump を使って確認する方法もあります。 それらしく (VESAのバージョン等) が表示されれば、多分大丈夫でしょう が、ビデオカードの中には VESA を完全にはサポートしていない物もある ようなので、これが OK でも必ずしも使えるとは限りません。 2. カーネル再構築 まず、あなたのカーネル構成を確認する必要があります。LINT を見ればわ かるように、options VESA が VESA ビデオモードを直接サポートするオプ ションですが、3.x-RELEASE では同時に options "VM86" も必要なことが 分かります。4.0-RELEASE 以降では VM86 オプションは統合されたため不要 です。また、当然 device vga0 も必要ですが、これは GENERIC にも含まれ ますので、実際には options VESA (及び 3.x では options "VM86" の2行) を追加する必要があるでしょう。 以下は 3.4R の LINT の抜粋です。 # The video card driver. device vga0 at isa? port ? conflicts # To include support for VESA video modes options VESA # needs VM86 defined too!! # Allow processes to switch to vm86 mode, as well as enabling direct # user-mode access to the I/O port space. This option is necessary for # the doscmd emulator to run and the VESA modes in syscons to be available. # options "VM86" もうひとつの方法は、カーネルから options VESA を削る代わりに、KLD モジュールをロードする方法です。これには /boot/loader.conf に以下の 行を追加します。ただこの場合もカーネルの VM86 サポートは必須です。 vesa_load="YES" 詳細については vga(4) にも目を通しておきましょう。 3. デバイス認識の確認 boot -v で起動し、 >vga0: rev 0x01 int a irq 11 on pci1.0.0 >VESA: v2.0, 8192k memory, flags:0x1, mode table:0xf0236d36 (1000022) >VESA: Matrox Graphics Inc. >VESA: Matrox >VESA: MGA-G200 >VESA: 00 このようにビデオカードの情報が出力されているかを確認します。また、 % vidcontrol -i adapter % vidcontrol -i mode でも確認しておきましょう (特に mode は、使いたい画面モードがちゃん と表示されているかどうかを確認しましょう)。 >% vidcontrol -i adapter >fb0: > vga0, type:VESA VGA (5), flags:0x700ff > initial mode:24, current mode:24, BIOS mode:3 >% vidcontrol -i mode > mode# flags type size font window linear buffer >------------------------------------------------------------------------------ > 0 (0x000) 0x00000001 T 40x25 8x8 0xb8000 32k 32k 0x00000000 0k (中略) >209 (0x0d1) 0x00000009 T 132x60 8x8 0xb8000 32k 32k 0x00000000 0k 4. フォントのロード ここで例えば 132x60 文字モードを使おうとした場合、8x8 フォントを 必要とするので、 % vidcontrol -f 8x8 /usr/share/syscons/fonts/iso-8x8.fnt としてフォントをロードしておきます。もしくは、/etc/rc.conf に font8x8="/usr/share/syscons/fonts/iso-8x8.fnt" を加えてリブートすれば、FreeBSD 起動時に自動的にロードできます。 また、同じように 8x14 及び 8x16 フォントについても font8x14="/usr/share/syscons/fonts/iso-8x14.fnt" font8x16="/usr/share/syscons/fonts/iso-8x16.fnt" などとすることができます。 5. 画面モードの変更 % vidcontrol VESA_132x60 とすると、その virtual console の画面モードが変更されます。ALT+F? での他の virtual console のモードも変更したければ、/etc/rc.conf に 次のように設定すれば良いでしょう。 allscreens_flags="VESA_132x60" より詳細は vidcontrol(1) を参照してください。 --- [管理番号 1582] (最終更新 2003/11/17 02:28:48) Q. LAN 経由での FreeBSD から Windows へのデータ転送が、その逆に比べ 圧倒的に遅いです。Windows 同士だとこのような現象は起りません。 A. 一般的な解は、一般的な要因に依存するため、何とも判りませんが、次 のような場合が Winsock2 の場合にあり得ることは判っています。 一部の NIC では、NIC のせいなのか NIC Driver のせいなのかは不明で すが、Windows で使った場合に、時々 packet の取りこぼしが発生します。 これは、NIC が用意している Recieve Buffer の大きさが、Winsock2 の Recieve Buffer よりも小さい場合、Winsock2 が NIC から packet を 吸い出す前に NIC の Recieve Buffer が溢れてしまうために起るのでは ないか、と推測されます。 Winsock2 の挙動を tcpdump などで見ると判るのですが、Windows 同士の 通信において、Winsock は送信において次のようなルールに従っているよ うに見えます(これは、そう「見える」と言っているだけであって、そう 「なっている」という意味で言っているのではありません。Winsock2 の 実装がどうなっているのかは、そのソースコードを見ることができない以 上、全く不明です)。 I) 2つのマシン A,B があって、A->B というデータ転送しかない場合、 A というマシンは Send, Send, Ack 待ち というパターンを忠実に守っているように見える。 II) 2つのマシン A,B があって、双方向に転送すべきデータがある場合、 A というマシンは Send(これには直前の Send に対する Ack を含んでいる), Data 待ち(これには直前の Send に対する Ack が含まれている) を繰り返す、というパターンを忠実に守っているように見える。 III) I と II を切り替える際には 0.1 sec の wait が入る。 もし、Windows 側の NIC のせいでこの現象が起っている場合は、 Windows->FreeBSD 方向の通信には、この障害は出ていないはずです。 (別の障害は出ているかも知れませんが :) さて、問題の解決方法ですが、ようするに上記の動きを FreeBSD 側で真 似てやれば問題は解決します。具体的には TCP/IP の Send Buffer Size をどうにかして「IP Packet 2つ分」まで減らしてやれば、問題は解決す るはずなのです。そうすれば Winsock2 がそれを全て取り込み、Ack を返 してくるまで先には進めません。 「IP Packet 2つ分」が何バイトなのかを知るには、基本的には tcpdump を使うのが手だと思います。tcpdump は root であれば FreeBSD で使う ことができますし、 WinDump を使えば Windows 側で tcpdump を取ることもできます。これらを使って、 mss の値を獲得します。これが「IP Packet 1つ分」の大きさだと思って ください。これを2倍すれば目的の値になります。 あるいは、ethernet を使っている場合は、mss は大抵、536byte か 1460byte のどちらかです。ですので、その丁度2倍 1072byte かあるいは 2920byte が「IP Packet 2つ分だ」という事ができます。ですので、 2920 を使ってみて、駄目だったら 1072 を使ってみる、という手もあり ます。 で、ここから先は FreeBSD の管理戦略にかなり依存します。 1) システム全体を特定の Windows マシンに合わせる、という場合: この場合、 sysctl コマンドを使うと良いでしょう。root になって $ sysctl -w net.inet.tcp.sendspace=xxxx (xxxx は上記の「IP Packet 2つ分」の大きさ) を設定してみましょう。 多分これでパフォーマンスは向上するはずです。 ちなみに、 $ sysctl -w net.inet.tcp.delayed_ack=0 を設定すると Windows -> FreeBSD 方向の通信も改善される場合がある、 という話があるそうです。 2) Windows マシン毎に設定を変える場合: 残念ながらマシン毎に FreeBSD の設定を変える場合、1 の場合のような 汎用的戦略はありません。各アプリケーションが、それぞれ、自分が通信 している相手を認識し、その適切な値をどこかのテーブルから lookup し なくてはいけませんが、そのようなサポートのないソフトもあるからです。 もし、Samba に関して、というのであれば、smb.conf の中の [global] section の最後に include = /usr/local/etc/smb.conf.global.%m のような1行を加えておき、 /usr/local/etc/smb.conf.global.<その問題の Windows マシン名> というファイル中で socket options = SO_SNDBUF=xxxx TCP_NODELAY (xxxx は上記の「IP Packet 2つ分」の大きさ) を設定するとよいでしょう。上記の include 文は失敗しても smbd の 起動に影響はありません。従って、特に特別な設定をする必要がない target に対しては /usr/local/etc/smb.conf.global.<その問題の Windows マシン名> というファイルを作成する必要はありません。このあたりは を参考にして下さい。 この方法は Winsock2 についてしかチェックできていません。従って、 Winsock1.1 の場合、あるいは将来できるであろう、Winsock2.1 (あるいは Winsock3) でうまく行くのかどうかは判りません。 もし、現在すでにある程度パフォーマンスが良い場合、SO_SNDBUF の値を mss の整数倍にすることで、効率が向上する可能性があります。ですので、 パフォーマンスを重視するマシンに対しては、そのマシン専用の /usr/local/etc/smb.conf.global.<その問題の Windows マシン名> ファイルを作った方がいいかも知れません。 smb.conf には %a(Architecture) というオプションがあります。マルチ ブートマシンがある場合は smb.conf を include = /usr/local/etc/smb.conf.global.%m include = /usr/local/etc/smb.conf.global.%a.%M のように変更して、%a と %M で Client OS と Machine Name を指定して やると各 OS ごとの設定も可能になります。 --- [管理番号 1583] (最終更新 2002/02/20 10:50:35) Q. 東芝 Libretto でポートリプリケータのシリアルポートに繋いだ TA やモデム と通信できなくて困っています。tip コマンドで /dev/cuaa0 や /dev/cuaa1 を指定してもエコーバックさえしません。カーネルコンフィギュレーションは デフォルトのままです。 マシンの起動時には以下のようなメッセージがコンソールに表示されます。 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 8250 A. Libretto の "SYSTEM SETUP" で、シリアルポートの設定が COM1 になってい るかどうか確認し、もしなっていなければ設定を変更します。また、Libretto シリーズの BIOS 設定については [管理番号 263] も参考にしてください。 ESC キーを押し続けて電源スイッチを入れます。そのまま ESC キーを押し続 けていると、"Check system, Then press [F1] key." と表示されるので、 [F1] キーを押します。すると、SYSTEM SETUP 画面になるので、カーソルを 矢印キーで "I/O PORTS" の "Serial =" に移動します。ここが、"Not Used" だとシリアルポートは使えません。その場合には、スペースキーを押して、 "COM1(3F8H/IRQ4)" に変更します。End キーを押せば設定を保存して SYSTEM SETUP を終了します。この設定の変更で、/dev/cuaa0 を使えるようになります。 --- [管理番号 1598] (最終更新 2000/05/24 20:56:31) Q. あるマシンを 2.2.6-RELEASE から 3.4-RELEASE に upgrade したんですが、 who や finger, w, last 等の出力がおかしくなる現象が起きています。 A. 3.0R からユーザ名の最大長が 16 文字に拡張されたため、utmp(5) のファイル 形式が変更されました。そのため kterm や ssh など、utmp を扱う binary に 2.2.x 以前のものが残っていると、utmp や wtmp を壊してしまいます。 対策としては、まずこれらの binary を 3.x 以降のものに入れかえてください。 また、一旦壊れた utmp は勝手には修復されないので、次の様にしてクリアして おくのが良いでしょう。 # cp /dev/null /var/run/utmp wtmp は periodic(8) monthly により最長一ヶ月待てば問題はなくなるはずです が、年中無休のマシン以外では手動で実行しておいた方が良いかもしれません。 # periodic monthly または、 # /etc/periodic/monthly/200.accounting --- [管理番号 1601] (最終更新 2001/04/18 02:12:12) Q. TDK LAK-CD021BX のように fe driver で動く PC Card ether device が FreeBSD 4.0-RELEASE で使えません。何故でしょうか。 A. FreeBSD 4.0-RELEASE では PC Card 周りが newbus 化されましたが、 この時点では fe driver はまだ newbus 化されておらず、PC Card では利用できませんでした。 2000年9月14日に fe driver も newbus 化され、FreeBSD 4.1.1-RELEASE 以降では PC Card でも使えるようになりました. --- [管理番号 1606] (最終更新 2000/06/25 02:30:10) Q. パスワードが入力できません。キーボードでタイプした文字が 全く反映されていないようです。 A. login: のときのみ入力文字が見える場合は、正常です。 UNIX では、 - コンソールからの login - telnet や rlogin 経由の login のときなど、パスワード入力時にキーを打っても、画面上には 何も表示されない (エコーバックされない) ことが多いです。 ですから、パスワードを入力するところで英数字などを入力 しても、画面上では何の変化も起こらないように見えます。 しかしながら、ちゃんと入力はされているはずなので安心しましょう。 --- [管理番号 1609] (最終更新 2000/05/24 21:06:42) Q. C のソースをコンパイルすると、 ... undefined reference to `sin' ... undefined reference to `XOpenDisplay' などというエラーになります。 A. コンパイルは成功し、オブジェクトファイル (*.o) が生成されましたが、 リンク時に sin・XOpenDisplay という関数が見付からなかったという エラーです。 /usr/lib/ や /usr/X11R6/lib、/usr/local/lib/ には lib*.so.* や lib*.a というファイルがあります。これらはライブラリと言い、 コンパイル済の関数群が入っています。 sin は /usr/lib/libm.so.* に、XOpenDisplay は /usr/X11R6/lib/libX11.so.* に含まれていますので、この場所を教えてやればいいのです。 例えば、sin が見付からないなら % cc foo.c -lm とします。XOpenDisplay が見付からないなら % cc foo.c -lX11 -L /usr/X11R6/lib とします。 -lm というのは、リンカ (/usr/bin/ld) に 「libm.so.* というライブラリを探しなさい」 というオプションです。 同様に -lX11 というのも 「libX11.so.* というライブラリを探しなさい」 という意味なのですが、ld はデフォルトでは、/usr/lib からしか ライブラリを探しません。そのため、/usr/X11R6/lib や /usr/local/lib のライブラリを使う場合は、-L /usr/X11R6/lib などとライブラリの 置いてある場所を指定しなければなりません。 ただし、X のプログラムの場合は、インクルードファイルの場所を指定 しなければいけないので、最終的には、 % cc foo.c -I /usr/X11R6/include -lX11 -L /usr/X11R6/lib などと -I オプションも指定しなければいけないでしょう。ですから、 Makefile や autoconf などを利用する方が楽です。→[管理番号 509] なお、どのライブラリにどの関数が含まれているかを調べるには、 まずマニュアルを見ましょう。man sin の SEE ALSO に math(3) と ありますので、man math を見ると、 These functions constitute the C math library, libm. とありますので、libm に含まれていることがわかります。 マニュアルから読み取れなかったら、 % nm -o /usr/lib/*.so.* /usr/X11R6/lib/*.so.* | grep ' T sin$' /usr/lib/libm.so.2:0000b3d8 T sin % nm -o /usr/lib/*.so.* /usr/X11R6/lib/*.so.* | grep ' T XOpenDisplay$' /usr/X11R6/lib/libX11.so.6:00020adc T XOpenDisplay とすればわかります。libm.so.2 なら -lm だし、libX11.so.6 なら -lX11 ですね。 --- [管理番号 1615] (最終更新 2000/05/24 21:08:04) Q. Netscape Communicator をインストール後、直接 Netscape Messenger を立ち上げ ようとして kterm から 'netscape -mail &' と入力しましたが、起動直後に終了 してしまいます。あとには Bus error の表示が出ます。 また、コンソールや dmesg(8) 及び /var/log/messages には、次のようなエラー メッセージが記録されてます。 pid 1111 (communicator-4.6), uid 1001: exited on signal 10 A. /usr/local/lib/netscape/ja_JP.EUC/Netscape というファイルの中の *irixSessionManagement: True という行のコメントをはずしてください。 なお、テスト環境は FreeBSD 3.2-RELEASE, Netscape Communicator 4.61 (ja 版 package) です。 --- [管理番号 1616] (最終更新 2001/08/12 02:51:18) Q. system の状態をみるコマンドでつぎのようなエラーが発生してしまう。 % swapinfo swapinfo: undefined symbol: _numvnodes % pstat pstat: undefined symbol: _numvnodes % top top: nlist failed A. FreeBSD の version を 3.x-RELEASE から 4.0-RELEASE 以降に upgradeしましたか? 3.x-RELEASE では、kernel の symbol table は /etc/rc のなかで kvm_mkdb(8) によって /var/db/kvm_kernel.db につくられ、 これらコマンドの実行時には参照されていました。 4.0-RELEASE 以降、/etc/rc で、kvm_mkdb を行わなくなり kernel を読み 込むのに /boot/loader を使用しないと、symbol table が、参照できないため _numvnodes のような kernel 内の static に宣言された変数が参照できなくて、 このようなエラーとなります。 /boot.config の中に "kernel" 等と記述していると、直接 kernel を load する ことになりますので、上記のような現象が発生します。/boot.config を空とするか、 消去するなどして、/boot/loader が、kernel を load するようにすることで、 これらのコマンドが使えるようになります。 3.x-RELEASE の時に、/boot.config に /kernel などと記述していて、 4.0-RELEASE 以降に upgrade した時に発覚するようです。 --- [管理番号 1617] (最終更新 2004/04/09 05:05:18) Q. FreeBSD 4.X で IO データ機器製の SCSI アダプタ SC-UPCI を 利用しようとしています。このアダプタには Symbios の 53C875 が 使われているのですが、LINT には ncr と sym という二つのドライバが 存在します。どちらを使えば良いのでしょうか? A. それぞれの SCSI ドライバは 4.1.1-RELEASE の時点で 以下のコアチップをサポートしています。sym は 4.X から新たに 追加されたドライバで、特に 53C896, 53C895A, 53C1010 向けに 最適化されたものです。 sym | ncr | SCSI アダプタ -------------+--------------+-------------- 53C810 | 53C810 | 53C810A | 53C810A | 53C815 | 53C815 | 53C825 | 53C825 | 53C825A | 53C825A | 53C860 | 53C860 | 53C875 | 53C875 | SC-UPCI | 53C875A | 53C876 | | 53C885 | 53C885 | 53C895 | 53C895 | ◎ 53C895A | | ◎ 53C896 | 53C896 | ◎ 53C1010 | | 53C1510D | 53C1510D | SC-UPCI は、53C875 を搭載しているため、従来の ncr、 新しく追加された sym のどちらでも利用可能です。 ncr と sym は現在、両方がメインテナンスされています。 確かな予測ではありませんが、ncr の方が設計が古いため、 将来的に重複する機能は sym へ統合される可能性が考えられます。 しかし、古いバージョン (1.43 より前) の BIOS を搭載した SC-UPCI で sym を利用する場合、BIOS 起動時に SCSI デバイスを スキャンしない場合があるなどの不具合が生じる場合があります。 これは 古いバージョンの SC-UPCI の内部で、ユーザ設定情報の 保存に使われている記録形式を sym が正しく認識できないことが原因です。 ncr を利用する場合には、特に不具合は報告されていません。 もし、sym で動作しない場合には、次のいずれかを行なうことで SC-UPCI を利用することが可能です。 1) firmware をアップデートする。 SC-UPCI の firmware バージョンを 1.43 以降のものにアップデートす ることで、sym ドライバが正常に動作する可能性があります。また、1.43 以降にアップデートしただけではスキャンしない場合でも、「SC-UPCIコン フィグレーション(詳しくはボードのマニュアルを参照)」で、SCSI-ID 8 以降をスキャンしないように設定すれば、使えるようになる可能性があり ます。 アップデートについては、 を参照して ください。 2) ncr を利用する。 sym と同様 53C875 をサポートしていて、動作実績があります。 もちろん、古いバージョンの BIOS を搭載している場合でも 正常に動作することが確認されています。 3) アダプタから設定情報を読み出す機能を無効化する。 ソースファイルの /usr/src/sys/dev/sym/sym_conf.h に含まれる #define SYM_CONF_NVRAM_SUPPORT という行をコメントアウトしてカーネルを再構築してください。 なお、確認した環境は o FreeBSD 4.0-STABLE (Sun Apr 23 05:16:42 JST 2000) o FreeBSD 4.1.1-STABLE (Sun Oct 22 04:16:38 JST 2000) o AOpen AX6BC + SC-UPCI SCSI Adapter (BIOS ver.1.32 および 1.63) o PC-9821V13M + FreeBSD(98)4.2R-Rev01 のインストールフロッピー (kern144.flp, mfsroot.flp) です。 --- [管理番号 1620] (最終更新 2001/08/12 05:25:06) Q. WindowsNT/2000 上の VMware で FreeBSD を使うと、起動時に IPv6 アドレス のエラーが起きます。 lnc0: starting DAD for fe00:0001::0250:56ff:fe00:1a83 lnc0: DAD detected duplicate IPv6 address fe00:0001::0250:56ff:fe00:1a83: 1NS, 0NA lnc0: DAD complete for fe00:0001::0250:56ff:fe00:1a83 - duplicate found lnc0: manual intervention required A. この問題は、VMware の ethernet chip エミュレーションが ethernet multicast について正しくない為起きています。 現在は lnc driver に修正を加えて回避しています (2000/12/11)。 --- [管理番号 1621] (最終更新 2000/06/25 02:30:19) Q. FreeBSD 4.0-RELEASE で xmcd-2.6 を ports からインストールしたのですが、 no disc と言われて CD が再生できません。また、-debug オプションをつけて 起動すると、 SCSI CDB bytes (dev=/dev/rcd0c rw=0 to=20): 0000 00 00 00 00 00 00 -- -- -- -- -- .............. SCIOCCOMMAND ioctl failed: Inappropriate ioctl for device というメッセージが出力されます。 A. おそらく、お使いの imake のバージョンが古いことが原因です。 に、以下のような記述があります。 -- ここから -- 1.25 Wed Feb 23 3:40:29 2000 UTC by deischen CVS Tags: RELEASE_4_0_0 Diffs to 1.24 Upgrade to latest release (xmcd-2.6). This still fails to build correctly on -current since the /usr/libexec/cpp fiasco -- old versions of imake still use /usr/libexec/cpp instead of gcc -E. If you don't have a fixed version of imake, a quick fix to get around this is to set IMAKECPP=/usr/bin/cpp in your environment before make'ing this port. Note that the port builds without errors if you don't have the correct version of imake, but FREEBSD_CAM will not be defined and xmcd will use the ioctl method which hasn't worked since 3.0. -- ここまで -- 新しい imake を入れるか、 $ IMAKECPP=/usr/bin/cpp make として make して下さい。 FreeBSD 4.1-RELEASE 以降では、この問題は起こらないはずです。 --- [管理番号 1624] (最終更新 2001/01/08 04:45:02) Q. 3.5-RELEASE / 4.1-RELEASE / 5.0-CURRENT にしたら、 ppp(8) が利用できなくなりました。/var/log/ppp.log を 見ると 状況 1. chat script の set dial "......" の部分に書いた $N1=1 という部分が表示されていません。 状況 2. 認証のところで tun0: Phase: Chap Input: CHALLENGE (16 bytes from denwa) tun0: Phase: Chap Output: RESPONSE (xxxxxxx) tun0: Phase: Chap Input: FAILURE とすぐに失敗してしまいます。 A. /etc/ppp/ppp.conf に "$" 記号が含まれていませんか? "$" を "\" でエスケープする必要があります。 2000/3/21 に、3.0-STABLE/4.0-STABLE/5.0-CURRENT の ppp が変更され、 "$" で始まる文字列は環境変数への参照とみなされるようになりました。 FreeBSD 3.5 または 4.1 以降のバージョンをお使いの方は気を付けて下さい。 状況 1. に対して、具体的には次のような設定の場合、 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATQ0V1X0$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT" 以下のように書き換えなければなりません。 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATQ0V1X0\$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT" つまり、 ATQ0V1X0$N1=1 → ATQ0V1X0\$N1=1 と、"$" を "\" でエスケープしなければいけません。 状況 2. に対して、authkey の設定されている password に "$" が 含まれていませんか。 set authkey "XXX$XXXX" ↓ ^ set authkey "XXX\$XXXX" ^^ としてエスケープしなければなりません。 --- [管理番号 1638] (最終更新 2000/06/25 02:30:26) Q. root のパスワードを忘れてしまいました。 /etc/ttys で console を insecure に設定している為、[管理番号: 464] の 様にシングルユーザモードに入ってパスワードを再設定しようとしても、root のパスワードを要求されるのでそもそもシングルユーザモードに入れません。 A. Fixit フロッピーを利用すれば /etc/ttys の console 行の insecure を secure に変更することが出来、シングルユーザモードで root のパスワード を変更出来るようになります。 (1) Boot、mfsroot、fixit フロッピーを利用して Fixit モードに入ります。 (2) / パーティションにあたる device を mount します。 例えば、/ パーティションが /dev/wd0s1 の場合は: Fixit# mount /dev/wd0s1 /mnt (device は FreeBSD 4.x で ATA なら ad、SCSI なら da となります。 あなたのシステムに合わせて下さい)。 (3) Fixit には ex/vi が含まれていますので、ex/vi を用いて /etc/ttys を 編集し, console と書いてある行の insecure を secure に変更します。 ex を使用する場合は Fixit# /stand/ex /mnt/etc/ttys /^console/p s/insecure/secure/p w q (尚、ここで用いている command はそのまま ed でも通用するはずです)。 (4) /mnt を unmount するのを忘れないようにしましょう。 Fixit# umount /mnt (5) あとはリブートすればシングルユーザモードに入る際に root パスワード が要求されませんので、[管理番号: 464] などを参考に root のパスワー ドを変更すれば良いでしょう。 (6) /etc/ttys の console 行を secure から insecure に戻すのを忘れない ようにしましょう。 おまけ: 一般ユーザでログインできる場合は、/etc/ttys をコピーして編集し、 その後 fixit モードで cp を使ってコピーするという手もあります。 (確認は FreeBSD/i386 3.4-RELEASE、4.0-RELEASE で行なわれています)。 --- [管理番号 1646] (最終更新 2002/08/24 06:22:40) Q. FireWall を構築しました。破棄 (deny) したパケットの log を取りたいので すが、どのようにすればよいでしょうか? A. 次のオプションを含めてカーネルを構築してください。 options IPFIREWALL_VERBOSE options "IPFIREWALL_VERBOSE_LIMIT=30" オプションの詳しい解説はファイル「/usr/src/sys/i386/conf/LINT」を読ん でください。 次に、rc.firewall に記述している ipfw のルールに 「log」を追加してくだ さい。 例えば次のようなルールを記述していたら、 $fwcmd add 65000 deny all from any to any 「deny」の次に「log」という引数を追加してください。 $fwcmd add 65000 deny log all from any to any 記述したら reboot してください。 成功したら次のようなメッセージが console に表示されます。 ipfw: 65000 Deny P:2 123.456.789.012 224.0.0.2 out via mx0 ipfw: 65000 Deny ICMP:9.0 123.456.789.012 224.0.0.1 in via mx0 以上は FreeBSD 3.4-RELEASE にて確認されました。 以下の参考文献を参照してお使いのシステムに当てはまるかどうか確認して下さい。 参考文献: ipfw(8) FreeBSDハンドブック 「6.4 ファイアウォール」 ファイル 「/usr/src/sys/i386/conf/LINT」 --- [管理番号 1650] (最終更新 2001/02/18 05:12:32) Q. apache を 1.3.12 にしたところ、認証をしかけてあるページなど 一部のページが Netscape Navigator で化けて表示されてしまいます。 A. セキュリティ上の理由から apache-1.3.12 以降では、apache が 生成する HTTP ヘッダに charset が付くようになりました。 リダイレクトされたページや認証を要求したページなどは、一度クライアントに Content-type: text/html; charset=iso-8859-1 Location: http://...... というヘッダが返り、ブラウザは Location ヘッダで示された URL を 再度読み込みます。 しかし Netscape Navigator は Location で示されたページに charset が指定されていないと、 前ページの charset を次ページに引き継いでしまう というバグがあるため、日本語のページを charset=iso-8859-1 だと 勘違いして化けて表示してしまうのです。 ですから、AddCharset, AddDefaultCharset, ForceType などのディレクティブを 使って、Location で示されたページが HTML ファイルに見当った charset を 返すように設定すれば解決します。 例えば、あるディレクトリ以下に iso-2022-jp な HTML ファイルしか存在 しないなら (たとえば MHonArc で作成している ML Archive など) httpd.conf に AddCharset ISO-2022-JP .html と書きます。 また、一般ユーザ権限しかなく、全コンテンツが EUC-JP で記述されている なら、~/public_html/.htaccess に AddCharset EUC-JP .html と書けばよいでしょう。 参考ページ --- [管理番号 1655] (最終更新 2000/12/07 02:39:31) Q. popclient の情報はどこにありますか? A. popclient の開発は終了し、既にメンテナンスは行われていません。 既に port/package もなくなっています。 その後継である fetchmail というプログラムがあり、port/package が 用意されているので、こちらを使いましょう。 また、4.2-RELEASE からは、sendmail が一部変更になり、 /usr/libexec/mail.local は set-user-id バイナリとしてインストー ルされなくなりました。その為 popclient はメールスプールを lock する所でエラーとなり、正しく動作しません。 --- [管理番号 1658] (最終更新 2000/11/08 01:35:58) Q. FreeBSD の動作実績のあるマシンに Solaris を導入しました。その後 Solaris を消して FreeBSD を導入した所、FreeBSD が起動中に固まるように なりました。なぜでしょうか。 A. 原因は分かりませんが、状況証拠からすると Solaris が何らかの特殊な設 定を行なっているようです。電源を一度切断することで FreeBSD が再び起動 出来るようになるという報告が 3件あります。([FreeBSD-users-jp 53091] 参 照)。 マシンの電源を切断後、コンセントを抜き、数分置いてから、FreeBSDの再導 入を試みてください。 駄目ならコンセントを抜いた状態で電源ボタンを何回か押してみる。もしくは 長時間 (1日以上) 電源を切断した状態で放置してください。その後 FreeBSD の再導入を試みてください。 これでダメなら、対処法は分かりません。他の OS なら動作する場合もあるよ うです。 以上 Solaris7、Solaris8 での報告です。 --- [管理番号 1670] (最終更新 2001/02/18 05:58:13) Q. cvsup(1) の設定で, 設定例ファイル /usr/share/examples/cvsup/refuse を refuse ファイルとして使用すると、src-all の更新ができなくなくなるの はなぜですか? A. cvsup の refuse ファイルは cvsup で更新したくないファイルの ファイル名を記述する目的で使われます。このファイルには現在の ところ`#'で始まるコメント行を書くことができません。 しかし FreeBSD 4.1-RELEASE 以前の /usr/share/examples/cvsup/refuse には `#' から始まるコメントが含まれているため、設定例ファイルを そのままコピーして使用するとコメント行が含まれることになります。 その一部に ` src ' という文字があるため src-all が更新できません。 すべてのコメント行を消去すれば解決します。 --- [管理番号 1671] (最終更新 2000/11/08 01:37:58) Q. ファイル名の途中にスペースが入ったファイルが作成されてしまい、 rm コマンドで消すことができません。どうすればいいですか? A. 様々な方法があります。 - rm 'hoge hoge' とする - rm "hoge hoge" とする。 - スペースの前に \ を付けて、 rm hoge\ hoge とする。 - シェルのメタキャラクタ (? や * など) を使って、 rm hoge?hoge などとする。 以上の方法は、 sh, csh, ksh, tcsh, bash, zsh に共通して使えます。 tcsh や bash や zsh のファイル名補完は、ファイル名に特殊な文字を 含んでいても、うまく補完してくれます。たとえば tcsh で、消したい ファイル以外に hoge で始まるファイルが存在しない状態で、 % rm hoge まで入力してタブを入力すると、 % rm hoge\ hoge のように補完してくれます。 シェルに依存しない方法としては、次のようなものがあります。 - find . -ls で該当ファイルの i-node (1カラム目に表示される数字) を調べて、 find -x . -inum 123456 -exec rm {} \; とする。 - rm -i * として該当ファイル以外は no を、該当ファイルのみ yes を選ぶ。 - FDclone で消す。 - Emacs の dired モードで消す。 emacs を実行し、M-x dired としてディレクトリ名を入力 - Lynx の dired モードで消す。 - perl -e 'unlink "hoge hoge"' する。 - echo 'main(){unlink("hoge hoge");}' > foo.c && cc foo.c && ./a.out する。 - samba で MS-Windows から消す。 - cap で Mac から消す。 - FTP で DELE hoge hoge する。 - rm -rf で、一つ上のディレクトリから消す。 - fdisk / newfs / format しちゃう。 ファイル名の途中にハイフンやアスタリスク、日本語などが入っている ファイルも、同様の方法で消すことができます。 --- [管理番号 1672] (最終更新 2001/02/18 15:26:53) Q. fxtv で表示されるチャンネルと、実際のチャンネルがずれて しまいます。 A. 少なくとも fxtv-1.02 では、日本の周波数を使うようにしないと チャンネルがずれます。アンテナ入力の場合は X のリソースに Fxtv.antennaFreqSet: jpnbcst と記述します。ケーブル TV の場合は Fxtv.tunerMode: cable Fxtv.cableFreqSet: jpncable です。 ただし、これによって影響を受けるのは 13ch 以降のチャンネルを 指定した場合だけで、VHF low 及び VHF high(1〜12ch)の受信は どちらを指定しても構いません。 --- [管理番号 1676] (最終更新 2004/04/09 05:05:55) Q. 動作確認が取れている型式の NIC を導入しましたが、うまく認識しません。 A. 一般に原因としては、 (1)NIC が故障している (2)カーネルが対応していない (3)チップが対応していない という 3 つの可能性が考えられます。次の順序で確認をしてみてください。 (1) MS-Windows や MS-DOS で使用することが出来ますか? (出来る場合) → NIC は正常です。次の確認へ進んで下さい。 (出来ない場合)→ NIC が故障している可能性があります。 NIC のマニュアルなどを確認の上、問題がありそうなら、 製造元に確認されることをお勧めします。 (2) カーネルで NIC が使用できるようになっていますか? 確認は、起動時の User Configuration mode や dmesg で行なえます。 (ない場合)→ カーネルの再構築を行なって下さい。 (あった場合)→次の確認へ進んで下さい。 (3) NIC に搭載されているチップの型番は、どうなっていますか? これはかならず NIC を実際に見て確認してください。 同一型番であっても製作時期(ロット)が変われば使用されているチップが 異なることもあり得ます。もしチップの型番が異なるようであれば、あきら めて他の NIC を購入するか、patch を作りましょう。 --- [管理番号 1677] (最終更新 2003/10/16 23:20:14) Q. ATA のハードディスクを使っています。 下記のように、起動しなかったり、起動してもうまく動かないようです。 Q1. ブート時に下記のようなメッセージが表示されて起動しません。 Loading /boot/defaults/loader.conf /kernel text=0x18d372 data=0x3d0ec+0x2158c | elf_loadexec: archsw.readin failed Unable to load kernel: Aborted! Q2. 起動する場合もありますが、HDD への書きこみエラーが頻繁に起きたり、 HDD の回転が止まったりします。 A. ATA ケーブルに問題がある可能性があります。 例えば、ATA66 までしか対応していないケーブルを使って ATA100 や ATA133 対応のデバイスを接続すると起きることがあります。 場合によっては、ハードウェア、ソフトウェアいずれか、または両方にな んらかの制限があるということもありえます。 このようなケースでは、ブート時にはそのままエラーになってしまい起動 できませんが、たまたまうまく起動した場合は自動的に PIO モードに フォールバックするので、それなりに動くことがあります。 その場合は、下記のようなメッセージが出るでしょう。 ad0s1g: UDMA ICRC error writing fsbn 40927487 of 13123680-13123711 (ad0s1 bn 40927487; cn 2547 tn 157 sn 41) retrying ad0s1g: UDMA ICRC error writing fsbn 40927487 of 13123680-13123711 (ad0s1 bn 40927487; cn 2547 tn 157 sn 41) falling back to PIO mode ad0: UDMA ICRC READ ERROR blk# 2612047 retrying ad0: UDMA ICRC READ ERROR blk# 6752531 retrying ata0-master: WARNING: WAIT_READY active=ATA_ACTIVE_ATA falling back to PIO mode ad0: UDMA ICRC WRITE ERROR blk# 2111 retrying ad0: UDMA ICRC WRITE ERROR blk# 4195013 retrying ata0-master: WARNING: WAIT_READY active=ATA_ACTIVE_ATA falling back to PIO mode 対処法 1. ケーブルを適切なものに交換します。 対処法 2. 本質的な解決ではありませんが、DMA を無効にするとうまく動 く場合があります。[管理番号 852] を参考にしてください。 --- [管理番号 1682] (最終更新 2001/01/08 04:32:07) Q. DES をインストールしたら、 % passwd /usr/libexec/ld-elf.so.1: Undefined symbol "com_err_hook" referenced from COPY relocation in passwd のように言われて、passwd コマンドが使えなくなったのですが。 A. DES のインストール時に kerberos もインストールしたのではありません か。OS のバージョンによっては、su で core を吐く、ということもある ようです。passwd, su などのコマンドは kerberos によってそれに対応し たものに置き換えられてしまいます。kerberos が不要ならアンインスト ールしましょう。 --- [管理番号 1683] (最終更新 2003/10/16 23:20:15) Q. Kerberos (ケルベロス) をアンインストールするにはどうしたらいいですか。 A. 2 つの方法があります。 A1. /stand/sysinstall を使って bin をインストールし直す。 FreeBSD FAQ「Q: Kerberos をアンインストールするにはどうすればいいの?」 に書かれている方法で、これが一番簡単です。ただし、これをやると、/etc のファイルなども最初の状態に戻ってしまう恐れがありますし、DES をインス トールしていた場合はそれもいくつかのファイルが元に戻ってしまいます。 A2. Kerberos によって置き換えられてしまったファイルを、bin, proflibs 配布ファイルから復元する。 例えば次のようにするといいでしょう。なお、$CDROM は FreeBSD の配布ディ レクトリを指定しておきます。 1) ルートディレクトリに移動します。 # cd / 2) Kerberos の配布ファイルに含まれるファイルのリストを作ります。 [3.5-RELEASE まで] # cat $CDROM/des/krb.?? | tar ztf - | sort > /tmp/ttt [4.0-RELEASE から] # cat $CDROM/crypto/krb4.?? | tar ztf - > /tmp/ttt1 # cat $CDROM/crypto/krb5.?? | tar ztf - >> /tmp/ttt1 # sort /tmp/ttt1 | uniq > /tmp/ttt 3) 元のファイルを配布ファイルから展開します。 # chflags noschg `cat /tmp/ttt` # cat $CDROM/bin/bin.?? | tar --unlink -zxvpf - `cat /tmp/ttt` > /tmp/yyy # cat $CDROM/proflibs/proflibs.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy # cat $CDROM/manpages/manpages.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy [4.0-RELEASE から追加] # cat $CDROM/crypto/crypto.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy 4) 残ったゴミを片付けますが、念のためどのファイルが削除 されるか確認してください。 # comm -3 /tmp/ttt /tmp/yyy1 5) 確認できたら、削除します。 # rm -f `comm -3 /tmp/ttt /tmp/yyy1` おまけとして、上記の作業を自動化するスクリプトを添付します。使用に 際しては自己責任でお願いします。 なお、この作業は /etc や /bin などを直接いじる作業になりますので、 本質的に危険です。tar の仕様変更により、実際に被害が出た例もあり ます [FreeBSD-users-jp 74025] (以下のスクリプトでは修正済みです)。 ----ここから---- #!/bin/sh # Example: # # cd / # # sh ./uninstall_kerberos /proj/ftp/FreeBSD/4.2-RELEASE # Please use *at your own risk* CDROM=/cdrom [ "$1" != "" ] && CDROM=$1 KRB=/tmp/krb.list KRB1=/tmp/krb1.list ORG=/tmp/org.list ORG1=/tmp/org1.list DEL=/tmp/del.list CRYPTO= echo 'Make a list of kerberos binaries.' if [ -d $CDROM/crypto ]; then CRYPTO=crypto cat $CDROM/crypto/krb4.?? | tar ztf - > $KRB cat $CDROM/crypto/krb5.?? | tar ztf - >> $KRB elif [ -d $CDROM/des ]; then cat $CDROM/des/krb.?? | tar ztf - > $KRB else echo "$CDROM: No such kerberos distribution files." 1>&2 exit 1 fi sort $KRB | uniq > $KRB1 echo -n 'Restore files from distribution files:' rm -f $ORG chflags noschg `cat $KRB1` for i in bin proflibs manpages $CRYPTO do echo -n " $i" cat $CDROM/$i/$i.?? | tar --unlink -zxvpf - `cat $KRB1` >> $ORG 2> /dev/null done echo "." echo 'Cleanup all garbage.' sort $ORG | uniq | sed '/\/$/d' > $ORG1 comm -3 $KRB1 $ORG1 > $DEL less $DEL read -p "Would you like to delete these files now? y or n [n]" YES_NO case "${YES_NO}" in y) rm -f `cat $DEL` rm -f $DEL ;; *) echo "Make sure to run rm -f `cat $DEL` yourself" ;; esac : ----ここまで---- --- [管理番号 1687] (最終更新 2000/12/07 02:32:27) Q. インターリンク用リバースケーブルでシリアル通信ができません。 A. 結線の違うケーブルが市販されているようです。 Windowsのインターリンク(ファイル転送ユーティリティ)用と書かれた ケーブル(エレコム C232R-S1.5等)では通常の方法では通信できません。 このようなケーブルでも /etc/ttysを cuaa0 "/usr/libexec/getty std.9600" unknown on insecure のように、cuaaに書き換えると通信できるようです。 サンワサプライ RS-232C用 リバース 9Pin・9Pin 1.5m 型番 KRS-403XF1K は正しい手順で通信できるとの報告がありました。 25 pinのヌルモデムケーブルの結線はハンドブックの に記載されています。 9 pinの結線は、 Signal Pin # Pin # Signal TxD 3 connects to 2 RxD RxD 2 connects to 3 TxD DTR 4 connects to 6 DSR DSR 6 connects to 4 DTR SG 5 connects to 5 SG DCD 1 connects to 7 RTS RTS 7 8 CTS CTS 8 connects to 1 DCD Note: DCD と RTS は, それぞれのコネクタ内部でピン7と8を接続し, そして互いのコネクタのピン1と接続します. --- [管理番号 1689] (最終更新 2000/11/08 01:53:01) Q. Adaptec AHA-2920 SCSI カードは使えますか? A. FreeBSD は AHA-2920C に対応していますが、AHA-2920A には対応していま せん。 AHA-2920A には Future Domain 社のコントローラチップが搭載されており、 Adaptec の他の製品とはコントローラチップが異なります。一方、 AHA-2920C には Adaptec AIC-7850 チップが使用されており、他の Adaptec SCSI カードと同様に対応しています。 AHA-2920 と言った時、それが AHA-2920A なのか AHA-2920C なのかが問題 となります。カード上に Future Domain と書かれたチップが搭載されてい たら、それは AHA-2920A です。 2.2.x 用の非公式 AHA-2920A ドライバであれば存在します。残念ながら、 3.x 以降には統合されなかったようです。参照: よって、AHA-2920A に対する選択肢は次のようになります: * 自分でドライバを書く * FreeBSD-2.2.x で非公式ドライバを使う * あきらめて他の SCSI ボードを使う * 他の OS を使う (Linux 2.2, NetBSD 1.5 は AHA-2920A をサポートして います) --- [管理番号 1692] (最終更新 2000/11/08 01:54:42) Q. inn-2.2.2 をインストールしニュースクライアントから接続したところ No space (overview) [innwatch:31] 0 lt 8000 というエラーが出て接続を拒否されます。 A. overview を使用する設定になっているにも関わらず overview 用の 領域が存在しないためです。次のどちらかの方法で対処してください。 1. inn.confの pathoverview で設定されているディレクトリ(デフォルトは /var/spool/news/overview/ )を作成してオーナーを news に変更する。 2. overview.ctl ファイルの中身を空にして overview を使わないように する。 --- [管理番号 1694] (最終更新 2000/11/08 01:56:01) Q. Linux版 Netscape Navigator/Communicator 4.x で、フォーム内の日本語が 正しく表示されないのですが、なんとかなりませんか? A. これは Netscape 4.x にスタティックにリンクされている Motif ライブラリ のバグに由来します。linux-lesstif-ns という Motif clone をインストール すればこの問題を回避できます。なお FreeBSD 版でも同様の問題が生じますが、 それについては [管理番号 472] を参照して下さい。 --- [管理番号 1703] (最終更新 2004/04/09 05:05:18) Q. 富士通(fujitsu)製パソコン FMV の製品情報 (カタログスペック) は どこかにありませんか? A. 公式のものでは、以下の場所でチップ情報を公開しているようです。 また、非公式なものとして個人でまとめたものがあります。 現在は出荷されていない機種の情報まで分かります。 グラフィックアクセラレータチップの確認などに使えます。 --- [管理番号 1729] (最終更新 2000/12/07 02:34:00) Q. 2000.10.22 ごろ取得した FreeBSD 4.1.1-STABLE を使っていますが、 CF-3.7Wpl2 を使って作成した sendmail.cf ファイルを使うと、local な 宛先の mail について次のようなエラーが発生します。FreeBSD 付属の sendmail.cf ではうまくいくのですが。 Oct 27 19:19:31 host1 sendmail[12196]: e9RAJVC12196: from=user1, size=30, class=0, nrcpts=1, msgid=<200010271019.e9RAJVC12196@host1.my.domain>, relay=user1@localhost Oct 27 19:20:02 host1 mail.local: lockmailbox /var/mail/user2 failed; error code 75 Oct 27 19:20:02 host1 sendmail[12198]: e9RAJVC12196: to=user2, ctladdr=user1 (1000/1000), delay=00:00:31, xdelay=00:00:31, mailer=local, pri=30030, dsn=4.0.0, stat=Deferred A. /usr/libexec/mail.local コマンドの suid bit が設定されなくなったた めです。CURRENT への変更は 2000.10.10, RELENG_4 への変更は 2000.10.19 にされています。 このため、これら日付以降の 5-current, 4-stable を使用する場合に CF を使って sendmail.cf ファイルを作成する場合は、 LOCAL_MAILER_FLAG_ADD='S' を .def ファイルに追加して下さい。 参考: 次の記事から続くスレッド --- [管理番号 1730] (最終更新 2001/01/08 04:34:53) Q. FreeBSD 4.1.1-RELEASE 以降を使用しています。 FreeBSD ハンドブック「10.5 ディスクの追加」の「10.5.2.2 専用モード」を 参考にして HDD の追加を試みましたが、次のエラーが出て先に進めません。 % dd if=/dev/zero of=/dev/rad1 dd: /dev/rad1: Operation not permitted A. 可能性の一つでしかありませんが、インストール時に「Select default system security profile」を「High」(4.1.1R) または「Extreme」(4.2R 以降) に設定しなかったでしょうか。sysinstall(8) で次の場所にある項目です。 /stand/sysinstall -> Configure -> Security 設定したなら /etc/rc.conf に次の行があると思います。 -- /etc/rc.conf -- kern_securelevel="2" kern_securelevel_enable="YES" ------------------ この二行があると、上記エラーになります。システムをシングルユーザモード で再起動して作業するか、セキュリティレベルを下げてください。 FreeBSD のカーネルには 0〜3 までの 4 つのセキュリティレベルがあり、こ の値によってデバイスファイルへの書き込みを禁止できます。これ以外にも、 カーネル変数の変更を禁止したり、パケットフィルタルールの変更を禁止した りできます。 現在のセキュリティレベルは % sysctl kern.securelevel で参照可能。デフォルトは -1。 詳しくは securelevel(8) または init(8) を読んでください。また、セキュ リティに関して security(7) も参考になるでしょう。なお、sysinstall(8) のメニューに登場したのは 4.1.1-RELEASE が最初ですが、セキュリティ レベルの機能自体はもっと以前からありました。 --- [管理番号 1764] (最終更新 2004/04/09 05:05:29) Q. FreeBSD 4.x (4.8-RELEASE 以前)で kterm を使っているときに、vi など で画面の文字がゴミとなって残ることがあります。 A. FreeBSD 4.x で画面制御ライブラリに ncurses(3) を使用するように なったため、termcap(5) データベースの kterm に関するエントリに 潜んでいたバグが顕在化しました。 今のところ 2 通りの解決方法があります。 1) /usr/share/misc/termcap の kterm のエントリを以下のように修正し、 /usr/share/misc で cap_mkdb termcap を実行して下さい。 kterm|kterm kanji terminal emulator (X window system):\ :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\ :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\ :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: 2) $HOME/.termcap (なければ作成する) に以下の記述を追加し、 eval `tset -s` をシェルの初期化ファイルなどで実行して下さい。 ただし setuid/setgid された一部のプログラム( systat(1) , top(1) など)には、このやり方では対応できません( ncurses(3) 参照)。 kterm|kterm kanji terminal emulator (X window system):\ :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\ :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\ :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: なお 4.9-RELEASE からは、この修正が標準で /usr/share/misc/termcap に入っています。 --- [管理番号 1765] (最終更新 2001/01/08 04:35:57) Q. FreeBSD Ports Collection を使ってアプリケーションをインストールしてい ます。必要な時にアプリケーションのソースを取得してくれるのは良いのです が、ダイアルアップ環境では通信費用がかかります。依存する ports に必要 なソースも含めて一度にまとめて取得する方法は無いでしょうか? A. fetch-recursive と言うターゲットがあります。インストールしたい ports(7) のディレクトリに移動して # make fetch-recursive で依存する ports も含めて必要なソースを全て取得して来ます。 --- [管理番号 1770] (最終更新 2001/01/08 04:37:23) Q. 私はメールクライアントの passwd 再設定をさせたくないので現在使用中 の FreeBSD 2.2.5 から FreeBSD 3.5.1 へのバージョンアップは CD-ROM を使って UPGRADE しようと考えています。 CD-ROM 内の FreeBSD のアップグレードをよく読んで、注意点を押さえて やればこのまま実行して大丈夫ですよね。 A. インストーラのメッセージでも表示されるように、なにがおきても自分で なんとかできる人以外は、そのまま UPGRADE してはいけません。/etc 配下の ファイル、パッケージのリスト (/var/db/pkg)、メールスプール、追加アプリ ケーションとその設定ファイル (/usr/local や /usr/X11R6 以下など)、 ホームディレクトリ (/home) などを確実にバックアップしておいて、新規に インストールしましょう。 このようなとき、/var, /usr/local, /usr/X11R6, /home などが / や /usr と別パーティションになっていると、インストーラの disklabel の画面で、 / (ルート) と /usr だけ Newfs フラグを Yes にすれば良く、あとでリスト アする手間がかなり省けます。もちろん自分で必要なものだけで良いのですが、 もし完全に真っ新の状態からリストアするのなら、X11 はリストアしてから追 加インストールした方が、パッケージで入れたものが混乱しないですみます。 また、FreeBSD のリリースが上がることで compat?? ライブラリが必要になる 場合があります。特に 2.2.x からの更新では compat22 はほとんど必須とい えるかもしれません。これは、いまだに aout 形式のアプリケーションが存在 するためで、一連の Netscape 関連のパッケージはその筆頭です。 FreeBSD のメジャーバージョン (リリース番号の最初の数字) が上った場合、 設定ファイルの書式も大きく変わっているものが多いため、これらを書き戻す だけでは動かないものがあります。通常は mergemaster(8) を使って設定ファ イルを更新すれば、全てを手動で対処するよりも楽だと思います。 mergemaster の実行には /usr/src に FreeBSD のソースが必要なので、事前 にインストーラを利用するなどして展開しておいてください。次に、/etc 全 体を以前の状態にリストアしてから mergemaster を実行します。基本的には 'i' コマンドでそのまま /etc にコピーするか、'm' で変更点をマージしてか らコピーすることになりますが、/etc にコピーせずに保留にしたファイルは /var/tmp/temproot 以下に残されますので、後で個別に対処してください。 また、最後にいくつか手動でコマンドを実行するようにメッセージが表示され ることがあります。 # cd /dev && sh ./MAKEDEV all # newaliases # cap_mkdb /etc/login.conf # pwd_mkdb -p /etc/master.passwd なおバックアップとリストアには、確実にユーザ情報やパーミッションなどが 復元できるツールを使ってください。例えば、dump(8) + restore(8) や tar(1) コマンドや cp(1) を使う場合は -p オプションを指定するようにして ください。 --- [管理番号 1779] (最終更新 2001/10/19 21:29:42) Q. Web ページの更新のためにインターネットから安全に ftp で接続すべく、 ssh の port forwarding を使おうと思ってはまりました。パスワードは 暗号化に成功しますが、データ転送の暗号化がうまくできません。 A. クライアント側の OS によって以下のような方法があります。 1) Unix 普通の ftp(1) を ssh(1) の TCP port forwarding でちゃんと動かすのは 面倒なので、hsftp(1) か sftp(1) を使うのがいいでしょう。FreeBSD では、 どちらも Ports Collection の ports/ftp/hsftp 及び ports/ftp/sftp にあ ります。 hsftp(1) は、内部で ssh(1) と scp(1) のフロントエンドとして働き、コピー などのコマンドは、ftp(1) とほとんど同じです。ただし ssh-agent(1) など を使って、scp(1) をパスワード(パスフレーズ)の入力なしに実行できるよう にしておく必要があります。 sftp(1) も hsftp とほぼ同様ですが、リモート側に sftpserv というプログ ラムが必要になります。もし、リモート側にインストールされてなければ、 交渉して入れてもらうか自分で用意しましょう。なお、OpenSSH についてくる sftp-server(8) は SSH Communications Security 社 の ssh (いわゆる 「本家ssh」) バージョン2 についてくる sftp に対応するためのもので、 ports/ftp/sftp についてくる「sftp サーバ」(sftpserv) とは別物です。 FreeBSD 4.2R からは付属しますが互換性はありません。ややこしいのは、 どちらも「sftp」を名乗っていることです。 ftp と比べるとサポートされているコマンドは少ないですが、 sftp> help Supported commands are: ? help open close get mget put mput cd pwd ls dir mdir mkdir rmdir rename rm delete mdelete lcd exec quit exit bye binary ascii image version これぐらいのコマンドが使えます。これは、hsftp でもだいたい同じです。 また、ports/net/rsync を ssh 経由で使えばディレクトリの内容をまとめて アップデートすることができます。 % rsync -auzvC --delete --rsh=ssh . user@server:public_html 2) Java MindTerm を使えば,FTP-tunneling は簡単に出来ます。もちろん、Control port (21/tcp) だけでなく Data port (default:20/tcp) も SSH 経由になり ます。SCP の機能も入っているので,そちらを使ってもいいですが、Web ページ の更新には FTP が使えたほうが便利です。 v1.2.1 までのライセンスは GPL ですが,v2 以降が GPL になるかどうか決まっ ていないようです。v2 以降は SSH2 に対応します。2000年12月現在 v1.9.9pre2 が、バイナリのみ公開されています。 JAVA でインプリメントされているので,java1.1 以降に対応した JVM があれ ば OS は問いません。こちらでは,Linux, Windows, Macintosh で動作する ことを確認しています。 3) Windows 現在では MindTerm を使うのが一番簡単そうな方法ですが、TeraTermPro に ttssh を組み合わせた環境では、scp 機能がないため次のような方法が用いら れてきました。 3-a) 単純に scp をインストールして済ます。 3-b) Delegate を併用する方法です。 次の Web ページが TeraTerm + ttssh の使い方として、よくまとまってると 思います。この中で ftp については「書かないけど」の部分ですね。 以下に [FreeBSD-users-jp 49239] を元に説明します。hostA がローカル側、 hostB がリモートホスト、[a],[b] は Unix では 1024 以上の空いてる port ですが、Windows では 1024 の制限はないようです。以下の説明では [a]=21, [b]=8021 としています。 hostA> ssh -L [a]:localhost:[b] -L [b-1]:localhost:[b-1] hostB o メニューバー Setup → SSH Forwarding で以下のように設定 Local 21 to remote "localhost" port 8021 Local 8020 to remote "localhost" port 8020 o hostA から hostB に ttssh でログイン hostB> delegated -P[b] SERVER=ftp://localhost:21/ RELIABLE=localhost o hostB のプロンプトで delegated を実行 % delegated -P8021 SERVER=ftp://localhost:21/ RELIABLE=localhost hostA> ftp -p localhost [a] o hostA から localhost の port 21 に passive (PASV) モードで ftp 接続 Delegate は passive mode だと [b-1] にデータ転送用の port を用意して くれるようです。このスレッドには書いてませんが、セキュリティ的には delegated のオプションに TIMEOUT=900 ぐらいはつけておいたほうが吉だと 思います。 4) おまけ SSL 対応の wu-ftp です。 下記の URL に SSL 関係のリンク集がまとまっています。 あと、ssh ではないですが Zebedee というのもあります。 --- [管理番号 1781] (最終更新 2001/02/18 15:26:53) Q. FreeBSD 4.2R を使用しています。ipfw を使い Firewall を構築しています。 「/etc/rc.firewall」に独自のルールを記入して、手動で # sh /etc/rc.firewall と実行するとエラーにならないのですが、起動時に自動的に実行させようとす ると ipfw がエラーになり、ルールが追加出来ません。なぜでしょうか? A. 可能性の一つでしかありませんが、ipfw(8) のルールにIPアドレスではなく、 ホスト名を使っていませんか? 例: ${fwcmd} add pass tcp from any to www.tomoeda.ac.jp http ^^^^^^^^^^^^^^^^^ ホスト名。 ホスト名は使わずにIPアドレスで書いてください。 ${fwcmd} add pass tcp from any to 192.168.0.100 http どうしてもホスト名で書きたい場合は、/etc/hosts に該当ホストを記入して ください。起動時に /etc/rc.firewall が実行される時点では、ネットワーク のセットアップがまだ終わっていないので DNS は使えません。 --- [管理番号 1788] (最終更新 2001/08/12 05:25:05) Q. corega PCI-TXL(VIA VT6102 + LSI L80225/B) が認識されません。 A. 4.1-RELEASE 以降なら標準でサポートされており GENERIC な kernel で認識され ます。 しかし、Windows 終了直後、電源を切らずに FreeBSD を起動し直すと MAC address が引けないという報告があります。 vr0: port 0xe000-0xe0ff mem 0xfa000000-0xfa0000ff irq 9 at device 10.0 on pci0 vr0: Ethernet address: 00:00:00:00:00:00 vr0: MII without any phy! このように表示される場合、電源を一度切り (ATX の場合は、主電源も一度切ってから) FreeBSD を立ち上げてみましょう。 vr0: port 0xe000-0xe0ff mem 0xfa000000-0xfa0000ff irq 9 at device 10.0 on pci0 vr0: Ethernet address: aa:bb:cc:dd:ee:ff miibus0: on vr0 ukphy0: on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto 4.0 や 3.x-RELEASE 以前で使うのであれば [FreeBSD-users-jp 53044] の patch を参考して if_vr.c, if_vrreg.h を修正しましょう。 (ただし、3.2-RELEASE 以前は未確認) [管理番号 58] で紹介されている三平氏の page に動作事例が紹介されています。 そちらを、参照されるのもいいでしょう。 --- [管理番号 1812] (最終更新 2004/04/09 05:05:51) Q. FreeBSD 4.0 以降ではディスクの不良ブロックチェック(スキャン) などを行う bad144 コマンドがなくなりましたが、これからはどう やって不良ブロックチェックを行えばよいのでしょうか? A. FreeBSD 4.0 以降の ad ドライバでは bad sector table のある パーティションがサポートされなくなり、bad144 コマンドもなく なりました。したがって、基本的に OS 上で不良ブロックのチェックを 行うことはできません。[管理番号 278] 参照。 一般的に OS の稼動中にディスクのチェックツールを使用するのは、 結果に対する信頼性に欠くばかりでなく、HDD などに無理な負担が かかる可能性もありますので、OS 上での不良ブロックのチェックは あきらめて、以下のような診断ツールを使ってください。 IBM Drive Fitness Test Maxtor POWERMAX v2.4 Quantum QDPS Seagate SeaTools Disc Diagnostic その他、メーカーを問わずハードウェアのチェックができる AMIDIAG (あな診)というものもあります。(有料) (日本語サイト) また、OS の稼働中にディスク交換する必要がある場合は、ホットスワップ 対応の RAID 装置を使用することを考慮してください。これらのデバイス を利用すれば、ディスクを一旦システムから切り離して、不良ブロックの チェックなどのメンテナンス作業を行うことができます。 --- [管理番号 1813] (最終更新 2001/10/19 21:29:33) Q. samba を port/package からインストールしましたが、日本語機能が使えません。 A. ports/packages からインストールできる samba には、オリジナル版と日本語版 (国際化版) の2種類があります。ports なら net/samba が英語版、japanese/samba が 日本語版で、packages なら samba-*.tgz が英語版、ja-samba-*.tgz が日本語版です。 samba はバージョン 1.7.x の頃から日本語のファイル・ディレクトリ名に対応 していて、日本語版でなくとも日本語のファイル、ディレクトリ名を利用する ことが可能です。 国際化の実装が行なわれた samba 2.0.7 以降では、日本語の共有名やコンピュータ 名などについても、基本的には対応するようになっています。 従って、「通常の機能」であればオリジナル版でも日本語を利用することは 可能ですので、日本語機能が使えないという場合は、smb.conf の設定、特に client code page coding system の両パラメータが適切に設定されていることを確認してください。 両者の違いとしては以下の点が挙げられますので、より適切だと思われる方を 選んで下さい。 日本語版 samba: ・機種依存文字の処理をはじめ、細かい点の日本語処理機能の修正が行われている。 ・ブラウザから samba の設定変更ができる SWAT が日本語化 (国際化) されている。 オリジナル版 samba: ・日本語版に比べて開発が先行しているので、いち早く security hole が修正される。 また、日本語版 samba の詳細については を参照してください。 --- [管理番号 1837] (最終更新 2001/03/07 02:08:45) Q. /etc を別パーティションにすると、 boot が正常に行えません。 A. /etc や /sbin は別パーティションにするべきではありません。 /etc には disk の mount 情報を記述した /etc/fstab や、 boot するための一連の手続きが書かれた /etc/rc.* があり、 /sbin には disk を mount するコマンドが格納されています。 もし /etc を別パーティションにしてしまうと、「金庫の鍵は 金庫の中」状態になってしまいます。また、 - /etc や /sbin が必要とするディスク容量はさほど大きく ない (FreeBSD 4.2-RELEASE でそれぞれ 700KB、10MB 程度) - 更新されることがほとんど無い という点を考えると、独立したパーティションにするほどの メリットは見あたりません。 デフォルトで / に存在するディレクトリについては、/usr、 /var、/tmp 以外は別パーティションにしないほうがよいでしょう。 --- [管理番号 1845] (最終更新 2002/04/11 03:59:26) Q. FreeBSD で 640MB の MO に UFS (FFS) を作成して使いたい。 A. SCSI 接続の MO ドライブならば、4.0-RELEASE 以降は da(4) ドライバで対応してお り、基本的には標準のシステムで利用可能です。(*1) ATAPI の MO は 4.4-RELEASE の時点ではそのままでは使えませんが、使えるように する方法が [FreeBSD-users-jp 65621] で報告されています。 以下では da0 が MO ドライブであるとして説明します。 基本的には、他のメディア同様 disklabel を作成して newfs すれば使えます。 しかし 640MB の MO はセクタサイズが 512 バイトでなく2048 バイトなので、そ ういう指定が必要な場合があります。 disklabel の前に fdisk で slice を作成することももちろん可能ですが、ここで は割愛します。 (a) disklabel の書き込み (*2) [管理番号 680] の A2、A3 を参考にします。 disklabel が root# disklabel -r -w da0 auto disklabel: /dev/da0c: Undefined error: 0 というエラーを出力して終了してしまう場合、A2 にしたがって slice の情報を消 す必要がありますが、dd の引数に bs=2048 が無いとエラーになって書き込みでき ないことに注意してください。(*3) エラーになる場合: root# dd if=/dev/zero of=/dev/da0 count=4 dd: /dev/da0: Invalid argument 1+0 records in 0+0 records out 0 bytes transferred in 0.000411 secs (0 bytes/sec) うまく行く場合: root# dd if=/dev/zero of=/dev/da0 bs=2048 count=4 4+0 records in 4+0 records out 8192 bytes transferred in 1.138270 secs (7197 bytes/sec) また A3 で「最小限のパーティション設定」というのは, c だけが存在するという 意味です。a パーティションが必要ならば、disklabel -e で編集するか、 /etc/disktab に 640MB MO 用の項目を用意しておいて、auto の代わりにそれを指 定しなければなりません。ここでは od-driver のパッチキットに含まれているも のを使いました。([管理番号 22] 参照) 例えば、 root# disklabel -r -w da0 auto user% disklabel -r da0 | tail -2 # size offset fstype [fsize bsize bps/cpg] c: 310352 0 unused 0 0 # (Cyl. 0 - 151*) これに対して, root# disklabel -r -w da0 mo640 user% disklabel -r da0 | tail -3 # size offset fstype [fsize bsize bps/cpg] a: 310352 0 4.2BSD 2048 8192 0 # (Cyl. 0 - 151*) c: 310352 0 unused 0 0 # (Cyl. 0 - 151*) の様になります。 (b) ファイルシステムの構築 (参考 [管理番号 575]) root# newfs da0a (*4) Warning: Block size restricts cylinders per group to 10. Warning: 3776 sector(s) in last cylinder unallocated /dev/da0a: 1241408 sectors in 76 cylinders of 1 tracks, 16384 sectors 606.2MB in 8 cyl groups (10 c/g, 80.00MB/g, 9600 i/g) super-block backups (for fsck -b #) at: 32, 163872, 327712, 491552, 655392, 819232, 983072, 1146912 Warning が二つ出ました。 一つ目は、すぐ上の disklabel -r の結果において a パーティションの bps/cpg が 0 になっているためです。newfs 後にもう一度 disklabel -r すると、ここが 10 に なっています。 二つ目は、セクタをグループ化したときに端数が出てしまったという意味です。 この 8 MB 弱は利用できないことになります。まあ 8/640 なので良しとしましょう。 これで 640MB MO のメディアの準備ができましたので、mount して利用できます。 (*1) MO を利用するのに od-driver が推奨されることがあります。これは、いくつ かのコマンドやカーネルに対するパッチですが。4.0-RELEASE 以降は MO を利用 するのに必須のものではなくなりました。 現在 MO を利用する際に od-driver を用いる利点は - da(4) の代わりに od(4) でアクセスできるので、ハードディスクと間違わない - removable メディアに配慮しているので、ライトプロテクトした MO をうっかり read&write で mount してもシステムがハングアップしない などです。 (*2) /etc/disktab に 640MB MO 用の項目があれば、[FreeBSD-users-jp 53060] で 報告されている通り、disklabel を省いて newfs のみで disklabel も同時に書 き込むことも出来ます。 root# newfs da0c mo640 Warning: Block size restricts cylinders per group to 10. Warning: 3776 sector(s) in last cylinder unallocated /dev/da0c: 1241408 sectors in 76 cylinders of 1 tracks, 16384 sectors 606.2MB in 8 cyl groups (10 c/g, 80.00MB/g, 9600 i/g) super-block backups (for fsck -b #) at: 32, 163872, 327712, 491552, 655392, 819232, 983072, 1146912 これで da0c を mount して使用することが出来ます。 パーティション c を disk 全体を表すものとして fstype を unused のままにす る慣習に従い、4.2BSD となっていると disklabel が下記の warning を出します が、使用する上で支障はありません。 Warning, partition c is not marked as unused! Warning, An incorrect partition c may cause problems for standard system utilities また、disklabel が正しく書き込まれない場合があります。 user% disklabel -r da0 | tail -3 disklabel: bad pack magic number (label is damaged, or pack is unlabeled) またこの方法では、disktype に auto を指定することは出来ません。 root# newfs da0c auto newfs: auto: unknown disk type となります。 (*3) 230MB のメディアは bs を指定しなくても書き込めます。 (*4) ここでは a パーティションにを newfs しました。当然ですが既に作成されて いるパーティションしか newfs できません。/etc/disktab の 640MB MO のエント リを使わずに auto で disklabel した場合には、c パーティションが存在するの みですから、`newfs da0c' としなければいけません。 --- [管理番号 1854] (最終更新 2003/05/17 21:39:26) Q. FreeBSD(98)で STABLE/CURRENT を make world するにはどうすればよい ですか。 A. 基本的に、FreeBSD(98) でも STABLE/CURRENT の make world 手順は i386 と一緒です。少なくとも FreeBSD ハンドブック の「make world」関連は熟読するようにしてください。 現在の STABLE/CURRENT では、特に FreeBSD(98) のリリースに含まれるパッ チを適用しなくても、OS としては動作します。 FreeBSD(98) 移植チームがリリース時に作ったパッチは配布物に含まれて いますが、sysinstall などの日本語化されたものや、特定機種向けのパッ チがほとんどです。必要に応じてあてて下さい。 5.0-RELEASE 以降はソースツリーへのマージが一層進み、徐々にパッチの 割合が低下してゆくでしょう。 なお、PC/AT 互換機で pc98 の buildworld も可能です。 make MACHINE=pc98 buildworld のように実行してください。 カーネルのコンパイルには MACHINE 指定は不要です。 --- [管理番号 1857] (最終更新 2001/04/18 02:12:12) Q. ネットワークに関する情報を得るにはどうすればいいのでしょうか? A. netstat(1) を使います。netstat はオプションによって全く違う出力を 行いますので、それぞれの簡単な使い方を覚えておくといいでしょう。 - TCP の再送状況を知る % netstat -p tcp - mbuf の状態を報告する % netstat -m - インタフェースの一覧と統計を見る % netstat -i - 特定のインタフェースの5秒ごとのトラフィックを表示する % netstat -I fxp0 -w 5 - routing table の状態を知る (現在のデフォルトゲートウェイを確認する) % netstat -r - サーバプロセスが使用しているソケットも含め、全ソケットの状態を表示 % netstat -a このサーバにポート 80 を LISTEN しているサーバはいるのかな? というときは % netstat -na | grep '\.80.*LISTEN' また、あるポートを使用しているのはどのプロセスかを知るには [管理番号 800] を参考にしてください。 --- [管理番号 1859] (最終更新 2001/04/18 02:12:12) Q. FreeBSDのインストールが終った HDD を まるごとコピーしたいの ですが、具体的な手順を教えてください。 A. コピー先の HDD を接続して、オリジナルの HDD から起動します。 root でログインして /stand/sysinstall を実行します。 Configure -> Fdisk の画面からコピー先の HDD のスライスを作成 します。ブートマネージャもインストールしておきます。 Configure -> Label の画面から、オリジナルの HDD と同じように パーティションを作成します。newfs もここで行っておくとよいです。 例: Part Mount Size Newfs ---- ----- ---- ----- da1s1a /mnt 100MB UFS Y da1s1b swap 1024MB SWAP da1s1e /mnt/var 1024MB UFS Y da1s1f /mnt/usr 2048MB UFS Y da1s1g /mnt/home 4550MB UFS Y /mnt 以下に新たに作成したパーティションをマウントします。 # mount /dev/da1s1a /mnt # mount /dev/da1s1e /mnt/var # mount /dev/da1s1f /mnt/usr # mount /dev/da1s1g /mnt/home それぞれのパーティションをコピーします。 # dump 0af - / | ( cd /mnt && restore rf -) # dump 0af - /var | ( cd /mnt/var && restore rf -) # dump 0af - /usr | ( cd /mnt/usr && restore rf -) # dump 0af - /home | ( cd /mnt/home && restore rf -) restoresymtable を削除します。 # rm /mnt/restoresymtable # rm /mnt/var/restoresymtable # rm /mnt/usr/restoresymtable # rm /mnt/home/restoresymtable コピー先の HDD から起動した際にブートデバイス名が変わるのであれば /mnt/etc/fstab も書きかえておきます。この場合、デバイスファイルも /mnt/dev 上で忘れずに作成しておきます。 オリジナルの HDD を切り離して、コピー先の HDD から起動することを 確認します。 --- [管理番号 1861] (最終更新 2004/04/09 05:05:34) Q. MSDOS 用パーティション (FAT) にある日本語ファイル名を扱うことは出来ますか。 A. A1. FreeBSD 5.2-RELEASE から、 マウントする際に -L と -D オプションを指定 することで、マルチバイト文字を使ったファイル名が扱えます。例えば日本語 ファイル名を扱いたい時は、次のようにします。 # mount_msdosfs -L ja_JP.eucJP -D CP932 /dev/ad1s1 /mnt ただし、 libiconv.ko msdosfs_iconv.ko モジュールを起動時に組み込むか、もしくは、 options LIBICONV options MSDOSFS_ICONV を追加してカーネルを再構築する必要があります。またどちらの場合でも、 libiconv (ports/devel/libiconv) のインストールも必要です。 詳細は [FreeBSD-tech-jp 3369] 、リリースノート、及び mount_msdosfs(8) を参照してください。 A2. 以下の ports/packages にあるアプリケーションで、MSDOS 用パーティション (FAT) の日本語ファイル名 (Unicode Long File Name) をサポートして います。 1. ja-msdosfs (ports/japanese/msdosfs) ports/japanese/msdosfs または packages の ja-msdosfs を導入し、 mount_jamsdos を使って FAT パーティションをマウントしてください。 日本語は EUC で表現されていますので、アプリケーションが EUC を扱 うことができれば、cp や tar などのコマンドを普通に使うことができ ます。(4.2-RELEASE 以降)  補足: 起動時にマウントするには...  /modules 以下に msdos_ja.ko が存在していていれば、mount_jamsdos を実行した時点でモジュールがロードされます。起動時に間違いなくマウント するためには mount_jamsdos を /sbin に置くべきですが、ports によっ て /sbin, /modules をいじるのはまずいので、自動ではなく手動 (/usr/local/etc/rc.d/ja-msdosfs.sh) でロードするように作られています。  そこで、ブート時にマウントするのであれば、   # cp -p /usr/local/sbin/mount_jamsdos /sbin # cp -p /usr/local/lib/ja-msdosfs/msdos_ja.ko /modules # chmod a-x /usr/local/etc/rc.d/ja-msdosfs.sh  とした後に、/etc/fstab でマウントエントリを書く時に FStype を jamsdos にしてください。 /dev/da0 /mnt msdos ro,nodev,noexec 0 0 ^^^^^ ここを修正  再起動を行うと起動時にマウントされているはずです。 2. ja-mtools (ports/japanese/mtools) [管理番号 640] GNU の mtools に Unicode LFN サポートを加えたものです。mtools に 含まれるコマンド (mdir や mcopy など) だけで取り扱うことができます。 3. fd (ports/shells/fd) いわゆる FDclone です。DOS 時代の FD に似た (といっても知らない 人も多いかもしれませんが) CUI ベースのファイル操作ツールです。 --- [管理番号 1864] (最終更新 2001/10/14 11:51:14) Q. handbook、FAQ、jman などの日本語ドキュメントを、cvsup を使って 最新の状態に保ちたいのですが、どのようにしたらいいですか? A. まず、cvsup で、コレクション doc-all をダウンロードします。 以下のファイルを用意してください。 (ここに示す例では /usr 直下に root 権限で cvsup していますが、root 権限が必要なのは document をインストールする際なので、一般 user で 行なってもよいでしょう)。 # cat supfile-doc-all *default host=CHANGE_THIS.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix *default compress doc-all # cat /usr/sup/refuse doc/de_DE.ISO8859-1 doc/es_ES.ISO8859-1 doc/fr_FR.ISO8859-1 doc/nl_NL.ISO8859-1 doc/sr_YU.ISO8859-2 doc/ru_RU.KOI8-R doc/zh_TW.Big5 尚、refuse ファイルは、 doc/de* doc/es* doc/fr* doc/nl* doc/sr* doc/ru* doc/zh* という記述でも十分です。(前者の例のように全て書くと、2001年6月頃 のように、locale 名が一部変更されると refuse ファイルに記述した言 語のドキュメントを取り寄せないようにしたつもりでも持ってきてしまうと いうことが起こり得ます)。 また、新たな言語が追加されると、それをとってきてしまうので、適宜 結果をチェックして修正した方がよいでしょう。 CHANGE_THIS.FreeBSD.org の部分 (cvsup サーバ名) は、 などを参考に書き換えて下さい。 その上で、 # cvsup -g -L 2 supfile-doc-all すると、以下のようになります。 # ls -l /usr/doc total 6 -rw-r--r-- 1 root wheel 1242 6/11 10:16 Makefile -rw-r--r-- 1 root wheel 377 4/13 2000 README drwxr-xr-x 5 root wheel 512 8/28 03:23 en_US.ISO8859-1 drwxr-xr-x 6 root wheel 512 8/28 03:31 ja_JP.eucJP drwxr-xr-x 7 root wheel 512 8/28 03:31 share 次に、make 時に必要なので、ports の textproc/docproj を インストールしてください。 # cd /usr/ports/textproc/docproj # make JADETEX=no install # make clean ただし、docproj は依存する ports が多いので、ダイアルアップ接続の 場合は、先に make fetch-recursive として、依存する port の distfiles も取り寄せた方がよいかも知れません。 ここまで準備できたら root (または、適当な user) 権限で # cd /usr/doc/ja_JP.eucJP # make # make install # make clean としてください。 これで日本語マニュアルは /usr/share/man/ja に、その他のドキュメントは /usr/share/doc/ja にインストールされます。 --- [管理番号 1866] (最終更新 2001/04/18 02:12:12) Q. FreeBSD 4.2-RELEASE において、jail 環境上でシェアードメモリを使う ソフトウェアを動かしたいのですが、たとえば PostgreSQL ならば IpcMemoryIdGet: shmget failed (Function not implemented) key=5432010, size=144, permission=0 IpcMemoryAttach: shmat failed (Function not implemented) id=-2 FATAL 1: AttachSLockMemory: could not attach segment とのエラーメッセージが報告されて起動できません。 カーネルは options SYSVSHM をつけて構築してありますし、jail 環境上 で ipcs -M を実行しても有意な数値が出るのに何故でしょうか。 A. 4.2-RELEASE の場合 jail の親環境でシェアードメモリがサポートされて いたとしても、名前空間が jail 環境と親環境、あるいは別の jail 環境 で共用されていることに起因するセキュリティ上の危険性を理由として 標準状態では jail 環境からシェアードメモリへのアクセスはできません。 危険性をふまえた上でこの制限を解除するには、システム変数 jail.sysvipc_allowed を 1 にする必要があります。 コマンドラインから手動でこれをセットする場合には、次のようにします。 # sysctl -w jail.sysvipc_allowed=1 あるいは、/etc/sysctl.conf に jail.sysvipc_allowed=1 という 記述を入れれば、親環境の起動時に自動的に上のコマンドが実行される ようになります。 詳しくは jail(8) の Sysctl MIB Entries の項目を参照してください。 なお、この制限は 4.1.1-RELEASE (正確には 2000/11/01 以前の 4.x-STABLE) 以前のバージョンにはありません。[FreeBSD-users-jp 60031] --- [管理番号 1870] (最終更新 2001/04/18 02:12:14) Q. NetBSD/i386 と FreeBSD を1台のハードディスクに共存させて、ブート時に 切り替えて使いたいのですが、どうすればいいでしょうか? A. 結論から言えば、現在では特別な小細工は不要です。 しかし以前は、複数の BSD パーティション (ここでいうパーティションは FreeBSD で言うところのスライス) に各々 FreeBSD をインストールしても、 始めに見つかった BSD パーティションからしかブートできませんでした。 また NetBSD と FreeBSD は、パーティションID が 165(0xa5) と同じだった ので、同様に2番目以降の BSD パーティションからはブートできませんでし た (現在の NetBSD/i386 では 169)。 これには NetBSD, FreeBSD 共に、 1. MBR にインストールされるブートマネージャ (ブートセレクタ) 2. BSD パーティションの先頭に書き込まれるブートブロック 3. カーネル の何れかに制限があったためです。 SYSTEM COMMANDER などのいくつかのブートセレクタは、この2.以降の制限を 出し抜くために、一時的に問題となるパーティションを隠す機能が付いてい ます。[FreeBSD-users-jp 29512] [管理番号 797] --- [管理番号 1871] (最終更新 2001/04/18 02:12:14) Q. ADSL/xDSL を使い PPPoE nat+ppp で内部ネットワークから閲覧できない サイトがあります。どうすればいいですか? (対象 OS: FreeBSD 3.4-RELEASE〜FreeBSD 4.2-RELEASE) A. ADSL の場合パケットサイズが 1454 になっており通常の 1500 より少なく なります。原因として、そのサイトは「Path MTU discovery」機能をサポート していないと思われます。 解決策 1. tcpmssd モジュールを使い送り出す前に問題が発生しないようにする。 /ports/net/tcpmssd 2. 4-STABLE が利用可能なら Version2.3 以降の ppp にアップデートする (4.3-RELEASE 以降の ppp は Version2.3 です)。4-STABLE な CVS の ソースを取ってきてコンパイル。 3. 内部ネットワークのマシンの MTU を 1454 に変更する。 参考 URL --- [管理番号 1874] (最終更新 2001/04/18 02:12:14) Q. ポインティングデバイス(ラップトップによくついてるマウスの代わりに あるデバイス)のタッピング機能(指をそのまま触れるとマウスクリック 効果がある機能)を止める方法は? A. 以下のどちらかを試してみてください。 1. 単にタッピング機能を無効化します。 moused -m 6=4 -p /dev/psm0 -t auto 2. 代わりにホイールモードによるスクロール機能をサポートします。 moused -3 -w 4 -z 4 -p /dev/psm0 -t auto これで問題なければ /etc/rc.conf に moused_flags="-3 -w 4 -z 4" の1行 を追加すれば良いでしょう。ただし、この技が使えるのは ALPS GlidePoint および Interlink VersaPad の一部モデルに限定されます。詳しくは moused(8) の CAVEATS (警告) を参照してください。 --- [管理番号 1882] (最終更新 2001/04/18 02:12:14) Q. XFree86-3 から XFree86-4 にアップグレード (Upgrade) しました。 TrueType フォント を使いたかったので、module xtt を Load する様に /etc/XF86Config を変更しました。 しかし xfontsel 等で確認してみると 全く表示されませんし、xfontsel の起 動時に Warning: ... が出ます。 また、X の ログ(log) を見てみると *.so が上手く Load 出来ていないよう です。 A. /usr/X11R6/lib/module/ 以下に、XFree86-3 用の module を含んでいるのが 原因のようです。 古い module ディレクトリを 移動させてから ports/x11/XFree86-4 をインストールしましょう。 {例: (setenv FORCE_PKG_REGISTER; make clean all install) } もしくは、ports/x11/XFree86-4/pkg-plist で、 *.so を検索し 該当しない ものを module/ から移動してしまいましょう。 --参考-- [FreeBSD-users-jp 52354] *.so の方をロードしにいってるので、古い X-TT のモジュールが残っている ようです。/usr/X11R6/lib/modules 配下の古い shared なモジュールは消し ておく必要があります。 --- [管理番号 1885] (最終更新 2001/05/07 03:21:09) Q. X 上で emacs2x を使っています。 font の size や face を変えたいのですが どの樣に設定すればいいのでしょうか。 A. X 用の application 設定は、 xrdb で行います。設定例を示し ますので、自分用に書き換えてください。 (リソースについては: [管理番号 1032]、[管理番号 496]) ------ ~/.Xresources ------ !! Emacs ! 全ての言語用フォントを 10 dots にする ! registry は "fontset" encoding は `特徴的な nickname` とする ! 詳細は、M-x view-emacs-news の Defining fontsets 欄を参照 Emacs.Font: fontset-10 Emacs.Fontset-0: -*-fixed-medium-r-normal--10-*-*-*-*-*-fontset-10 ------ ~/.Xresources ------ 次に、この樣に記述した リソース (resource) ファイル を X Server Resource database に登録します。 (既定の設定を消さない様に: -merge) xrdb -merge $HOME/.Xresources --ツール-- xfontsel X11 のフォント名をマウスで選択する xlsfonts X におけるサーバのフォントリストの表示 mkfontdir X フォントファイルのインデックスを生成 --ファイル-- /usr/X11R6/lib/X11/fonts/ フォントファイルの既定 Root fonts.dir X フォントファイルのインデックス ~/.Xresources X リソースファイル --参考文献-- GNU Emacs + Gnus + Mew の環境を作ろう XWindow User HOW-TO --- [管理番号 1893] (最終更新 2001/05/07 03:21:09) Q. 色々なデバイスを使いたいのですが、毎回カーネル (kernel) のコンパイルにえらい時間がかかります。なんとかなりませんか。 A. /sys/xxx/config にある、config ファイルに記述された device や option を KLD 化して config ファイルから 取り去ってしまいましょう。 全ての device や option はまだ外せないですが usb や network card, netgraph, sound 関係は 外せるようです。 外した device などを 使いたい時は、デフォルト設定を参考に /boot/loader.conf へ 記述するか、 起動時に明示的に load しましょう。 --- [管理番号 1894] (最終更新 2001/08/12 02:51:17) Q. 3.x-RELEASE から 4.x-RELEASE にアップグレードしたら ls(1) などで表示されるタイムスタンプの形式が変わってしまいました。 3.4-RELEASE : -rw-r--r-- 1 user group 1718 Apr 12 21:29 filename 4.2-RELEASE : -rw-r--r-- 1 user group 1718 4/12 21:29 filename 3.x-RELEASE と同様の形式にするにはどうしたらよいですか? A. LANG や LC_TIME などの環境変数を確認してみて下さい。 4.0-RELEASE 以降 /usr/share/locale/ja_JP.EUC/LC_TIME が変更され、 出力の書式が変更されています。 このため emacs の dired など一部のアプリケーションでは正常に動作しない場合 もあります。従来の書式にしたい場合は、 Bourne shell 系 $ LC_TIME=C $ export LC_TIME C shell 系 % setenv LC_TIME C emacs 内のみで設定を行う場合 ~/.emacs に以下の設定をいれる (setenv "LC_TIME" "C") 等の方法があります。 --- [管理番号 1907] (最終更新 2001/10/22 01:18:33) Q. xmcd をパッケージからインストールしましたが CD の演奏を始めると音は鳴らずに CD audio: (pass1:ahc0:0:6:0): READ SUB-CHANNEL. CDB: 42 2 40 0 0 0 0 0 30 0 (pass1:ahc0:0:6:0): ILLEGAL REQUEST asc:24,0 (pass1:ahc0:0:6:0): Invalid field in CDB というエラーが出ます。環境は Plextor PX-W1210TS (SCSI CD-R) FreeBSD 4.3-BETA xmcd-2.6_1 (packages) です。 A. /usr/X11R6/lib/X11/xmcd/config/rcd0c の curposFormat というパラメータを True にしましょう。 補足: FreeBSD をソースから make world している場合は /etc/make.conf で HAVE_MOTIF=yes を指定する必要があります。PX-W1210TS は SCSI CD-ROM と同じく /dev/rcd0c で問題ありません。 --- [管理番号 1926] (最終更新 2001/10/22 01:18:34) Q. LAN 経由での Windows から FreeBSD へのデータ転送が、その逆に比べ 圧倒的に遅いです。Windows 同士だとこのような現象は起りません。 A. 最大の理由は「Winsock2 は 2 packet 送信すると ack を待ってしまうか ら」です。 Windows の TCP/IP 層はデフォルトでは 2 packet 送信する度にAck を待っ てしまいます。unix は TCP Window size にゆとりがある場合は「きっと 向うはまだ送ってくるだろうから」と安心して piggy bag できる packet がないか調べるために、10msec ほど沈黙します。当然一方向の通信 (RPC とか) の場合 piggy bag などできるパケットが存在しませんので、この 10msec の間、全くデータが転送されることがなくなります。 Windows 同士の場合、受け側も「2packet 受け取ったら速攻で ack を返さ ねばならぬ」と思い込んでいるので、この「待ち」がほとんどありません。 FreeBSD でこの問題を解決するには、sysctl で # sysctl -w net.inet.tcp.delayed_ack=0 とすることです。こうすれば piggy bag できるかどうか悩むことなく、 FreeBSD は ack を即座に返すようになります。 ただし、この設定は「特定のコネクション相手」単位では設定できません。 全体に有効になってしまいます。で、他の unix マシンと通信する場合、 これは ack を投げすぎることになるので、逆にパフォーマンスを落す可能 性が高いです。 なお、この現象は [管理番号 1582] に似ていますが、異なる現象です。 しかし、Winsock2 に起因するところは同じです。ただし、Windows 2000 (と多分 Windows Me) の Winsock2 では発生しないようです。 --- [管理番号 1939] (最終更新 2001/11/17 19:15:35) Q. テキストで描いた図(ネットワーク構成、ディレクトリ構成など)を添え て質問したところ、固定ピッチフォントで描けと言われました。 A. プロポーショナルフォントは文字により幅が異なります。例えば I は狭く W は広いというようにです。 そのため、例えば Microsoft Windows の「MS P明朝」で home - a--b | | | |--c | |------d--e | | |--f とディレクトリ構成を描いたつもりでも、固定ピッチフォントで見ると home - a--b | | | |--c | |------d--e | | |--f というように異なって見えてしまい、適切なアドバイスの妨げになります。 こうした問題を回避するため、「MS 明朝」等の固定ピッチフォント(等角 フォントとも言われます)を用いるべきです。 「みんなプロポーショナルフォントを使えばいいじゃん」という意見は却下で す。プロポーショナルフォントと言っても色々あり、それぞれで文字幅が異な りますし、第一 FreeBSD に「MS P明朝」はありません。 --- [管理番号 1942] (最終更新 2001/10/22 01:18:34) Q. 日本語化された samba を ports (package) からインストールしましたが、 ブラウザで表示させた SWAT が日本語化されていません。 A. SWAT はブラウザ側で設定された言語に合わせて表示言語を選択します。 ブラウザの言語設定が英語の場合は英語表示になります。 Netscape Communicator の場合は 編集 -> 設定 -> Navigator -> 言語 の設定を確認してください。 --- [管理番号 1943] (最終更新 2001/08/12 05:25:01) Q. FreeBSD では secure hash 関数として OpenBSD で使っているような blowfish は使えますか? また、使えるとしたら、どのようにしたら使えますか? A. 2001 年 5 月 24 日以降の 4.3-STABLE と 2001 年 3 月 11 日以降の 5.0-CURRENT では使用可能です。 /etc/login.conf の default クラスに :passwd_format=blf:\ という行を挿入して cap_mkdb /etc/login.conf します。最後の `\' 記号は 継続行を意味します。このあとで passwd(1) コマンドを使用すれば、 パスワードが blowfish に変更されます。パスワードが $2a$04$ で はじまっていれば変更は成功です。 特定のユーザのみに対して blowfish を使う方法は [管理番号 345] を 参照してください。 --- [管理番号 1944] (最終更新 2001/08/12 05:25:03) Q. パスワード用の secure hash の生成方式として MD5 を使っていますが、 perl(1) などのスクリプトや C 言語のプログラムで crypt(3) を 使うと DES になってしまいます。perl などからも MD5 を利用するのに はどうしたらいいのでしょうか? A. /etc/auth.conf に crypt_default = md5 を入れてください。これで直ちに perl の crypt 関数で MD5 が 使えるようになります。また、blowfish を使う場合も同様で、 crypt_default = blf という指定を行えば使えます。ただし、ユーザ毎にこれを変更する方法は ありません。 C 言語のプログラムから動的に secure hash の生成方式を変更 することは可能で、具体的には crypt_set_format(3) を使います。 次が切替えのサンプルプログラムです。 ---サンプル ここから--- #include #include int main(int argc, char *argv[]) { char *salt = "Salt"; char *pass = "pass"; crypt_set_format("des"); printf("DES: %s\n", crypt(pass, salt)); crypt_set_format("md5"); printf("MD5: %s\n", crypt(pass, salt)); crypt_set_format("blf"); printf("Blowfish: %s\n", crypt(pass, salt)); return 0; } ---サンプル ここまで--- これを例えば hash_test.c に入れて、 % cc -o hash_test hash_test.c -lcrypt としてコンパイルして、実行すると DES: Safj2rfnJqVOw MD5: $1$Salt$waybwAhVEO4TqNqokkPGS/ Blowfish: $2a$04$Salt..................iuF.iYZyE5m5qX55B4pXbGQonP.kj5y という結果を得ます。なお、上のプログラムは切替え方を示すサンプル に過ぎないので、実際には指定すべき salt の長さなどについて考慮する 必要があります。 --- [管理番号 1945] (最終更新 2001/08/12 05:25:03) Q. デフォルトの secure hash の生成方式として MD5 を指定していますが、adduser(8) でユーザを登録すると パスワードが DES になってしまいます。 A. これは adduser(8) が perl スクリプトであるために起こります。 /etc/auth.conf に次の設定を入れてください。 crypt_default = md5 この現象は adduser(8) に限らず、crypt 関数を用いた perl スクリプト 全般で起こる可能性があります。これについては [管理番号 1944] を 参照してください。 --- [管理番号 1947] (最終更新 2002/02/14 00:39:59) Q. SSH1(プロトコル 1) と SSH2(プロトコル 2) とがあると聞きました。 どうちがうのでしょうか? また、どちらがより望ましいのでしょうか? A. SSH1(プロトコル 1) には プロトコル 1.3 と 1.5 があり、 基本的に RSA 公開鍵暗号を用いて認証を行い、通信の隠蔽のために 3DES や Blowfish などの暗号を用います。 通常、「ssh の RSA 認証」と呼ばれる場合には、プロトコル 1 を指す場 合が多いようです。OpenSSH のバージョンによってはこれを RSA1 などと 呼ぶ場合もあります。 SSH2(プロトコル 2) は以前まであった RSA の特許問題の回避を意図して DSA 公開鍵暗号を用いて認証を行うように実装されたものです。 現在では、RSA の特許問題が解消したので、プロトコル 2 の RSA 認証 というのも存在しています。 相違ですが、プロトコル 1 がデータが改竄されていないかどうかの チェックに単純な CRC を用いていたのに対して、プロトコル 2 では より強力な HMAC アルゴリズムによるチェックに改善されています。 また、プロトコル 2 では通信の隠蔽のための対称アルゴリズムを 選べるように設計されているので、理論的にはプロトコル 2 の 方が安全です。 FreeBSD 間でのみの通信が前提となるのなら SSH2 だけにしても問題は ありませんが、他の OS、ことに Windows 系の OS との組合せでは クライアントが SSH2 をサポートしてないということもあります。 注意しなければならないことは、プロトコル 1 と 2 の間には互換性が なく、プロトコル 2 しかサポートしない設定の sshd とはプロトコル 1 しかサポートしていないクライアント(TTSSH など)は通信ができない ということです。こういったことから、一概にどちらが良いかは 安全性ばかりでは断定はできません。 これらのプロトコル間の相違、実装の歴史、他 OS のクライアントの 実装状況については 以下のドキュメ ント群が参考になるでしょう。 また、アルゴリズムとプロトコルそして鍵の保管場所の相違などについて まとめると: [OpenSSH 2.3 ベース] 例えば 4.3-RELEASE, 4.4-RELEASE の ssh はこちらです。 アルゴリズム プロトコル 秘密鍵 公開鍵 RSA1 SSH1 ~/.ssh/identify ~/.ssh/identify.pub DSA SSH2 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub RSA SSH2 未サポート [OpenSSH 2.9 ベース] 4.5-RELEASE, 5.0-CURRENT の ssh はこちらです。 アルゴリズム プロトコル 秘密鍵 公開鍵 RSA1 SSH1 ~/.ssh/identify ~/.ssh/identify.pub DSA SSH2 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub RSA SSH2 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub という対応があります(2.3 ベースの OpenSSH のプロトコル 2 には RSA 認証はありません)。また、鍵のペアの生成の際に ssh-keygen(1) を使用する場合、ベースとなった OpenSSH のバージョンに依存して オプションが異なります。 詳しいことは ssh-keygen(1) の man page を参照してください。 --- [管理番号 1948] (最終更新 2001/08/12 05:25:04) Q. SSH プロトコル 1 の RSA 公開鍵暗号を使った認証で ssh(1) を運用したいの ですが、どうしたらよいでしょうか? A. サーバ側の設定は終っているものとして説明します。FreeBSD の場合、 /etc/rc.conf に sshd_enable="YES" という設定をいれておけば SSH1 の RSA 認証が使えます。 まずローカルホストで ssh-keygen(1) を実行し、認証鍵を作成します。 この際に秘密鍵を保護するためのパスフレーズが尋ねられます。 パスフレーズは自由に決められ、バージョンによってはパスフレーズなしでも 運用が可能ですが、他人が推測しにくく、できるだけ長いもの (数十文字でも構いません。)にしましょう。 % ssh-keygen Generating public/private rsa1 key pair. Enter file in which to save the key (/home/user/.ssh/identity): (リターン) Enter passphrase (empty for no passphrase): (パスフレーズを入力) Enter same passphrase again: (再度同じパスフレーズを入力) Your identification has been saved in /home/user/.ssh/identity. Your public key has been saved in /home/user/.ssh/identity.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@local これで秘密鍵が ~/.ssh/identity に、公開鍵が ~/.ssh/identity.pub に 保存されます(上記実行例は OpenSSH 2.9 ベースのもの、4.3-RELEASE などでは、OpenSSH 2.3 ベースなので多少出力は異なります)。 また、OpenSSH 2.9 ベースの FreeBSD なら、タイプを指定して % ssh-keygen -t rsa1 でも可能です。 次に slogin(1) ないしは ssh(1) でリモートホストにログインし、 相手先の ~/.ssh/authorized_keys に公開鍵 (ローカルにできた ~/.ssh/identity.pub) の内容をそのままコピーし追加します。 このとき、公開鍵一つにつき一行なので、余計な改行や空白を入れないよ うに注意します。もし ~/.ssh/authorized_keys がなければ新規作成しま す。理論上はこれは公開鍵なので人に見られても構いませんし、事実 ssh-keygen(1) の man page にもそのような記述がありますが、念のため % chmod 600 ~/.ssh/authorized_keys とパーミッションは落としておいたほうが無難です。 再度、ローカルから % slogin remote.hoge.ac.jp -l username とします。すると、今度は username@remote.hoge.ac.jp's password: でなく、 Enter passphrase for RSA key 'username@local.hoge.ac.jp': と表示されるはずです。ここでパスフレーズを入力するとログインできます。 ここでは相手側の /etc/master.passwd のパスワードエントリは *全く* 参照 されていません。パスワードとパスフレーズは全くの別物です。 また、パスフレーズも秘密鍵もいずれもネットワークを介してやりとりさ れていません。原理だけ説明すると、接続先の sshd(8) で生成した乱数を ~/.ssh/authorized_keys に入れておいた公開鍵で encrypt してクライアン トに送り、クライアントはこれを秘密鍵で decrypt して sshd に返します。 sshd はかえって来たものが最初に送った乱数と一致していればログインを 許可しているだけです。 まとめると、ホスト A、B、C があり、ホスト A から ホスト B、C に SSH プロトコル 1 の RSA 認証を行う場合は、 - ホスト A で ssh-keygen - ホスト A の ~/.ssh/identity.pub を ホスト B とホスト C の ~/.ssh/authorized_keys にコピーし、chmod 600。 とします。さらに ホスト B から ホスト C に RSA 認証を行いたいなら - ホスト B で ssh-keygen - ホスト B の ~/.ssh/identity.pub を ホスト C の ~/.ssh/authorized_keys に追加。 となります。つまりホスト C の ~/.ssh/authorized_keys には ホスト A とホスト B 両方の公開鍵 (identity.pub) が入っているわけです。 パスフレーズ以外では、ssh・scp・slogin の使い方は rsh・rcp・rlogin と ほぼ同じです。 [管理番号 1576] rsh・rlogin・rcp って何ですか。 を参考にして下さい。 毎回パスフレーズを入力しなくてもすむ方法については [管理番号 1578] で、 より便利な ssh の機能については [管理番号 1579] で解説しています。 --- [管理番号 1949] (最終更新 2001/08/12 05:25:04) Q. SSH プロトコル 2 の DSA 公開鍵暗号を使った認証で ssh(1) を運用した いのですが、どうしたらいいでしょうか? A. サーバ側の設定は終っているものとして説明します。FreeBSD の場合、 /etc/rc.conf に sshd_enable="YES" という設定をいれておけば SSH2 の DSA 認証が使えます。 まずローカルホストで ssh-keygen(1) を実行し、認証鍵を作成します。 この際に秘密鍵を保護するためのパスフレーズが尋ねられます。 パスフレーズは自由に決められ、バージョンによってはパスフレーズなしでも 運用が可能ですが、他人が推測しにくく、できるだけ長いもの (数十文字でも構いません。)にしましょう。 % ssh-keygen -d Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): (リターン) Enter passphrase (empty for no passphrase): (パスフレーズを入力) Enter same passphrase again: (再度同じパスフレーズを入力) Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@local などとします(なお、4.3-RELEASE などの FreeBSD の一部のバージョンで は、2.3 ベースの OpenSSH を採用しているため上記実行例は 多少異なります)。 あるいは OpenSSH 2.9 ベースの ssh を使用している FreeBSD でなら % ssh-keygen -t dsa などとします。 次に slogin(1) ないしは ssh(1) でリモートホストにログインし、 相手先の ~/.ssh/authorized_keys2 に公開鍵 (ローカルにできた ~/.ssh/id_dsa.pub) の内容をそのままコピーし追加します。 このとき、公開鍵一つにつき一行なので、余計な改行や空白を入れないよ うに注意します。もし ~/.ssh/authorized_keys2 がなければ新規作成しま す。理論上はこれは公開鍵なので人に見られても構いませんし、事実 ssh-keygen(1) の man page にもそのような記述がありますが、念のため % chmod 600 ~/.ssh/authorized_keys2 とパーミッションは落としておいたほうが無難です。 また、OpenSSH 2.9 ベースの ssh がインストールされている場合には、 プロトコル 2 の RSA も使えます。異なるのは % ssh-keygen -t rsa として認証鍵を作成し、あとは DSA 鍵の場合と同様に ~/.ssh/id_rsa.pub をリモートホストに転送し、~/.ssh/authorized_keys2 に追加します。 パスフレーズ以外では、ssh・scp・slogin の使い方は rsh・rcp・rlogin と ほぼ同じです。 [管理番号 1576] rsh・rlogin・rcp って何ですか。 を参考にして下さい。 毎回パスフレーズを入力しなくてもすむ方法については [管理番号 1578] で、 より便利な ssh の機能については [管理番号 1579] で解説しています。 --- [管理番号 1950] (最終更新 2001/08/12 05:25:04) Q. SSH2(SSH プロトコル 2) で RSA 認証を使いたいのですが、うまく行きま せん。 A. インストールされている ssh(1) によってはプロトコル 2 の RSA 認証は サポートされていない可能性があります。OpenSSH 2.3 ベースの ssh では これはサポートされていません(例えば、4.3-RELEASE 以前の FreeBSD にインストールされている標準の ssh など)。 インストールされている ssh(1) のバージョンを確認してください。例え ば、C シェルなら % ssh -v |& more などとすればバージョンが確認できます。もし OpenSSH_2.9 green@FreeBSD.org 20010503, SSH protocols 1.5/2.0 などという表示が得られたら、この ssh はプロトコル 2 の RSA を サポートしています。各種の設定を再度確認しましょう。 もしも、 SSH Version OpenSSH_2.3.0 green@FreeBSD.org 20010321 などという表示がでた場合には、プロトコル 2 の RSA は使えないので、 ports などからインストールしましょう。 --- [管理番号 1951] (最終更新 2001/08/12 05:25:05) Q. ATA66 に繋いだ DVD の転送速度が遅く > acd0:READ_BIG - ABORTED COMMAND asc=48 ascq=00 error=00 という、メッセージが表示されます。 A. まず、IDE ケーブルが ATA66 対応のケーブルか確認してください。 対応していないケーブルでは、不具合があるとの報告があります。 BX440 + ATA66(Promise) の場合では、ATA66 のチップと DVD との相性も あるようです。 技術的には /sys/dev/ata/ata-all.c の atapi_interrupt 関数内で、 このメッセージが出ています。 ATAPI コマンドの 28h READ(10) パケットが失敗しているようです。 (FreeBSD では READ_BIG と名前を付けているようです。) 何をするのかというと ATAPI デバイスから LBA アドレッシングモードでデータを読み込みます。 で、デバイスからか ATA66 チップからかエラーが帰ってくるので リトライを繰り返すなどで速度低下が起きたのだと思います。 また、 /usr/src/sys/dev/ata/ata-dma.c に /* the Promise can only do DMA on ATA disks not on ATAPI devices */ (Promise では DMA が行えるのは ATA ディスクのみで ATAPI デバイスでは DMA を行なえません。)というコメントが記されています。 --- [管理番号 1952] (最終更新 2001/10/22 01:18:34) Q. 外部ネットワークにあるサーバに socks 経由で接続しているセッションが、 ある程度の時間何もせずに放置しておくと切断されてしまいます。 A. socks はデフォルトでは 15 分間無通信状態のセッションをタイムアウトして セッションを切断してしまいます。man socks5 すると、SOCKS5_TIMEOUT という 環境変数でタイムアウトの時間を設定できることがわかります。上記環境変数を 設定するか、socks5.conf で下記のように設定することができます。 set SOCKS5_TIMEOUT 120 上記の設定を行うと、タイムアウトが 2 時間になります。 --- [管理番号 1962] (最終更新 2001/10/22 01:18:34) Q. VMware を使って Windows2000 Professional をインストールしようとして いますが、 *** STOP: 0x0000007B (0xFE4E8690,0xC0000014,0x00000000,0x00000000) INACCESSIBLE_BOOT_DEVICE というメッセージが出てインストールできません。 A. Setup Disk を使ってフロッピーから起動していませんか? VMware が CD-ROM ドライブを認識していても、Setup Disk から起動された インストーラは CD-ROM ドライブを認識しません。Setup Disk は使わず、 最初から CD-ROM でブートしましょう。 確認環境: FreeBSD 4.2-RELEASE vmware2-2.0.3.799 (ports) rtc-2000.09.22 linux_base-6.1 注意: エラーメッセージは多少異なりますが、Windows95 や NT4.0 でも同様の トラブルが発生します。 補足: 1) 確認してませんが、恐らく Windows98/Me でも同じと思われます。 2) FreeBSD 固有の問題なのか、Linux でも同様なのかは不明です。 --- [管理番号 1963] (最終更新 2001/10/22 01:18:35) Q. FreeBSD 4.3-RELEASE で ccd 用 disklabel を作るため disklabel -r -w ccd0 auto を行ったら、 Warning, partition c is not marked as unused! Warning, An incorrect partition c may cause problems for standard system utilities というメッセージが出てきますが、実用上問題ありますか? A. disklabel(8) は ccd(4) デバイスの初期化の際、他のデバイスと異なり C パーティションを指定します。 4.3-RELEASE 以降では、disklabel コマンドで C パーティションが未使用 (unused) になっていないと上記メッセージを出すようになりました。 ccd デバイスにおいて fstype が単一の場合(多くの場合そうでしょう)、 このメッセージは無視してしまって構いません。 気になる場合は、disklabel -e して 3 partitions: # size offset fstype [fsize bsize bps/cpg] c: 2047968 0 4.2BSD 0 0 0 # (Cyl. 0-999*) を 1 partitions: # size offset fstype [fsize bsize bps/cpg] a: 2047968 0 4.2BSD 0 0 0 # (Cyl. 0-999*) などと書き換えてください。 --- [管理番号 1968] (最終更新 2001/10/22 01:18:35) Q. FreeBSD(98) のコンソールが見づらいのですが、何か見やすくする方法は ありますか? A. リリース版の tools98 配下に非公式パッチがあり、その中に小金丸さん作 の「背景をブルーにするパッチ」があります。背景の色を変更できるだけ でなく、さまざまなコンソールの設定を行うことが出来ます。 インストールするには tools98/README.txt ファイルをお読みください。 --- [管理番号 2012] (最終更新 2001/11/17 19:15:35) Q. XEmacs を立ち上げたとき (warning/warning) Autoload error in: /usr/local/lib/xemacs/xemacs-packages/lisp/apel/auto-autoloads: Already loaded という警告が出ます。 A. ports/packages から apel-xemacs-* をインストールしませんでしたか? xemacs-* をインストールすると /usr/local/lib/xemacs/xemacs-packages/lisp/apel/ が作成されますが、apel-xemacs-* をインストールすると /usr/local/lib/xemacs/site-packages/lisp/apel/ が作成されます。XEmacs は最初に見付けた方(site-packages)を 使うので大抵の場合は問題ありませんが、どうしても後の方(xemacs-packages) を使いたい場合や気持の悪い人は使いたくない方を消してください。 --- [管理番号 2016] (最終更新 2001/10/19 21:29:34) Q. csh スクリプトで書いたプログラムを cron で実行するようにしたところ、 スクリプト中で stty を使っていないのに、 stty: stdin isn't a terminal というメッセージを含んだメールが実行ユーザ宛に送付されるのですが、 どうすれば回避できますか。 A. そもそも、csh スクリプトを書くべきではありません。 たとえ、tcsh(1) がそう主張していようとも、です (cf. [管理番号 1551])。 それはそれとして、もしもあなたが ・csh の builtin コマンドを使用しなければならない等、あえて csh スクリ プトにする理由がある ・356行くらいある csh スクリプトを、あと 7分で修正して動かさなければな らない ・宗教上の理由またはおばあちゃんの遺言で csh でスクリプトを書かなけれ ばならない のであれば、以下を確認してみて下さい。 csh(1) の「スタートアップとシャットダウン」の節に述べられている通り、 スクリプトからは呼んでいないはずの stty が実行されてしまうのは、 /etc/csh.cshrc や実行ユーザーの .cshrc (または .cshrc) で stty が呼ば れている為でしょう。 /etc/csh.cshrc や .cshrc で行なわれる設定を利用する必要がないのであれ ば、そのスクリプトの冒頭は #! /bin/csh -f として、上記設定ファイルを読み込まないようにすべきです。 一方、非対話的なシェルでは端末の操作を行なう必要はありませんので、 そういう操作を行なう stty のようなコマンドは if ($?prompt) then endif で括って、非対話的なシェルでは実行されないようにして、非対話的なシェル から読み込まれた場合も問題が起きないようにしましょう。 --- [管理番号 2027] (最終更新 2001/10/22 01:18:35) Q. tgif ver.4.1(patchlevel 39) で、色をたくさん使った画像を組み合わせて 一つの PNG ファイルに出力しようとしたのですが、うまく行きません。 そのとき標準エラー出力に xpmtoppm: line too long pnmtopng: EOF / read error reading magic number というメッセージがでています。出力結果がファイルに保存してもらえず、 0バイトのファイルが作成されています。 A. これは xpmtoppm が tgif の XPM ファイルを正しく取扱えないのが原因です。 xpmtoppm の代わりに ImageMagick(version 5.2.3) を使うことで対処できます。 ~/.Xdefaults 等の X リソースに、 Tgif.XPmOutputVersion: 3 Tgif.UseXPmVersion1ForImageMap: false Tgif.XpmToPng: /usr/local/bin/convert %s png:- を追加して (必要なら xrdb(1) を使って)、tgif を再実行して下さい。 (Tgif.XPmOutputVersion は PNG 出力するだけなら不要かもしれません) リソース「Tgif.UseXPmVersion1ForImageMap」は、tgif が出力する XPM フォー マットを XPM version 1 に限定するかどうか制御します。ImageMagick は XPM version 1 を取扱えない(真っ黒になる)ので、このオプションを false にする ことにより tgif が XPM version 3 で出力するようにします。 --- [管理番号 2031] (最終更新 2001/10/22 01:18:35) Q. /tmp に知らないファイルがあるんですが、消してよいですか? A. そもそも /tmp には様々なテンポラリファイルが置かれます。当然その中には 今その瞬間において、使用中のファイルもあるかもしれません。従って、無闇 に消して良いというものではありません。 しかし、中にはプログラムが異常終了したとか、お行儀の悪いプログラムによっ て、そのままほったらかしにされたファイルもあるでしょう。また、複数のユー ザが使用するようなマシンでは、作業ファイルを /tmp に残したままにする人 もいるかもしれません。このような場合、いくつか対策が考えられます。 1. 相手が実体を持つ人の場合は、まずはその人に消してくれるように頼む。(^^; 2. 繁雑にリブートを繰り返すマシンなら、リブート時に自動的に消去してくれ るように、rc.conf(5) に次の設定を追加する。ただし、セキュリティ的に は少々マイナスかもしれない。 clear_tmp_enable="YES" 3. periodic(8) を利用して定期的に古い一時ファイルを消去する。この機能を 有効にするには /etc/periodic.conf に次の設定を追加します。詳細につい ては periodic.conf(5) を参照。 daily_clean_tmps_enable="YES" 4. 手作業でファイルが使用中かどうか確認しながら消去する。これには fstat(1), sockstat(1), netstat(1) などのコマンドが役に立つでしょう。 例えば、X をセットアップしたら、/tmp に `.X11-unix' というディレクトリ、 `.XF86Setup284' というディレクトリが出来ますが、`.XF86Setup284' は XF86Setup を実行したときの作業用ファイルでしょうから消してよいでしょう。 しかし /tmp/.X11-unix/ は消してはダメです。それを ls(1) で見ると % ls -l /tmp/.X11-unix/ srwxrwxrwx 1 root wheel 0 Oct 5 11:07 X0 ^ここ というファイルがあります。この先頭が s になっているものはソケットで (see ls(1))、このソケットファイルを経由してデータをやりとりしている プログラムがいるということです。 具体的にそのソケットを使っているプログラムを見るには sockstat(1) を 使います。 % sockstat -u root kterm 1191 3 stream XF86_Mach64[245]:21 root kterm 1153 3 stream XF86_Mach64[245]:19 root kterm 1048 3 stream XF86_Mach64[245]:20 mat mozilla- 370 8 stream XF86_Mach64[245]:17 mat emacs-dl 316 4 stream XF86_Mach64[245]:18 mat emacs-dl 316 5 stream cannaserver[172]:8 root kterm 254 3 stream XF86_Mach64[245]:10 mat kinput2 250 3 stream XF86_Mach64[245]:8 mat kinput2 250 6 stream /tmp/.ki2-unix/_0-ja_JP root XF86_Mac 245 1 stream /tmp/.X11-unix/X0 root XF86_Mac 245 6 stream /tmp/.X11-unix/X0 root XF86_Mac 245 7 stream /tmp/.X11-unix/X0 root XF86_Mac 245 8 stream /tmp/.X11-unix/X0 root XF86_Mac 245 9 stream /tmp/.X11-unix/X0 root XF86_Mac 245 10 stream /tmp/.X11-unix/X0 root XF86_Mac 245 11 stream /tmp/.X11-unix/X0 mat xinit 244 3 stream XF86_Mach64[245]:6 bin cannaser 172 0 stream /tmp/.iroha_unix/IROHA bin cannaser 172 8 stream /tmp/.iroha_unix/IROHA (略) なので - /tmp/.X11-unix/X0 を使っているのは XF86_Mach64 (Xサーバ) - その X サーバと通信しているのは kterm や emacs や mozilla など (つまり Xクライアント) ということがわかります。他の項目を見れば - /tmp/.iroha_unix/IROHA を使っているのは cannaserver - /tmp/.ki2-unix_0-ja_JP を使っているのは kinput2 ということも読み取れます。 ちなみに X サーバと X クライアントが やりとりしている内容は、 「今そっちのウィンドウにマウスがのったよ」(X サーバから X クライアントへ) 「マウスボタンの右が押されたよ」 (X サーバから X クライアントへ) 「座標 (x,y) に赤色の円を描いて」 (X クライアントから X サーバへ) といったことです。 --- [管理番号 2034] (最終更新 2001/10/22 01:18:35) Q. Ports からインストールした smbfs-1.4.1 を使って、Windows の共有フォルダ をマウントしたいのですが、下記のようなエラーで失敗します。smbfs.ko を ロードすることも出来ません。テスト環境は FreeBSD 4.4-RELEASE です。 ># mount_smbfs //hoge@hoge_server/hoge_share /mnt mount_smbfs: vfsload(smbfs): Exec format error ># kldload smbfs kldload: can't load smbfs: Exec format error A. /var/log/messages に次のようなエラーがでていませんか? Oct 9 22:57:19 xxxxxx /kernel: link_elf: symbol iconv_open undefined その場合、下記のオプションをカーネルに追加する必要があります。 options NETSMB #SMB/CIFS requester options NETSMBCRYPTO #encrypted password support for SMB options LIBICONV #Kernel side iconv library options LIBMCHAIN #mbuf management library KLD モジュール (smbfs.ko) を使いたい場合でも、LIBICONV はカーネルに static link しなければなりません。また、mount_smbfs を実行 (smbfs.ko をロード) する前に、libmcain.ko をロードしておく必要が有ります。 --- [管理番号 2058] (最終更新 2002/01/27 00:09:32) Q. i810, i815 グラフィックチップのマシンに XFree86 4.x 入れたところ、 XFree86 -configure すると、画面が真っ黒になり、ハングアップしたよう になり、動作しません (core dump することもあるようです)。/var/log に記録されたログを見たところ、ddc のところで止まっているようです。 (II) Loading sub module "ddc" (II) LoadModule: "ddc" (II) Loading /usr/X11R6/lib/modules/libddc.a (II) Module ddc: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.4 A. に対処方法があります。要点は以下のとおりです。 1. /boot/loader.conf に以下の行を追加して再起動します。 agp_load="YES" 2. デバイスノードがあるか確認し、なければ以下のように作成します。 # cd /dev # sh MAKEDEV agpgart 3. XFree86 -configure を実行し、XF86Config の雛形を作ります。画面が切 り替わり、何も表示されないままハングアップしたようになる場合は、 [Ctrl]+[Alt]+[Del] で FreeBSD をリブートしてください。この場合でも カレントディレクトリに XF86Config.new というファイルができているで しょう。 4. この XF86Config.new の Device セクションに Option NoDDC を追加しま す。XFree86 -configure で XF86Config を作成した場合は、先の handbook にしたがって、さらに Monitor セクションに Horizsync, VertRefresh を、Screen セクションに Depth, Modes を設定します。 作成した XF86Config に問題がないか確認します。 XFree86 -xf86config XF86Config.new X が立ち上がり、グレーのバックにマウスポインタが表示されます。マウ スを動かして問題なければ [Ctrl]+[Alt]+[Backspace] で終了し、 XF86Config.new を /etc/X11/XF86Config としてコピーすれば完了です。 より細かく設定するには /usr/X11R6/lib/X11/XF86Config.eg にサンプル がありますので、参考にするといいでしょう。 なお、XFree86 -configure がうまく動作しないような環境では、 xf86cfg -textmode を試してみると良いかもしれません。 --- [管理番号 2063] (最終更新 2002/02/14 00:39:59) Q. セキュリティに関する情報はどうやって入手すればよいですか? A. セキュリティホールが見付かり次第、問題点と対処法をまとめた「FreeBSD Security Advisory」が announce-jp@jp.FreeBSD.org に流されます (announce-jp に流れたメールは、FreeBSD-users-jp@jp.FreeBSD.org 参加者 にも配送されます)。 過去の Advisory は以下のサイトを参照して下さい。 FreeBSD Security Information (英語) 上記ページの日本語訳。 ただし和訳作業が必要なため、最新の情報を得たい場合は 本家のページを見ましょう。 また、CERT 関連の情報もチェックしておくとよいでしょう。 CERT Advisory CERT Advisory 邦訳版 CERT Advisory 迅速和訳計画 その他、以下のサイトから情報収集をすることをお勧めします。 セキュリティホール memo。 セキュリティアンテナ。セキュリティ関連のサイトの更新状況チェック。 incidents.org (英語) JPCERT/CC レポート (週刊) IPA 脆弱性関連情報 (随時更新) また、以下のメールマガジンを購読するのもよいでしょう。 Scan Security Wire 有料版 (週1回) Scan Security Wire 無料版 (有料版のダイジェスト) Scan Daily Express (有料。月〜金 日刊) --- [管理番号 2073] (最終更新 2001/11/17 19:15:36) Q. FTP の active/passive モードの仕組みを教えてください。 A. active/passive mode の仕組みを、もう少し具体的に書くと、 FTP というプロトコルは、TCP コネクションを2本使います (HTTP や POP3 では TCP コネクションを1本しか使いません)。 例えば ftp(1) コマンドで FTP サーバに接続すると、 FTP クライアント FTP サーバ ---- 接続 (コマンドコネクション)----> USER ------ コマンド用コネクション ------> PASS ------ コマンド用コネクション ------> という流れでユーザ認証を行ないます (USER・PASS というのは FTP プロトコルの中身です)。 ここで (ftp のプロンプト上で) ls とタイプし、ファイル一覧を 取得しようとすると、 FTP クライアント FTP サーバ PORT ------ コマンド用コネクション ------> LIST ------ コマンド用コネクション ------> <---- 接続 (データコネクション)------ <----- データ用コネクション(1) ------ ファイル一覧送信 と、PORT コマンドで FTP クライアントの IP アドレスとポート番号の 情報を送ります。すると FTP サーバが指定のホスト・ポートに接続し、 データ (ファイル一覧) をクライアントに送ります。引続きファイルを get すると、同様に FTP クライアント FTP サーバ PORT ------ コマンド用コネクション ------> RETR ------ コマンド用コネクション ------> <---- 接続 (データコネクション)------ <----- データ用コネクション(2) ------ ファイル内容送信 となります。FTP サーバが *能動的に* データコネクションを 張りますので、これを active (アクティブ) モード といいます。 これは、FTP サーバが FTP クライアントの動いているホストに接続 するので、ファイアウォールのような環境の中からでは取得できない ことがあります (ファイアウォールの形態次第ですが)。 一方、passive モードは active モードの逆で、ファイル一覧を 取得しようとすると FTP クライアント FTP サーバ PASV ------ コマンド用コネクション ------> LIST ------ コマンド用コネクション ------> ----- 接続 (データコネクション)-----> <----- データ用コネクション --------- ファイル一覧送信 というふうに、FTP クライアント側からFTP サーバ側に接続し、 データ用コネクションを確立します。FTP サーバが *受動的に* データコネクションを受けるので、passive モードと呼びます。 余談. FTP プロトコルについて詳しく知りたければ、RFC 959 を ご覧下さい。デバッグモードで ftp コマンドを実行しつつ (-d オプションを付けて起動する)、適時 % netstat -a -f inet としてポートの状態を見ると、理解しやすいかもしれません。 --- [管理番号 2077] (最終更新 2002/01/27 00:09:33) Q. 起動時に時刻を合わせるにはどうしたらいいですか? A. 起動時に ntpdate で時刻補正を行いましょう。 /etc/rc.conf に ntpdate_enable="YES" ntpdate_flags="xxx.xxx.xxx.xxx" の二行を追加しましょう。 --- [管理番号 2090] (最終更新 2002/02/14 00:39:59) Q. Solaris7 など他の OS で NIS マスタサーバを立ち上げたのですが、 FreeBSD のクライアントから yppasswd を実行すると passwd: failed to change NIS password: RPC: Server can't decode arguments というエラーが出て、パスワードが変更できません。 A. FreeBSD の /etc/login.conf を 変更前 default:\ :passwd_format=md5:\ 変更後 default:\ :passwd_format=des:\ として下さい。理由は、[管理番号 345] や login.conf(5) の passwd_format に関する説明を参照して下さい。 --- [管理番号 2111] (最終更新 2002/02/03 13:12:18) Q. grep hoge * とすると、 /usr/bin/grep: Argument list too long. となってしまいます。どうして? A. 引数が長すぎるからです。 ? や * などのワイルドカードの展開は sh や csh などのシェルが行います。その後、 子プロセス (この場合は grep) を生成するのですが、このとき引数に指定できる長さ (バイト数) の上限は /usr/include/sys/syslimits.h で #define ARG_MAX 65536 と設定されています。 % sysctl kern.argmax kern.argmax: 65536 としても参照できますが、動的な変更は不可能です。 例えば、カレントディレクトリに 000000、000001、000002、000003…という ファイルがあった場合、 grep hoge * とすると、シェルによって grep hoge 000000 000001 000002 000003 .... と展開されますが、そのときメモリ中には grep(\0)hoge(\0)000000(\0)000001(\0)000002(\0)000003 .... というデータが作成されます。このデータは execve(2) の第2引数に渡されますが、 この長さが ARG_MAX を越えていた場合、カーネルがエラーを返し、シェルが Argument list too long というエラーを表示しているわけです。ちなみにこの データは、(execve が成功した場合は) 子プロセスの main(int argc, char **argv) の argv が指す領域となります。 というわけで、こういう場合は、 % echo * | xargs grep hoge % find . -type f | xargs grep hoge % find . -type f -print0 | xargs -0 grep hoge (ファイル名に空白などを含む場合) などとして、引数以外 (この場合は標準入出力) の方法でデータを受け渡します。 また、とにかく引数に渡される文字列の長さを短くすればよいのですから、 % grep hoge /usr/ports/*/*/pkg-plist が長すぎるなら % cd /usr/ports % grep */*/pkg-plist とすれば、`/usr/ports' の11バイト×ファイル数の分だけ短くなります。 grep hoge * がダメで echo * が OK である理由は、sh や csh では echo が 組み込みコマンドとなっていて、子プロセスを生成せず内部で処理するからです。 echo が内部コマンドである証拠 % sh $ type echo echo is a shell builtin $ csh % which echo echo is a shell built-in フルパスを指定して /bin/echo * とすれば、grep と同様に ARG_MAX の 制限を受けます。 参考: [FreeBSD-users-jp 53154] 以下のスレッド --- [管理番号 2118] (最終更新 2004/04/09 05:05:18) Q. Mozilla って何ですか? どうやって使えばよいですか? A. Mozilla は、Netscape 4 の後継となるブラウザで、オープンソースで開発が 進められています。ちなみに Netscape 7.x は、Mozilla-1.0.x をベースに Netscape 社がカスタマイズしたものです。 ports/packages として www/mozilla が用意されていますので、インストールして % mozilla で起動できるはずです。 メニューなどを日本語化したい場合は、 より 日本語パック (JLP) をインストールします。お使いの mozilla のバージョンに対応する 日本語パックを取得して下さい。 なお、日本語パックはあくまでも「メニューを日本語化」するものです。 日本語のページを閲覧したいだけなら、日本語パックなしでも o View -> Character Coding -> Auto Detect -> Japanese を選択 o Edit -> Preferences -> Navigator -> Languages -> Add で Japanese [ja] を追加。追加した Japanese [ja] を選択し、 Move Up (English/United States [en-us] より上に移動) と設定してください。 Netscape 4.x と比較は以下の通り。 利点: - タブが実装されている。mozilla を立ち上げて Ctrl-t を押してみよう。これ だけでも使う価値あり。 - CSS などの規格により忠実になった。 - あまり落ちない。 - Netscape 4.x の日本語入力の変な挙動に悩む必要がない。 欠点: - 重い。初期の mozilla と比べるとかなり軽くなったが、Netscape 4.x と 比べるとやはり重い。 - Java Applet が動かない (対応の動きあり)。 また Java Applet を実行するなら java/jdk13 を、Flash を動かしたいなら www/flashpluginwrapper をインストールするとよいでしょう。または www/netscape7 (Linux 版) をインストールする手もあります。 より詳しい情報は、以下のリンクからどうぞ。 mozilla.org mozilla.org 和訳 もじら組 Mozilla スレッド@ソフトウェア板 (mozilla 一般の話題) Mozilla とゆかいな仲間たち@UNIX 板 (UNIX 上での mozilla について) --- [管理番号 2122] (最終更新 2002/04/11 03:59:26) Q. japanese/xdvi-vflib-pk* を入れたのですが、dvi ファイルをプレビュー しようとすると、フォントが足りないようで表示ができません。 A. 以下の点を調べてみて下さい。 1. その dvi ファイルは、JIS フォントメトリックを使っていませんか? 例えば、jsclasses などを使っている場合が該当します。 その場合、/usr/local/share/texmf/xdvi/vfontmap の後ろ4行にある コメントアウトを解除してください. 2. japanese/xdvi-vflib-pk* は、japanese/ptex-pkfonts* にあるフォン トのみを用いて表示を行おうとします。足りないフォントを自動的に生 成するようにするには、japanese/xdvi-vflib-pk* ではなく japanese/xdvi-vflib を入れてください。もちろん、その後に japanese/ptex-pkfonts* を入れると、そのフォントも表示に用いられ ます。よく使う解像度のフォントは入れておいた方がよいでしょう。 --- [管理番号 2125] (最終更新 2002/02/20 10:50:33) Q. ノートパソコンで /etc/rc.conf に xntpd_enable="YES" と書いて ntpd を起動すると、ntp server と正常に通信が行えず時刻が同期 しません。何か良い手はありませんか。 A. PC card NIC を認識して IP アドレスが割当てられる前に ntpd が 起動するために、正しい自分の IP アドレスではなく 127.0.0.1 か ら ntp server と通信しようとするのが原因です。 /etc/rc.conf 内の pccardd_flags に -z を追加すれば、PC card が 認識されるまで起動処理を待つようになり、正常に動作するように なります。 --- [管理番号 2132] (最終更新 2002/02/20 10:50:33) Q. FreeBSD での PC Card の動作リストはどこにありますか。 A. FreeBSD 4.x-RELEASE 以降は /etc/defaults/pccard.conf をご覧になるのがいい でしょう。cvsweb 経由で閲覧する場合は以下 URL でご覧になれます。 FreeBSD 2.x-RELEASE および 3.x-RELEASE で PAO を用いて PC CARD を 使用している場合には、下記 URL のリストを見るのがよいでしょう。 (日本語) ただし上記のリストに出ている場合でも、カードのリビジョン違いによる 仕様変更などにより動かないこともありえます。念のため ML 等も検索する ことをお勧めします。 またベンダーによっては下記の URL のように FreeBSD での「動作確認リスト」 をまとめている所もあるので参考にするといいでしょう。 --- [管理番号 2179] (最終更新 2002/10/21 05:19:40) Q. FreeBSD(98) ?.?R-inst?? (? は数字) というバージョンを見かけたのですが、 これはリリースバージョンとは違うのですか? A. inst?? (後ろ2文字は連番) は、正式リリース前にテストを行う目的で 作成されるバージョンです。従って、正式な配布物ではありませんし、 インストールや動作に不具合がある可能性もあります。 メーリングリストや NetNews などに inst?? についての質問をしても、 誰も答えられないかもしれません。FreeBSD(98) 自体の開発以外の目的で 利用される場合は、正式にリリースされた配布物をインストールされる ことを強くお薦めします。 テストに協力したいという方は、以下の Web ページをよく読んでいただき、 FreeBSD(98) testers メーリングリストに加入して、テストのレポートを 送って下さい。 --- [管理番号 2185] (最終更新 2002/06/18 23:56:59) Q. X 端末から XDMCP を使って FreeBSD に接続しようとしていますが、 ログインウィンドウが表示されません。 A. 最近の FreeBSD の xdm は、XDMCP などのリクエストを聞かない設定が デフォルトになっていますので、そのせいかもしれません。 ハンドブックの 5.6.4. ネットワークディスプレイサーバの起動 を参考に /usr/X11R6/lib/X11/xdm/xdm-config を書き換えてください。 --- [管理番号 2199] (最終更新 2003/01/22 21:13:31) Q. locale (ロケール・ロカール) って何ですか? A. 国や地域、言語によって挙動が違う部分を吸収し、1つのプログラムで複数の 国・地域・言語に対応するための仕組みです。 locale はフレームワークでしかありませんので、locale を指定すると実際に アプリケーションがどのような挙動をするかはアプリケーションによって 大きく違います。 date コマンドを例にとると、デフォルト (デフォルトは C ロケールといいます) では英語表記です。 % env - date Mon Mar 25 02:22:57 JST 2002 一方、環境変数 LC_ALL を ja_JP.eucJP とすると、 % env LC_ALL=ja_JP.eucJP date 2002年 3月25日 月曜日 02時22分07秒 JST と日本語表記となります。年月日の表示順も日本式になっていることに 注意して下さい。 また、メッセージカタログという仕組みでメニューを各国の言語に切り替える ことができるアプリケーションもあります。以下のようにすると tgif や sylpheed のメニュー・メッセージが日本語化されます。 % env LC_ALL=ja_JP.eucJP tgif % env LC_ALL=ja_JP.eucJP sylpheed jman(1) のように、何語のマニュアルを表示するかをロケールに従って 決定しているプログラムもあります。 % env LC_ALL=C jman ls (英語のマニュアル) % env LC_ALL=ja_JP.eucJP jman ls (日本語のマニュアル) --- [管理番号 2200] (最終更新 2003/01/22 21:13:31) Q. locale (ロケール・ロカール) の設定をしたいのですが、環境変数が LANG やら LC_ALL やらたくさんあって、どれを使ってよいのかわかりません。 A. ロケールには以下の 6つのカテゴリがあり、以下のような分類になっています (詳しくは setlocale(3) を参照して下さい)。 LC_COLLATE 文字列のソート順を設定する LC_CTYPE 扱う文字の種類 (エンコーディング) を設定する LC_MESSAGES メッセージなどの言語を設定する LC_MONETARY 通貨単位や金額表記を設定する LC_NUMERIC 数値の表記について設定する LC_TIME 日付と時刻のフォーマットを設定する この 6つの環境変数を適切に設定すればよいのですが、数が多くて面倒です。 そこで上記のカテゴリをまとめて設定するものとして、環境変数 LC_ALL と 環境変数 LANG があります。 - LC_ALL は最も強く、他の LC_* を上書きします。 - LANG は最も弱く、他の LC_* によって上書きされます。 よって、どの環境変数を何にセットするかでプログラムの挙動は変わります。 LC_CTIME を参照する date(1) コマンドの例を以下に示します。 % env - date Mon Mar 25 02:56:33 JST 2002 ↑何もロケールを何も設定しないと C ロケールが使われる % env LANG=C date Mon Mar 25 02:56:45 JST 2002 ↑C ロケールは英語表記となる % env LANG=C LC_TIME=ja_JP.eucJP date 2002年 3月25日 月曜日 02時56分58秒 JST (EUC-JP で出力される) ↑LANG は LC_TIME により上書きされる % env LC_ALL=ja_JP.SJIS LANG=C LC_TIME=ja_JP.eucJP date 2002年 3月25日 月曜日 02時56分58秒 JST (Shift_JIS で出力される) ↑LC_TIME は LANG より強く、さらに LC_ALL の方が強い また、上記 6カテゴリとは別に環境変数 LANGUAGE というものもあります。 これは GNU gettext だけが使用する独自の環境変数ですので、GNU gettext を利用していないアプリケーションならば環境変数 LANGUAGE は無関係です。 LANGUAGE は LC_MESSAGES と同じく、メッセージの言語を設定するための ものですが、 LANGUAGE=ja_JP.eucJP;ko_KR.eucKR;US-ASCII などと優先順位を付けて複数の言語を記述できます (ja_JP.eucJP があれば それを使う。なければ ko_KR.eucKR。それもなければ US-ASCII)。 --- [管理番号 2222] (最終更新 2002/06/18 23:56:59) Q. ja-netscape のメニューやボタンが文字化けします。日本語リソースファイルを いじったり、~/.Xdefaults で Netscape*fontList を指定したりしてみましたが、 解決できません。 A. KDE をお使いではありませんか? Control Center → Look & Feel → Style の「他の描画に関する設定」で 「フォントと色を非 KDE アプリにも適用」のチェックを外し、KDE を再起動 してみてください。 少なくとも Netscape 4.x と ja-kde-i18n-2.2.2 の組合せでこの問題が 起きることが確認されています。Mozilla + KDE の場合は問題ありません。 参考 --- [管理番号 2224] (最終更新 2002/06/18 23:56:59) Q. FreeBSD 4.X-RELEASE で May 19 05:52:07 サイト名 sshd[1866]: warning: /etc/hosts.allow, line 23: can't verify hostname: getaddrinfo(ドメイン 名, AF_INET) failed がでるのですが、セキュリティ上問題はありませんか? /etc/hosts.allow はオリジナルのまま変更していません。 A. このメッセージは sshd(8) にかぎらず、 libwrap(3) をリンクしたサーバプログ ラム、具体的には inetd(8), portmap(8), sendmail(8) からも発生します。 これは接続して来たクライアントの逆引き→正引きを行なった後、 /etc/hosts.allow の評価を行ないます。そして 逆引き→正引きを行なった際、正 引き情報と一致しないものを排除するためのものです。該当するアクセスがあれば、 逆引きに失敗するのでこの様な warning が発生します。 ホスト名・ドメイン名を偽造したアクセスである可能性が高いので、 warning が気 になる人は、 /etc/hosts.allow の先頭、少なくとも ALL : ALL : allow の前に、 ALL : PARANOID : RFC931 20 : deny を追加して下さい。 warning は消えませんが、この様なアクセスを排除することが できます。 --- [管理番号 2228] (最終更新 2004/04/09 05:04:51) Q. 乱数を得ようと rand(3) を使ったのですが、非常に質の悪い乱数が生成され てしまいます。 A. FreeBSD の rand 関数は質の悪い乱数生成関数ですので、使わない方がよいで しょう。 乱数を利用する場合、次の2通りの用途があります。 (1) Monte Carlo 法等のシミュレーション 再現性のある擬似乱数が必要です (2) 暗号 乱数列が推測できてはいけません (1) シミュレーション等に用いる擬似乱数 シミュレーション向けの擬似乱数については、2004年現在 Mersenne Twister が最も良いでしょう。 詳しくは「間違いだらけの擬似乱数選び」 をご覧ください。 実装については、上記サイトで紹介されているものの他、C++ 版が boost (ports にもなっています: ports/devel/boost) に含まれるほか、C# 版が で公開されています。言語によっては処理系や広く使われているライブラリで 提供されていることもあります。 (2) 暗号 暗号に用いる場合、簡単にいうと、生成される乱数列が推測できてはいけません。 FreeBSD では、/dev/random が利用できます。また、RC4 暗号に用いられる疑似 乱数生成関数 arc4random() も用意されています。それぞれ、ramdom(4)、 arc4random(3) のマニュアルを参照してください。 他にも OpenSSL で乱数生成用の API が提供されています (RAND_*)。engine(3)、 rand(3) 等、関連するマニュアルを参照してください。詳しいことは暗号関連の 参考書を調べてください。 なお、OpenSSL のマニュアル rand(3) はシステムの rand(3) 関数と重なって いるので、man -a 3 rand と -a オプションを指定しないと読めないでしょう。 --- [管理番号 2229] (最終更新 2002/08/24 06:22:40) Q. FreeBSD 4.6-RELEASE で /stand/sysinstall や rc.conf で sendmail_enable="NO" としているにもかかわらず、sendmail が デーモンとして起動されます A. sendmail が 8.12.x に変更されたためです。 sendmail では、その機能実装のために root の setuid が必要ですが、sendmail 8.12.x ではセキュリティ強化 のために MSP (Mail Submission Program) を root の setuid から切り離して独立させました。 このために sendmail 8.12.x では MSP もデーモンモード で稼働させる必要があります。したがってセキュリティの 確保を目的として sendmail をデーモンモードで起動させ ないつもりで sendmail_enable="NO" と設定しても、MSP としての sendmail がデーモンモードで起動します。この MSP として起動されている sendmail デーモンには、従来 指摘されてきた脅威の可能性はありません。 qmail や postfix のような sendmail 以外の MTA を使って いる場合や、その他の方法で MSP を起動する場合などで rc.conf で MSP としての sendmail の起動も不要な場合には、 rc.conf に sendmail_enable="NONE" ("NO" ではないことに 注意)と設定します。 参考: [FreeBSD-users-jp 68867] から始まるスレッド --- [管理番号 2231] (最終更新 2002/08/24 06:22:40) Q. ノートパソコン (IBM ThinkPad s30) で外部CRT (プロジェクタなど) への 出力がうまくいきません。切り替えスイッチ (Fn+F7 など) で出力先を切り替 えても、外部 CRT の画面は真っ黒か、NO SIGNAL かです。時々本体側のモニ タが徐々に白くなったりします。 A. 本体の外部ディスプレイ出力と外部モニタとを接続した後に X を(再)起動 し、外部 CRT 出力に切り替えてみてください。X 起動後に接続してしまうと、 どうやってもうまくいかないようです。この様な現象は他にも IBM ThinkPad 240Z や SONY C1VS などの機種の一部で発生することが報告されています。原 因はわかりません。 参考: [bsd-nomads:16326] から始まるスレッド --- [管理番号 2245] (最終更新 2002/08/24 06:22:40) Q. root では X server を起動出来るのですが、一般ユーザーでは起動できません。 なお、X は XFree86 version 4 系列を使っています。 (または、FreeBSD 4.6-RELEASE 以降をインストールしました)。 A. XFree86 の version 4 系列では、セキュリティを高める為に X server を root に setuid しないようになりました。 インストール時に表示されるメッセージは、 pkg_info -D XFree86-4.2.0_1,1 などとして表示できますが、そこにこの問題に該当する下記のような注意事項 があります。 Install notice: ************************************************************************ * To improve security, the X server is installed without an SUID bit. * * This is suitable for use with xdm, but not with a startx script. * * If you need to use a startx script, install the x11/wrapper package. * ************************************************************************ これを読むと、xdm 経由で login する場合は問題ありませんが、そのままで は startx (や xinit) script から起動する場合はうまくゆかないので、 ports/x11/wrapper をインストールして使えばよいことがわかります。 --- [管理番号 2247] (最終更新 2003/10/16 23:20:37) Q. フレッツ ADSL と ppp(8) を使ってインターネットに接続しています。 自動リダイアルモード (-ddial) で、PPPoE 接続が切れても、自動的に 再接続してくれません。 A. フレッツ ADSL の場合、 PPPoE 接続が切れたことを ppp で認識できない ことがあります。これを改善するためには、なんらかの方法で PPPoE 接続が 切断されたかどうかを調べる必要があります。 対策としては、以下の方法があります。 1. PPP 設定ファイルで、 "enable lqr" とする。 この場合、 ppp は、30 秒に 1 度、 PPPoE 接続先に LQR パケットを送る。 LQR パケットが連続して 5 回無視されたら (つまり、 PPPoE 接続先から 150 秒応答がなければ)、 ppp は自動的に PPPoE 接続を切断する。 2. 以下のようなスクリプトを書く。 「 PPPoE 接続先 (ifconfig で tun* のデバイスを見た時、 -> の 右側に書いてある IP アドレス ) に ping を飛ばす。 飛ばないようなら PPPoE 接続が切断されたとみなし、 ppp を再起動する。」 [FreeBSD-users-jp 63734] から始まるスレッドが参考になるでしょう。 --- [管理番号 2255] (最終更新 2002/08/24 06:22:44) Q. cron 等から起動されるバッチ処理の中で ssh を利用したいのですが、 ログインを自動化するにはどうすればよいですか? A. 二つの方法があります。 一つは、ホストベース認証を使う方法です。詳しい設定方法は [管理番号 1578] で紹介されていますので、そちらを参照して下さい。 もう一つは、パスフレーズの設定されていない秘密鍵を使う方法です。 [管理番号 1578] では、公開鍵認証で ssh-agent を使う方法を紹介していますが、 これは ssh-agent をあらかじめ起動しておく必要があるため、cron 等からの 利用には向いていません。 もちろん、秘密鍵ファイルにパスフレーズを設定しないということは パスワードを生でテキストファイルに保存しているのと同義ですから、 より厳重に鍵ファイルを管理しなければなりません。 そこで、万が一秘密鍵ファイルを盗まれた場合のリスクを軽減するため、 利用制限付きの認証鍵を作成する方法を紹介します。 以下の手順は、OpenSSH 2.9 と 3.4p1 で実行できることを確認しています。 1. パスフレーズのない認証鍵を新しく作成します。 % ssh-keygen -t rsa1 -N "" -f ~/.ssh/backup SSH2 を使う場合は '-t rsa1' を '-t dsa' や '-t rsa' に変えて下さい。 2. 作成された公開鍵ファイル ~/.ssh/backup.pub の先頭に「オプション」を 追加します。 % vi ~/.ssh/backup.pub ... % cat ~/.ssh/backup.pub command="/usr/bin/tar czf - hoge",no-pty,no-port-forwarding 1024 35 1472731(以下略) この例では、"/usr/bin/tar czf - hoge" というコマンドだけが実行可能な ように指定しています。オプションには他にも多くの種類があります。 詳しくは sshd(8) を参照して下さい。 3. 編集した公開鍵ファイルをリモートホストへ転送します。 % cat ~/.ssh/backup.pub | ssh remotehost 'cat >> .ssh/authorized_keys' これで、準備は完了です。 % ssh -q -i ~/.ssh/backup remotehost > backup.tgz とすると、リモートホストでの "/usr/bin/tar czf - hoge" の出力が ローカルホストの backup.tgz に格納されます。 また、万が一 ~/.ssh/backup の内容が洩れたとしても、 この鍵では "/usr/bin/tar czf - hoge" というコマンドしか実行できないので 被害を最小限に押えることができます。 なお、/etc/ssh/sshd_config に以下のように記述しておくと、 通常の root ログインを禁止しながら、command オプションを指定した 公開鍵認証のみを許可することができます。 ----------- PermitRootLogin forced-commands-only ----------- この機能はリモートバックアップ等を実行する場合に非常に便利です。 --- [管理番号 2272] (最終更新 2003/10/16 23:20:14) Q. 起動時に "boot -v" とすれば、詳細なブートメッセージが表示される と聞いたのですが、どうやって入力するのか分かりません。 A. FreeBSD 起動時に、 Hit [Enter] to boot immediately, or any other key for command prompt. と出てきたところで Enter 以外 (例えばスペースキーなど) を叩くと ok というプロンプトが表示されますので、ここで boot -v と入力します。 ハンドブックの以下の項目も参考になるでしょう。 --- [管理番号 2341] (最終更新 2003/05/17 21:39:22) Q. 複数の ISP と契約し、FreeBSD をルータとして接続した時にルーティングが うまく行きません。 ISP0 ISP1 | | | | |if0 |if1 +-------------+ | FreeBSD Box | +-------------+ 上記のような構成で、Default Gateway を ISP0 側に設定しました。この状態 で外部ネットワークからアクセスすると ・if0 に振っている IP アドレスにアクセスすると問題なくつながります。 ・if1 に振っている IP アドレスにアクセスすると繋がりません。 Default Gateway を ISP1 側に設定して外部ネットワークからアクセスすると ・if0 に振っている IP アドレスにアクセスすると繋がりません。 ・if1 に振っている IP アドレスにアクセスすると問題なくつながります。 最初の構成に戻して tcpdump(1) で調べたところ外部ネットワークから if1 に 振っている IP アドレスにアクセスすると、戻りのパケットが if0 から送出し ているのが確認できました。どうやら、if1 のアドレスは ISP0 でフィルター されているようです。 if1 にアクセスされたときに if1 からパケットを送出するようにするにはどの ようにすれば良いのでしょうか 。 A. ipfw(8) の fwd をつかって下さい。Default Gateway が ISP0 に向いている場合、 # /sbin/ipfw fwd {ISP1 Gateway address} from {if1 のアドレス} to not {if0のネットワークアドレス} とすれば if1 へのアクセスの戻りのパケットは ISP1 に向かって送出される ようになります。 なお ipfw の使い方に関してはハンドブックや ipfw(8) などご参照下さい。 --- [管理番号 2348] (最終更新 2004/04/09 05:04:53) Q. moused 経由で X にマウスイベントを送る設定にしたら、マウスカーソルは正 常に動くのですが、クリックのイベントが遅れます。 以前から使っている XF86Config そのままなのですが。 A. XFree86 4.2.0 の頃から、moused 経由で mouse を使う場合には XF86Config の Protocol の行を、"sysmouse" ではなく "auto" とする必要があります。 たとえば、スクロールマウスの場合は、 Section "InputDevice" Identifier "moused" Driver "mouse" Option "CorePointer" Option "Device" "/dev/sysmouse" Option "Protocol" "auto" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection のように書きます --- [管理番号 2355] (最終更新 2003/05/17 21:39:22) Q. CPU 切り替え機を利用しています。FreeBSD をインストールしようとすると キーボードが効かなくなるのですが、どうしたらよいですか? A. まずインストール時に Skip kernel Configuration and Continue with installation Start kernel configuration in full-screen visual mode Start kernel configuration in CLI mode という 3択画面が表示されるか確認してください。 1. この画面が表示される場合 A. FreeBSD 4.x 系列 三番目の "Start kernel Configuration in CLI mode" を選択し、 Config> flags atkbd0 0x2 Config> quit と入力する。 B. FreeBSD 5.x 系列 Hit [Enter] to boot immediately .... と画面が表示されたときに Enter キー以外を押す。ok とプロンプトが表示されたら以下の コマンドを入力する set hint.atkbd.0.flags=0x2 boot 以上の作業でキーボードを使ってインストール可能になります。インス トール後、atkbd0 のフラグが常に有効になるようにしてください 2.この画面が表示されない場合 残念ながら、CPU 切り替え機に問題があるようです。以下の CPU 切り替え機では kernel configuration 画面が表示されないと報告されています。 ・SANWA SUPPLY SW-CPU4N 解決策は以下の通りです。 A. FreeBSD 4.x 系列 CPU 切り替え機を外した状態でインストールを行って下さい。その後 カーネル設定ファイル (/usr/src/sys/i386/conf 以下) の atkbd0 の flags の値に 0x1 を 0x2 に変更します。 device atkbd0 at atkbdc? irq 1 flags 0x1 ↓ device atkbd0 at atkbdc? irq 1 flags 0x2 CPU 切り替え機を再接続してください。この状態で利用できるようになります。 B. FreeBSD 5.x 系列 Hit [Enter] to boot immediately .... と画面が表示されたときに Enter キー以外を押し set hint.atkbd.0.flags=0x2 boot と打ち込む事で、CPU 切り替え機を外さなくともインストール可能です。 --- [管理番号 2441] (最終更新 2003/11/17 02:28:47) Q. スワップ (swap) 領域のサイズはどのくらい確保すべきなのでしょうか。また、 後からスワップ領域サイズを増やしたくなった場合のお手軽な対処方法はありますか。 A. FreeBSD の場合は VM のアルゴリズム上、物理メモリ量 2倍以上のスワップ 領域を確保した方が性能が良くなるようです。tuning(7) を参照してください。 また、スワップ領域サイズが物理メモリサイズ以上なければ、カーネルパニック 時のカーネルダンプが出来なくなります。 なお、本来 FreeBSD をスワップ領域なしで運用することは可能なのですが、 FreeBSD の sysinstall(8) を使ってインストールすると、必ずスワップ領域を 指定しないといけません。これは sysinstall(8) の制限です。 スワップ領域はスワップファイルとして用意することも可能ですので、 - まずはスワップ領域を少なめ (32MB程度) でインストールしてみる。 - 使ってみてメモリがやはりキツければ、スワップファイルを追加する。 という手も使えます。 例として、10MB のスワップファイルを /usr/SWAPFILE として追加する方法を 紹介します(4.8-RELEASEで確認されています)。 1. スワップ領域として使用するファイルを作成 # dd if=/dev/zero of=/usr/SWAPFILE bs=1024k count=10 2. /etc/rc.conf に次の記述を追加 swapfile="/usr/SWAPFILE" 3. リブートし、スワップ領域に追加されたか確認 # pstat -s Device 1K-blocks Used Avail Capacity Type /dev/ad0s1b 130944 0 130944 0% Interleaved → /dev/rvn0b 10112 0 10112 0% Interleaved Total 141056 0 141056 0% この方法を、FAT ボリュームにある pagefile.sys (Windows のスワップファイル) に応用することも可能です。 --- [管理番号 2460] (最終更新 2004/04/09 05:04:55) Q. メディアタイプの自動認識がうまくいかない NIC の設定を、DHCP クライ アントで行いたいと思っています。 メディアタイプの手動設定をするには、/etc/rc.conf において、 ifconfig_de0="media 100baseTX mediaopt full-duplex" のように(通常はIPアドレスなども同時に設定しますが)、また DHCP クラ イアントを起動するには、 ifconfig_de0="DHCP" のように設定します。 これを両方同時に設定したいのですが、うまくいきません。 A. FreeBSDの起動時に実行されるネットワークインターフェース初期化スクリ プトは、/etc/rc.conf の ifconfig_${ifn} の内容によって、各インター フェースに対する処理内容を決定していますが、DHCP クライアントを起動 すのは、ifconfig_${ifn} が "[Dd][Hh][Cc][Pp]" である時だけです。 ですから、「DHCP クライアントを実行」しながら「 ifconfig(8) でメディ アタイプを指定」という処理をするには、rc.conf(5) の設定だけでは無理 で、少し工夫が必要です。 (注) 以下「de0」は、お使いの NIC に合わせて適宜「fxp0」などに 読み替えてください。 まず、 /etc/rc.conf で ifconfig_de0="DHCP" と指定しておき、DHCP クライアント(デフォルトでは dhclient(8) ) が 起動するようにしておきます。メディアタイプの指定については、次の 二通りの方法がありますが、例として 100BaseTX / 全二重に設定する場合 を挙げます。 (方法その1) メディアタイプを ifconfig(8) で手動設定する際のコマンドを、そのま ま /etc/start_if.de0 に ifconfig de0 media 100baseTX mediaopt full-duplex のように記述します。DHCP クライアントの起動前に、初期化スクリプト がこの内容を読み込んで実行してくれます。詳細は rc.conf(5) を参考 にしてください。 (方法その2) DHCPクライアントに dhclient(8) を用いる場合、/etc/dhclient.conf に interface "de0" { media "media 100baseTX mediaopt full-duplex"; } のように記述して、dhclient(8) 自身にメディアタイプを設定させます。 詳細は dhclient.conf(5) を参考にしてください。 --- [管理番号 2478] (最終更新 2003/11/17 02:28:48) Q. FreeBSD のマニュアルにはどんなものがありますか? A. マニュアルはセクションごとに分類されています。FreeBSD での セクション一覧を以下に示します。 セクション 1…コマンド セクション 2…システムコール セクション 3…ライブラリルーチン セクション 4…デバイスとデバイスドライバ セクション 5…ファイルフォーマット セクション 6…ゲーム セクション 7…雑多な情報 セクション 8…システムメンテナンスおよび操作コマンド セクション 9…カーネルインタフェース より詳細な情報を見るには各セクションの intro を参照してくだ さい。例えばセクション 4 の intro は % man 4 intro で読めます。 また、セクション全体で共通な情報も intro に記述してあります。 例えばほとんどのシステムコールは - 成功したら 0 を返す - 失敗したら -1 を返す - 失敗したときの理由は識別子 errno に格納される という共通のインタフェースを持っていますが、このような説明が intro(2) に書かれています。また、intro(2) にはエラー番号の 一覧も記載されています。 以下、見付けにくく、なおかつ役立つかもしれないマニュアルを 紹介しておきます。 ファイルフォーマット elf(5) a.out(5) core(5) uuencode(5) など バイナリ・テキストフォーマットの説明 hosts(5) aliases(5) resolv.conf(5) forward(5) など 設定ファイルの説明。/etc/ の下にある OS の設定ファイルと、 ~/.forward などのユーザごとの設定ファイルのマニュアルがある。 デバイス da(4) aic(4) など デバイスドライバの説明 null(4) random(4) など /dev/null や /dev/random など特殊なデバイスの説明 いろいろ hier(7) ディレクトリ階層の説明 tuning(7) 性能チューニング symlink(7) シンボリックリンクの扱い security(7) セキュリティ入門 environ(7) 主要な環境変数 style(9) カーネルソースファイルのスタイルガイド stdio(3) 標準入出力ライブラリの関数一覧 procfs(5) /proc の説明 build(7) システムの構築方法 release(7) リリース版の構築方法 ports(7) portsの説明(make時のターゲットなど) firewall(7) ファイアウォールの構築例 re_format(7) 正規表現 便利なメモ ascii(7) ASCII コード表 (8進数・10進数・16進数) operator(7) C 言語の演算子の優先順位と評価順序 おまけ /usr/share/misc/bsd-family-tree UNIX の系統図 /usr/share/misc/iso3166 国別コード /usr/X11R6/lib/X11/rgb.txt X における色の名前 /usr/local/share/emacs/*/etc/condom.1 関連QandA: [管理番号 141] (~/.netrc -> ftp(1) ) --- [管理番号 2549] (最終更新 2004/04/09 05:05:29) Q. FreeBSD 4.9-RELEASE 以降及び 5.x-RELEASE で、kterm 上でページャや エディタ等を起動して終了した時に、画面がこれらのプログラムを実行する 直前の状態に戻ってしまい、プログラム終了時の画面が参照できなくなり ます。 4.8-RELEASE 以前では、プログラム終了時の画面がそのまま残ったはずな のですが。 A. termcap(5) の kterm エントリにおいて、:tc= の示す先が旧来の xterm から xterm-r6 に変更され、ti/te ケーパビリティが有効になったため です。 4.8-RELEASE 以前のように、プログラム終了時の画面が残るように するには、:tc= の前に :ti@:te@ を入れるのが簡単です。root に なって、/usr/share/misc/termcap 中の kterm エントリの最後の行、 :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: これを次のように変更して、cap_mkdb(1) コマンドを実行してください。 :eA@:as=\E(0:ae=\E(B:ti@:te@:tc=xterm-r6: 参考: [FreeBSD-users-jp 77760] 4.9R の (j)less [FreeBSD-users-jp 77765] Re: 4.9R の (j)less --- [管理番号 2567] (最終更新 2004/04/09 05:05:43) Q. ssh で remote login した jail で X アプリケーションを実行すると、 次のエラーが出て実行できません (FreeBSD 4.9-RELEASE で確認)。 % xterm X11 connection rejected because of wrong authentication. X connection to localhost:10.0 broken (explicit kill or server shutdown). A. 原因はよく分からないのですが、/etc/ssh/sshd_config に X11UseLocalhost no という設定を行なえば起動できるようです。 この変更に伴い、DISPLAY 環境変数が「localhost:10.0」から 「ホスト名:10.0」に変わります。 --- [管理番号 2576] (最終更新 2004/04/09 05:05:52) Q. NTFS / CD9660 / UDF で日本語ファイル名を扱うことは出来ますか。 A. FreeBSD 5.2-RELEASE から、日本語を含めた、マルチバイト文字を使った ファイル名を、これらのファイルシステム上で扱うことが出来ます。 ただし、 libiconv.ko ntfs.ko (NTFS) ntfs_iconv.ko (NTFS) cd9660_iconv.ko (CD9660) udf.ko (UDF) udf_iconv.ko (UDF) モジュールを起動時に組み込むか、もしくは、 options LIBICONV options NTFS options NTFS_ICONV options CD9660_ICONV options UDF options UDF_ICONV を追加してカーネルを再構築する必要があります。またどちらの場合でも、 libiconv (ports/devel/libiconv) のインストールも必要です。 詳細は [FreeBSD-tech-jp 3369] 、リリースノート、及び mount_ntfs(8) , mount_cd9660(8) , mount_udf(8) を参照してください。 参考: [FreeBSD-users-jp 76194] からのスレッド。 (当時の 4-stable 向けのパッチもあります。)