From 197325317eabd6349546016646c6e850a558b8a7 Mon Sep 17 00:00:00 2001 From: Doc Manager Date: Tue, 2 Mar 1999 14:21:54 +0000 Subject: Create tag 'LINUXDOC_2_DOCBOOK_4'. --- ja/handbook/kernelconfig.sgml | 1257 ----------------------------------------- 1 file changed, 1257 deletions(-) delete mode 100644 ja/handbook/kernelconfig.sgml (limited to 'ja/handbook/kernelconfig.sgml') diff --git a/ja/handbook/kernelconfig.sgml b/ja/handbook/kernelconfig.sgml deleted file mode 100644 index a0b5feef93..0000000000 --- a/ja/handbook/kernelconfig.sgml +++ /dev/null @@ -1,1257 +0,0 @@ - - - - - FreeBSDカーネルのコンフィグレーション - -

原作: &a.jehamby;. 6 October 1995. - -

訳: - &a.tomo;, - &a.yoshiaki;. - 2 November 1996. - - この章はシステムに合わせたカーネルの再構築の基礎について - 述べたものです. この章は, システム管理の初心者から - Unixシステム管理に十分な経験を積んだ人までを対象としています. - - なぜカスタムカーネルを作るか? - -

システムに合わせたカーネルの構築はすべての - Unixシステム管理者が - 避けて通ることのできない最も重要な通過儀礼の1つです. - この作業は, 多くの時間を必要としますが, あなたの FreeBSD - システムに多くの利益をもたらします. GENERICカーネルは, - めったに使われることのないハードウェアをサポートするとともに, - 考えられるすべての SCSIカードやネットワークカードをサポート - しなければなりませんが, システムに合わせたカーネルは - あなたの PC のハードウェアのみをサポートします. - これは, 次にあげるような利益をもたらします. - - - - あなたが持っていないハードウェアについては検出をおこなわな - いので, ブートにかかる時間が短くなります. - - システムに合わせたカーネルは多くの場合メモリ使用量が - 減ります. カーネルはいつもメモリ上に存在するので, - 不必要なコードがあると本来プログラムが利用できるはずの - RAM (実メモリ) を占めてしまいますのでこれは重要なことだ - といえます. - したがって, メモリが少ないシステムでは, - カーネルの再構築は大変重要です. - - 必要に応じていくつかのカーネルオプションは調整すること - ができ, またサウンドカードのような GENERICカーネルには - ないデバイスドライバをカーネルに含めることが - できます. - -

- - カスタムカーネルの構築とインストール - -

まず, カーネル再構築に必要なディレクトリをざっと見てみましょう. - ここではディレクトリはすべて /usr/src/sys以下の相対位 - 置で示します. また, /sysからもアクセス可能です. - ここには, カーネルの各部分を構成するサブディレクトリが - いくつもあります. しかし, 私たちの目的では - 最も重要なのは i386/confです. ここで, あなたの - システムに合わせてカーネル コンフィグレーションを編集します. - それから compileディレクトリ, ここはカーネルが作られる - 場所です. サポートされているデバイスやファイルシステムのディレ - クトリツリーがオプション毎にサブディレクトリに分かれている論理 - 的構成に注意してください. また, i386のディレクトリは - PCのハードウェアのみを扱い, i386以外のディレクトリは - FreeBSDが他のプラットフォームに移植される際には共有されるコー - ドです. - - /usr/src/sys - 以下のディレクトリがなければ, カーネルのソースが - インストールされていません. もっとも簡単な方法は (rootで) - /stand/sysinstall を用いて以下のようにします. - 「設定(Configure)」を選んでから 「配布ファイル(Distribution)」 - を選択し, 「src」の中の「sys」をインストールしてください. - - - つぎに, i386/confに移動して, GENERIC - コンフィグレーションファイルをカーネルに与えたい名前に - コピーしてください. たとえば: - -# cd /usr/src/sys/i386/conf -# cp GENERIC MYKERNEL - - 慣習として, この名前はすべて大文字でつづられます. もし, - いくつかの異なるハードウェアの FreeBSDマシンを扱うなら, - この名前にホスト名を含めるとよいでしょう. - ここでは, 例として MYKERNEL と呼ぶことにします. - - - - では, MYKERNELをあなたの好きなエディタで編集してください. - もし, システムをインストールしたばかりならば, 利用できる - エディタは viだけかもしれません. ここでは使い方 - の説明はしませんが, にあるような多くの本で詳しく説明 - されていますので, そちらを参照してください. - まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ - レーションに合せて変更した点などを記述して GENERICと区別がつく - ようにしておきましょう. - - もし SunOSや他の BSDオペレーティングシステムでカーネルの - 再構築をしたことがあれば, このファイルはとても親しみ - やすいでしょう. しかし, DOSのようなその他の - オペレーティングシステムしか知らない人から見れば, - GENERICコンフィグレーションファイルはとても - なじみにくいものかもしれません. そのような場合は, - の節をゆっくりと注意深く読んでください. - - config(8)を取ってくる必要があるかもしれません. これは - /usr/src/usr.sbinにあります. したがってこれらのソースをダ - ウンロードする必要があります. 次のコマンドを実行する前に - (configを)作りインストールをしておいてください. - - 編集し終ったら, 次のコマンドによってコンパイル, インストール - を行ってください. - -# /usr/sbin/config MYKERNEL -# cd ../../compile/MYKERNEL -# make depend -# make -# make install - - 新しいカーネルはルートディレクトリに /kernelという - 名前でコピーされ, 今までのカーネルは /kernel.old - という名前へ変更されます. では, システムをシャットダウン, リブー - トして新しいカーネルを使ってください. うまく行かない場合は, - この章の終りの - - を参照してください. この章の新しい - - 場合のリカバリの方法を注意深く読んでおいてください. - - /devディレクトリで - デバイスノードを追加しなければならないかもしれません. - 詳しくは, を読んでください. - - コンフィグレーション ファイル -

コンフィグレーション ファイルの一般的なフォーマット - はとてもシンプルです. 各行は1つのキーワードと1つ以上の - 引数を含んでいます. 見やすくするために, ほとんどのキーワードは - 引数を1つしか書いてありません. - #に続くものはすべてコメントとして扱われ, - 無視されます. ここでは, それぞれのキーワードについて - だいたい GENERICに出てくる順番で説明します. しかし, - お互いに関係のあるキーワードは, 実際には GENERICファイル上に - バラバラに現れていても, (ネットワーキングのように)1つにまとめ - てあります.

カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ - うとしています. 従来は, 各々のオプションは単純にカーネルの - Makefile中の CFLAGS行の -Dスイッチに変換されて - いました. 自然とオプションは際限なく増えて行きます. だれも実際に - はどのオプションがどのファイルで参照されているかは知りません. - -

新しい方法では、すべてのオプション依存の #ifdefは当該オプショ - ンを opt_foo.h (これらのファイルはconfigによって compileディレ - クトリに作られます) から読み込むように変わりました. - config の有効なオプションのリストは2つのファイルにお - かれます. アーキテクチャに依存しないオプションは - /sys/conf/optionsに置かれ, アーキテクチャ依存のオプショ - ンは/sys/arch/conf/optionsに置かれま - す. archの部分は例えば i386となります. - - - 必須キーワード - -

ここにあるキーワードはカーネルの構築に必要不可欠です. - - - - machine ``i386'' - -

最初のキーワードは machineです. - FreeBSDは Intelの 386とその互換チップ上でしか - 動かないので, i386を指定します. - - 注: 数字を含むキーワードはすべて - クォーテーションマークで囲む必要があります. - そうしないと, configは混乱し, - 386を実際の数値として扱ってしまいます. - - cpu ``cpu_type'' - -

次のキーワードは cpuです. - FreeBSDでサポートしている CPUの中から記述します. - cpu_typeとして指定可能な値は - 次の通りです. - - I386_CPU - I486_CPU - I586_CPU - I686_CPU - - GENERICカーネルのように cpuの行の - cpu_typeが異なった値を持つものが - 複数あってもかまいません. カスタムカーネルでは, - あなたが持っている cpuを1つだけ指定するのが - 一番です. 例えば, もし Intelの Pentiumを持っていれば, - cpu_typeには, I586_CPU - を使ってください. - - ident machine_name - -

次は, カーネルの識別名となるidentです. - GENERICからあなたがカーネルに与えたい名前に - 変えてください. ここでは, MYKERNELとします. - identに与えた名前はカーネルの - ブート時に表示されるので, 普段のカーネルとは別に - カーネルに違う名前を与えたいとき(例えば, - 実験用のカーネルを作りたい時など), 便利でしょう. - 数字を含む名前にしたい場合は machineや - cpuの時と同じようにクォーテーションマークで - 囲む必要があります. - - Cコンパイラに -Dスイッチで渡されるので, - DEBUGのような名前にしたり, vax - といった他のCPUの名前など紛らわしい名前にしないで - ください. - - maxusers number - -

これは, 重要なシステムテーブルのサイズを決めます. ここ - で与えられる数字はマシンに同時にログインすると考えられ - るおよそのユーザ数です. しかし, 通常の使用環境であれば, - 特に X Window System を立ち上げたり, ソフトウェアを - コンパイルするような使用であれば maxusersには少 - なくとも4以上を指定したほうがいいでしょう. その理由は, - maxusersで決るテーブルで最も重要なものはプロセス - の最大数であるからです. プロセス最大数は 20 + - 16 * maxusersで与えられ, maxusersを1 - にすると36プロセスしか同時には持てません. この中にはブー - ト時にシステムによって起動する18個ぐらいのプロセス, Xを - 起動する時の15程度のプロセスも含みます. - manページを読むという1つのタスクでさえ, フィ - ルタやファイル伸長や表示のために9つのプロセスを起動し - ます. maxusersを4にすれば, 同時に84個のプロセ - スを持つことができるのでどんな人でも十分な数だといえる - でしょう. - それでも他のプログラムを起動した場合に, あるいは, - (Walnut Creek CDROMのFTPサイトのように) 同時に多くの - ユーザを抱えるサーバを走らせた場合に ``proc table - full''というおぞましいエラーが起きる場合はこの値を増や - し, カーネルを再構築してください. - - maxuserはあなたのマシン - にログインできるユーザの数を制限するものでは - ありません. 単に, あなたのシステムに - ログインするユーザ数の最大値と各々のユーザが - いくつのプロセスを走らせるかを考慮することに - よってさまざまなテーブルの値を適切な値に設定 - するだけです. これに対し, remote loginsというキーワードは - 同時にリモートログインできるユーザ数を制限 - します. - - config kernel_name root on root_device - -

これはカーネルの位置と名前を特定します. - 伝統的にカーネルは vmunixと呼ばれますが, - FreeBSDでは kernelとふさわしい名前になりました. - kernel_nameにはいつも kernelを - 使ってください. 名前を変えると多くのシステム - ユーティリティが使えなくなります. 2番目の部分は - ルートファイルシステムとカーネルのあるディスクと - パーティションを指定してください. - SCSIドライブでなければ, wd0を, - SCSIドライブならば sd0です. - - - 一般的なオプション - -

以下はカーネルのサポートするさまざまなファイルシステムおよ - びその他のオプションです. - - - -

これは, 数値演算コプロセッサがない - コンピュータ (386や486SX) で数値演算コプロセッサ - のエミュレーションを可能にします. もし, Pentiumや - 486DX, あるいは387や487があれば, コメントアウト - できます. - - 注: FreeBSD付属の数値演算 - コプロセッサエミュレータはあまり正確では - ありません. 非常に正確な計算をおこないたい - ならば, より優れた GNUのエミュレータである - GPL_MATH_EMULATEに変えることを - おすすめします. これはライセンスの関係でデフォルトでは - 含まれていません. - - options ``COMPAT_43'' - -

4.3BSDとの互換性のためのオプションです. - そのままにしておいてください. コメントアウトすると, - いくつかのプログラムで動作がおかしくなります. - - options BOUNCE_BUFFERS - -

ISAデバイスやISA互換モードで動作する EISAデバイス - では DMA (Direct Memory Access) は16MB以下のメモリに対し - てのみ動作します. このオプションによりメモリが16MB以上 - のシステムでDMAを使うデバイスを動作させることができます. - - options UCONSOLE - -

ユーザがコンソールを横取り (grab) できるようにします. - これは X Window System 上で便利です. 例えば, コ - ンソール xtermを xterm -Cとタイプして作ると, - そこに `write', `talk'などのメッセージがカーネルからコ - ンソールへ送られるメッセージと同じように表示されます. - - options SYSVSHM - -

このオプションは System V の共有メモリを提供します. - X Window System の XSHM拡張での利用がもっとも一般に見 - られる例で, 多くのグラフィックを多用したプログラム - (movie player の Xanimや Linux DOOMなど) ではこれを - 利用することで速度が増加するというメリットがあります. - X Window System を利用するのであればこれは間違いな - く含めたくなるでしょう. - - options SYSVSEM - -

System V のセマフォをサポートします. 一般的に利用される - ことは少ないですがカーネルサイズの増加は数百バイトだ - けです. - options SYSVMSG - -

System V のメッセージをサポートします. これを指定した場 - 合もカーネルサイズの増加は数百バイトだけです. - - ipcs(1) コマンドは - これらの System V の機構を利用しているプロセスを表示し - ます. - - 訳注: 共有メモリ, セマフォ, メッセージ(メッ - セージキュー) は System V系 で一般的なプロセス間通信の機 - 構です. くわしくは System Vのプロセス間通信に関する文 - 献, 「詳解 UNIXプログラミング」 (ソフトバンク) , 「UNIXネッ - トワークプログラミング」 (トッパン) などを参照してくださ - い. - - - - - ファイルシステムオプション - -

これらのオプションはさまざまなファイルシステムへのサポート - を追加します. 少なくともブートするためのデバイスのサポートを含 - める必要があります. 標準的にはハードディスクからブートするので - あれば FFS , ディスクレスワークステーションとしてイー - サネットからブートするのであれば NFSです. - 一般的に利用される他のファイルシステムをカーネルに含め, あまり - 利用しないファイルシステム (多分 MS-DOSファイルシステム?) のサポー - トをコメントアウトすることができます. これは Loadable Kernel - Module ディレクトリ /lkm から, 最初にそのタイプのファイ - ルシステムがマウントされる時に動的にドライバがロードされるからです. - - - - options FFS - -

基本的なハードドライブ ファイルシステムです. ハードディ - スクからブートする場合は残しておいてください. - - options NFS - -

ネットワーク ファイルシステムです. Ethernet経由で Unixファ - イルサーバからパーティションをマウントする予定がない場 - 合はコメントアウトすることができます. - - options MSDOSFS - -

MS-DOS ファイルシステムです. ブート時に DOSフォーマット - のハード ドライブをマウントする予定のない場合はコメン - トアウトしても安全です. 先に示したように, DOSパーティ - ションをマウントする時に自動的にロードされます. また - (ports コレクションにある) mtools という素晴 - らしいソフトウェアにより mount , unmountなしで DOSフロッ - ピーにアクセスすることができます (これは MSDOSFSも必要 - ありません). - - options ``CD9660'' - -

CD-ROMのための ISO 9660 ファイルシステムです. CD-ROMを - 持っていないか, 時々 データ CDをマウントするだけならコ - メントアウトしましょう (データ CDを最初にマウントする - 時に動的にロードされます). オーディオ CDはこのファイル - システムは必要ありません. - - options PROCFS - -

プロセス ファイルシステムです. これは疑似的なファイルシ - ステムで /procにマウントされ, ps(1)などのプロ - グラムがプロセスに関してより詳しい情報を与えてくれるよ - うになります. - - options MFS - -

メモリマップド ファイルシステムです. これは基本的に一時 - ファイルを記憶するための高速な RAMディスクで, 大きな - swap領域がある場合に有効です. MFSパーティションをマウ - ントするに適した場所は多くのプログラムが一時ファイルを - 置く /tmpです. MFS RAMディスクを /tmp - にマウントするには以下の内容を /etc/fstabに追 - 加してリブートするか mount /tmpとタイプします. - - -/dev/wd1s2b /tmp mfs rw 0 0 - - - /dev/wd1s2bをあなたが使用して - いるswap パーティションに置き換えてください. これは以 - 下のように /etc/fstabに書かれているでしょう. - -/dev/wd1s2b none swap sw 0 0 - - - - /tmpデ - バイスにアクセスすることはできません). そのためいまの - ところは使わない方が無難です. --> また, MFSファ - イルシステムは動的にロードすることはできません - . したがって使いたい場合はコンパイル時に - カーネルに含める必要があります. - - - options "EXT2FS" - -

Linux のファイルシステム. - ext2fs のサポートにより, Linux パーティションを読み書きすることができます. - これは, FreeBSD と Linux のデュアルブートシステムにおいて両者でデータを共有したい場合に有用です. - - options QUOTA - -

ディスククォータを有効にします. アクセスが公開されてい - るシステムで (一人のユーザが) /homeパーティショ - ン (全体) をあふれさせることができないようにそれぞれのユーザ - にディスククォータを発行することができます. - ディスククォータについての詳しい内容はの章を見てください. - - - 基本的なコントローラとデバイス - -

この節では FreeBSDでサポートされているディスク, テー - プ, CD-ROMコントローラについて示します. - コントローラと カードについ - ては別の節になっています. - - - - controller isa0 -

FreeBSDのサポートするすべての PCで必要です. IBM PS/2 (マイ - クロチャネルアーキテクチャ) では現時点では FreeBSDは動 - きません. - - controller pci0 - -

PCIバスを持つマザーボードの場合は含めます. これにより - PCIカードの自動認識と PCIから ISAバスへのゲートウェイが - 可能になります. - - controller fdc0 - -

フロッピードライブコントローラです. - fd0 は ``A:'' ドライブで - fd1 は ``B:'' ドライブです. ft0 は - フロッピーコントローラに接続する QIC-80 テープドライブで - す. 対応するデバイスがない場合はそれぞれの行をコメント - アウトしてください. - - ft(8)というフィルタプログラムが必要です. - くわしくはマニュアルページを見てください. - - controller wdc0 - -

プライマリIDEコントローラです. wd0 と - wd1はそれぞれマスタ, スレーブドライブで - す. wdc1 は セカンダリの IDEコントローラで3台 - 目, 4台目のハードディスクまたは IDE CD-ROMのある場合に - 使います. 利用しない行はコメントアウトしてください (例え - ば, SCSIハードディスクのみを使う場合は6行全部をコメント - アウトしてもよいかもしれません). - - device wcd0 - -

このデバイスは IDE CD-ROMのサポートをします. - wdc0を有効にしておく必要があり, もし 2つ以上の IDE - コントローラがあり, そのうちの 2つ目のカードに CD-ROMを接 - 続する場合 options ATAPIを書いておく必要もあります. - - device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr - -

npx0はFreeBSDハードウェアコプロセッサとソフト - ウェアエミュレータ両方の浮動小数点演算ユニットへのインタ - フェースです. これは device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr - -

Wangtek と Archive の - QIC-02/QIC-36 テープドライブのサポートです. - - Proprietary CD-ROM support - -

以下のようなドライブを proprietary(独自の) - CD-ROMドライブと呼ぶことにします. これらのドライブは専 - 用のコントローラを持つか, サウンドブラスタ16などのサウ - ンドカードに接続します. これらは IDEでも SCSIでもあ - りません. 多くの標準速や2倍速の古い CD-ROMはこれら - のインタフェースを持っていますが, より新しい四倍速の - ものは でしょう. - - - - - device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr - -

ミツミ製 CD-ROM (LU002, - LU005, FX001D)です. - - device scd0 at isa? port 0x230 bio - -

ソニー製 CD-ROM (CDU31,CDU33A)です. - - controller matcd0 at isa? port ? bio - -

松下/パナソニック製 CD-ROM (サウンドブラスタ用 - クリエィティブ ラボ製として販売されていました) です. - - - - - - SCSI デバイスのサポート - -

この節では FreeBSDのサポートするいろいろな SCSIコント - ローラとデバイスのサポートについて書きます. - - - - SCSI コントローラ - -

以下の十数行は異る種類の SCSIコントローラのサポートです. - 使用しているもの以外の部分はコメントアウトしてください. - - - - controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr - -

ほとんどの Buslogic社のコントローラです. - - controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector uhaintr - -

UltraStor 14F と 34F です. - - controller ahc0 - -

Adaptec 274x/284x/294x です. - - controller ahb0 at isa? bio irq ? vector ahbintr - -

Adaptec 174x です. - - controller aha0 at isa? port ``IO_AHA0'' bio irq ? drq 5 vector ahaintr - -

Adaptec 154x です. - - controller aic0 at isa? port 0x340 bio irq 11 vector aicintr - - -

Adaptec 152x や サウンドカードなどに使われている Adaptec - AIC-6360 チップです. (slow!) - - controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr - - -

NCR 5380を使っている ProAudioSpectrum や Trantor T130 で - す. - - controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr - -

Seagate ST01/02 8 ビットコントローラです. (slow!) - - controller wds0 at isa? port 0x350 bio irq 15 drq 6 vector wdsintr - -

Western Digital WD7000コントローラです. - - controller ncr0 - -

NCR 53C810, 53C815, 53C825, 53C860, 53C875 チップを使った - PCI SCSI コントローラです. - - - - options ``SCSI_DELAY=15'' - -

このオプションによりカーネルはそれぞれの SCSIデバイスを - プローブする前に 15秒間待ちます. IDEドライブのみを使用 - している場合は無視して構いません. ブートを速くするため - にこの数値を 5秒ぐらいまで小さくしたいでしょう. そうし - た場合, FreeBSDが SCSIデバイスを認識しにくくなるかもし - れません. その時は、もちろんこのオプションの値は元に戻 - さないといけません. - - - controller scbus0 - -

SCSIコントローラがある場合, この行で SCSI全般のサポー - トを与えます. SCSIのない場合, この行と以下の3つの行をコメ - ントにすることができます. - - device sd0 - -

SCSIハードディスクのサポートです. - - device st0 - -

SCSIテープドライブのサポートです. - - device cd0 - -

SCSI CD-ROM のサポートです. - -

上のエントリについている 0はいくらか誤解を招き - やすいかもしれません. これらのデバイスはすべてカーネルが - 見つけた時に割り当てがおこなわれ, SCSIバスに何台つながってい - るか, ターゲット IDが何番であるかはここの記述とは関係あ - りません. - - 明示的に「固定的な」ターゲット IDの特定のデバイスへの - 割り当てをおこないたい場合は LINT カーネルコンフィグレーションファイルの - 該当する部分の説明を参照してください. - - - - コンソール, バスマウス, Xサーバのサポート - -

2つのタイプのコンソールからどちらか1つを選ぶ必要があります. - 標準ではない方の vt220 コンソールを選んだ場合, X Window System - を利用するには XSERVER オプションを有効にする必要があります - (訳注: sc0 には XSERVER オプション相当の機能が始めから入っています). - またバスマウスとPS/2マウスのオプションもあります. - - - - device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr - -

sc0 はデフォルトのコンソールドライバで SCOコン - ソールに似ています. このデバイス, あるいは VT220コンパ - チブルドライバの vt0いずれを使う場合もほとんど - のフルスクリーンプログラムは termcapなどのターミ - ナルデータベースライブラリを通してアクセスしますので, - あまり違いはないでしょう. - このコンソールを使う場合でフルスクリーンプログラムでト - ラブルが起きる場合にはログインした時に TERM変数の値を - ``scoansi''にしてください. - - device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint - -

これはVT-220コンパチブルコンソールドライバで VT100/102の - 上位互換です. これは sc0の使えない種類のラッ - プトップ機でもうまく動きます. ログイン時に TERM変数の値 - を``vt100'' か ``vt220''にしてください. また, このドラ - イバはネットワークを介して多くの異るマシンから接続する - 場合も便利です. sc0デバイスのための - termcapterminfoエントリは必ずしも - 利用できるわけではありませんが -- ``vt100''はいずれの - プラットフォームでも利用可能でしょう. - - - - options ``PCVT_FREEBSD=210'' - -

vt0 コンソールドライバを使う場合に必要で - す. - - options XSERVER - -

vt0 コンソールドライバを使う時のみ有効です. - これは vt0 コンソールドライバのもとで - XFree86 X サーバを動かすのに必要なコードを含めます. - - - - device mse0 at isa? port 0x23c tty irq 5 vector ms - -

Logitech や ATIのバスマウス入力カードを利用する場合のデ - バイスです. - - ポート(おそらくはCOM1)を有効にしてくだ - さい. - - device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector psmintr - -

このデバイスは PS/2マウスポートにマウスを接続する場合に - 使います. - - - - シリアル, パラレルポート - -

ほとんどすべてのシステムにこれらはあります. プリンタを接続す - る場合は の章が非常 - に役に立つでしょう. モデムを使う場合は に非常に詳しいシリアルポートの設定とデ - バイスの使い方があります. - - - - device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr - -

sio0からsio3は MS-DOSにおける COM1から - COM4に相当する4本のシリアルポートです. - COM4に内蔵モデムがあり COM2を使う場合, FreeBSDからアク - セスするためにはモデムのIRQを2へ変更する必要があるとい - うことを注意しておきます (技術的な理由より IRQ 2 = IRQ - 9となります). - マルチポートシリアルカードを使う場合にマニュアルページ - のsio(4)にはこのオプションで使う値などのよ - り多くの情報があります. ビデオカードの中には (特に S3 - チップベースのものには) IOアドレスの 0x*2e8から - を利用するものがあり, また多くの安価なシリアルカードは - IOアドレス空間を16-bitフルデコードしていませんので, こ - れらのカードは衝突します. この場合 COM4ポートは実質上 - 利用できません. - - それぞれのシリアルポートは (割込みの共有をサポートした - マルチポートカードを利用していないのであれば) 別々の IRQ - を割り当てる必要がありますので COM3と COM4のデフォルトの - IRQは利用できません. - - device lpt0 at isa? port? tty irq 7 vector lptintr - -

lpt0 から lpt2は利用可能な3本のプリン - タポートです. 多くの場合は1本のみですので他の2本はない - のであればコメントアウトして構いません. - - - - ネットワーク - -

FreeBSDでは他の一般的な Unixと同様にネットワークが - 非常に 重視されています. イーサネットカードが - なくても必須のオプションとダイヤルアップ ネットワークのサポー - トに注意してください. - - - - options INET - ネットワーキングのサポートです. ネットワークに接続する予定がな - くても残しておいてください. 多くのプログラムは少なくともループ - バックネットワーキングが必要です(つまり, PCの中でネットワーク - コネクションをおこないます). したがってこのオプションは本質的 - に不可欠です. - - Ethernet cards - -

以下にさまざまなイーサネットカードを有効にするオプショ - ンを示します. ネットワークカードがなければこれらすべてを - コメントアウトすることができます. そうでなければ利用す - る特定のイーサネットカードをサポートするオプションを残 - しておきます. - - - - device de0 - -

DECの DC21040, DC21041, DC21140チップを使った PCIイー - サネットアダプタです. - - - device fxp0 - -

Intel EtherExpress Pro/100B 高速イーサネットカード - です. - - device vx0 - -

3Com の 3C590, 3C595です (いくらか bugがあります). - - device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr - -

Cronyx/Sigma の マルチポート同期/非同期カードです. - (with Cisco or PPP framing) - - device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr - -

Western Digital と SMC の 80xx, 8216 Elite Ultra ; - ノベル NE1000, NE2000; 3Com の 3C503; HPの PC Lan Plus - (HP27247B とHP27252A) です. - - device el0 at isa? port 0x300 net irq 9 vector elintr - -

3Com の 3C501 です. (slow!) - - device eg0 at isa? port 0x310 net irq 5 vector egintr - -

3Com の 3C505です. - - device ep0 at isa? port 0x300 net irq 10 vector epintr - -

3Com の 3C509 です(バグがあります). - - device fe0 at isa? port 0x240 net irq ? vector feintr - -

富士通 MB86960A/MB86965A ベースのイーサネットカード - です. - - device fea0 at isa? net irq ? vector feaintr - -

DEC DEFEA EISA FDDI アダプタです. - - device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr - -

AT&T StarLAN 10 と EN100; 3Com の 3C507; - NI5210; Intel EtherExpress 16 です. - - device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr - -

DEC の EtherWorks 2 and EtherWorks - 3 (DEPCA, DE100, DE101, DE200, DE201, DE202, - DE203, DE204, DE205, DE422)です. - - device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr - -

Lance/PCnet カード (Isolan, Novell NE2100, - NE32-VL)です. - - device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr - -

IBM/ナショナルセミコンダクタの PCMCIA イーサネット - コントローラです. - - device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr - -

3Com の PCMCIA Etherlink III です. - - - - - - pseudo-device loop - -

loop は TCP/IPの一般的なループバックデバイスで - す. telnet や FTPを localhost (127.0.0.1) - に対して行なうとこの疑似デバイスを通して帰ってきます. - 不可欠です. - - pseudo-device ether - -

etherはイーサネットカードがある場合のみ必要で - 一般的なイーサネットプロトコルを含めます. - - pseudo-device sl number - -

sl は SLIP (Serial Line Internet Protocol) をサポー - トします. これはほとんど完全に, より簡単に設定ができ, モ - デム to モデム接続に適した, よりパワフルな PPPに取って代 - わられています. slの後の number は同 - 時にいくつの SLIPセッションをサポートするかを示します. - SLIPの設定のより詳しい情報はこのハンドブックの - 「PPPとSLIP」の章の - - と について書かれた節にあります。 - - pseudo-device ppp number - -

pppはダイヤルアップ インターネット接続のための - カーネルモード PPP (Point-to-Point Protocol) をサポート - します. ユーザアプリケーションとして tun を - 利用する PPPの実装もあり, こちらはより柔軟性がありデマ - ンドダイアリング(プログラムが接続要求を出した時に自動 - 的にダイヤルをおこなう)などの機能もあります. それでもこ - の PPPドライバを利用したい場合は の節を読んでください. - slデバイスと同じように numberは同時 - に PPP接続できる数を示します. - - pseudo-device tun number - -

tun はユーザモード PPPソフトウェアが利用しま - す. このプログラムは設定が簡単で非常に高速です. - また自動ダイヤル オン デマンドなどの機能を持ちます. - tunの後のnumber は同時におこなうことのできる - PPPセッションの数を示します. の節により多くの情報があ - ります. - - pseudo-device bpfilter number - -

バークレイ パケットフィルタです. この疑似デバイスはネッ - トワークインタフェースを無差別 (promiscuous) モードにし - てネットワーク (例えば単一のイーサネット) にブロードキャス - トされるすべてのパケットを取り入れることを可能にします. こ - れらのパケットはディスクに取り入れられたり - tcpdump(1) によって検査されます. この機能の実現 - はネットワーク全体のセキュリティとの微妙な妥協点であるこ - とに注意してください. - bpffilter の後の numberは同時に検査することの - できるインタフェースの数を示します. - 危険の可能性について十分解っている場合を除いてこのオプ - ションは奨めません. すべてのネットワークカードでこの機能 - をサポートをしてはいません. - - - - サウンドカード - -

ここは GENERICカーネルに含まれていない最初のセクションです. - サウンドカードのサポートをするためには LINTコンフィグレーショ - ンファイル(これにはすべてのデバイスが含まれています)か - ら以下のような適切な行をコピーする必要があります. - - - - controller snd0 - -

サウンドドライバ一般のコードです. - pcaを除く以下のすべてのサウンドカードで必要で - す. - - device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr - -

ProAudioSpectrum のオーディオ と MIDI です. - - device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr - -

SoundBlaster です. - - irq 7をirq - 5に書き換え, キーワード conflictsを削除し - てください. さらに options ``SBC_IRQ=5''の行を - 加える必要があります. - - device sbxvi0 at isa? drq 5 - -

SoundBlaster 16 の 16-bit オーディオです. - - drq 5を適切な値に書き直 - して, (DMA 6の場合) options "SB16_DMA=6"を付け - 加えてください. - - device sbmidi0 at isa? port 0x330 - -

SoundBlaster 16 の MIDI インタフェースです. - SoundBlaster 16を使う場合必ずこの行を含めてコンパイル - してください. - - device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr - -

Gravis Ultrasound です. - - device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr - -

Microsoft Sound System です. - - device opl0 at isa? port 0x388 conflicts - -

AdLib FMシンセサイザオーディオです. - AdLib, SoundBlaster, ProAudioSpectrum を使い - playmidi (ports にあります) などのプログラムで - MIDIの演奏をしたい場合にこの行を含めます. - - device mpu0 at isa? port 0x330 irq 6 drq 0 - -

Roland MPU-401 カードです. - - device uart0 at isa? port 0x330 irq 5 vector ``m6850intr'' - -

MIDIインタフェースの 6850 UART です. - - device pca0 at isa? port ``IO_TIMER1'' tty - -

PC のスピーカーを使ったオーディオです. これは非常に品質 - が悪く, CPUの性能, 負荷に強く依存します, と言っておき - ます (サウンドカードは必要ありませんが). - - - - /usr/src/sys/i386/isa/sound/sound.docにあります. - また, これらのデバイスを追加する場合は, サウンドを作る必要があり - ます. - - 疑似デバイス - -

疑似デバイスドライバはデバイスドライバと同様に働きますがマ - シン上に対応する実際のハードウェアがないカーネルの部分です. - 関連の - 疑似デバイスはそちらのセクションに示しました. ここでは残りにつ - いて示します. - - - - pseudo-device gzip - -

gzipgzipによって圧縮された FreeBSDの - プログラムを実行できるようにします. /standにあるプログ - ラムは圧縮されているのでカーネルにこのオプションをつけ - ておくのはいい考えでしょう. - - pseudo-device log - -

log はカーネルエラーのログを取るのに使います. - 不可欠です. - - pseudo-device pty number - -

pty は「仮想ターミナル」や仮想ログインポート - です. 外部からの telnetrloginセッ - ション, xterm, emacsなどのアプリケーションが使います. - numberは作ることのできる ptyの数を示 - します. - GENERICのデフォルトは16で, 同時の xtermウィンドウやリモー - トログインのために増やす場合は最大で 64までです. - - pseudo-device snp number - -

スヌープデバイスです. この疑似デバイスはあるターミナル - セッションが watch(8) commandによって他のター - ミナルを監視することを可能にします. この機能の実現はセ - キュリティとプライバシに対して極めて微妙な関係があり - ます. snpの後の numberは同時におこなうことのでき - るスヌープセッションの総数です. 選択可能です. - - pseudo-device vn - -

Vノードドライバです. ファイルを vnconfig(8)コマ - ンドによってデバイスとして取り扱うことを可能にします. - このドライバによりフロッピーディスクイメージを操作したりファ - イルをスワップデバイスとして (MS Windowsのスワッ - プファイルなどを)用いることができます. 選択可能です. - - - pseudo-device ccd number - -

ccd (concatenated disk)デバイスはいくつかのディスクパーティ - ションを融合して大きなディスクのように見せることができます. - ccdの後の numberは同時に作ることのできる疑似ディスクの数です. - (詳しいことは ccd(4)ccdconfig(8)のマニュ - アルを参照してください.) 選択可能です. - - - - ジョイスティック, スピーカー, その他 - -

この節は FreeBSDのここまでに示した以外のハードウェア - デバイスへのサポートについて示します. これらは GENERICカーネル - には含まれませんのでこのハンドブックや LINT (このファイルには - すべてのデバイスのサポートが含まれます) からコピーする必 - 要があります. - - - - device joy0 at isa? port ``IO_GAME'' - -

PC のジョイスティックです. - - pseudo-device speaker - -

IBM BASIC スタイルの PC内蔵スピーカーのサポートです. - シェルスクリプトで簡単な演奏をする - /usr/sbin/spkrtest やキーボードを使って単純なピ - アノのように演奏することができる - /usr/games/piano (gamesパッケージをイ - ンストールした場合にはあります) のようないくつかのプロ - グラムで使われます. また素晴らしいテキストロールプレイ - ングゲームである NetHack (ports コレクションにあります) - はゲーム中の楽器の演奏でこのデバイスを使うように設定を - することができます (訳注:日本語化されたJNetHackもportsに - あります). - -

デバイスの - 項も参照してください. - - - - デバイスノードを作る - -

カーネル内のほとんどすべてのデバイスは対応する ``node'' エント - リが /dev ディレクトリにあります. これらのノードは普 - 通のファイルのように見えますが, 実際にはプログラムがデバイスに - アクセスするのに用いるカーネル内への特別なエントリです. - シェルスクリプトである /dev/MAKEDEVはオペレーティング - システムを最初にインストールする時に実行され, サポートされてい - る大部分のデバイスのノードを作ります. - しかし, すべてのノードが作られるわけではありませんので - 新しいデバイスのサポートを加える時は対応するエントリがこのディ - レクトリにあるかどうか確認してもしなければ, 作ってください. - 以下に例を示します. - - IDE CD-ROMのサポートをカーネルに加えるとします. 次の行 - を加えます. - - -controller wcd0 - - - これにしたがって, /devディレクトリに wcd0で始ま - るエントリを捜してください. 1文字が後ろにつくかもしれません. 後 - ろについた文字が `c'であるか先に `r'のつくエントリは `raw'デバ - イスを示します. - それらのファイルがないことが明らかになったとします. そこで - /dev ディレクトリに移動して次のようにタイプします. - - - -# sh MAKEDEV wcd0 - - - スクリプトの実行が終ったら /devwcd0c と - rwcd0c エントリがあることを確認してください. これによ - り正しく実行されたことがわかります. - - - サウンドカードの場合のコマンドは次の通りです. - -# sh MAKEDEV snd0 - - - これにより対応するエントリが作られます. - 注: サウンドカードのようなデバイスのノードを作る場合で, もし他 - の人がマシンにアクセスするようであれば, そのデバイスを - /etc/fbtabファイルに追加して外部からのアクセスから - 保護するのが望ましいでしょう. このファイルの詳細については - man fbtab を参照してください. - - GENERICに含まれていないデバイスはエントリがありませんから,以上 - の簡単な手順をおこなうことになります. - - /devの - エントリを使用しますのでノードを作る必要はありません. またネッ - トワークカードと SLIP/PPP疑似デバイスは /devにはエント - リがありませんのでこれらについても作る必要がありません. - - -問題が起きた場合には - -

カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま - す. - - - - Config コマンドの失敗 - -

カーネルにあなたの設定をおこなった場合で configコ - マンドが失敗したのであれば, 多分どこかで単純な間違いを - やっているのでしょう. さいわい, configはトラ - ブルの起きた行番号を出力しますので viで素早く - 見つけることができます. 例えばもし次のように出力されれ - ば, - - - -config: line 17: syntax error - - - viのコマンドモードで ``17G''とタイプすればあな - たは問題のところへ飛ぶことができます. GENERIC カーネル - のファイルや他のリファレンスと比較して注意深く修正して - ください. - - - Make コマンドの失敗 - -

make コマンドが失敗した場合には, カーネル設定で - configがとらえられなかったような間違いをして - いることが多いようです. ふたたびコン - フィグレーションを見直してください. それでも問題を解決 - することができなければ &a.questions - へあなたのカーネルのコンフィグレーションをつけてメー - ルしてください. 誰かが素早く間違いを見つけてくれるで - しょう. - - カーネルがブートしない - -

新しいカーネルがブートしなかったり, デバイスの認識をしな - い場合でもあわてないでください! さいわい, BSDは利用で - きないカーネルから復帰する優れたメカニズムがあります. - FreeBSDの bootプロンプトでリターンキーを押すかわりに - 単にブートさせたいカーネルの名前 (例えば - ``kernel.old'') をタイプするだけです. カーネルの再設定 - をおこなう場合に現在のカーネルを利用できるように取ってお - くのはよい考えです. - - 問題のないカーネルでブートした後にあなたのコンフィグレー - ションファイルを調べ, 再び構築を試みてください. - /var/log/messages ファイルにはすべての成功した - ブートのカーネルのメッセージやその他の記録があり, これ - は助けになる情報の一つでしょう. また, - dmesg(8)コマンドは現在のブート時のカーネルメッ - セージを出力します. - - kernel. oldは新しいカーネルをインストールする - 時に, その一つ前にインストールしたうまく動かないかもしれ - ないカーネルで上書きされてしまいますので当てにできませ - ん. またできる限り早く動作しているカーネルを本来の - ``kernel''の位置に移動させてください. そうしないと - ps(1)のようなコマンドが正しく動きません. - make でインストールされたカーネルのファイルを - (別のカーネルに戻すために) 「アンロック」するための特別 - のコマンドは - -# chflags noschg /kernel - - です. また, 新しい置き換えたカーネルあるいは重要ファイ - ルを動かしたり変更されないように「ロック」するには - 次のようにします. - -# chflags schg /kernel - - - - カーネルは動くが ps は動かない! - -

システムユーティリティと異るバージョンのカーネルをインス - トールした場合, 例えば 実験的に ``2.2.0''のカーネルを - 2.1.0-RELEASEシステム上にインストールするような場合, - ps(1)vmstat(8)のような多くのシ - ステムステータスコマンドは動かなくなります. libkvm を - 再コンパイルしてこれらのユーティリティを作りなおす必要がありま - す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ - ンのカーネルを使うことが普通はあまりよくない理由の一つです. - - -- cgit v1.3