コンフィグレーション ファイル

コンフィグレーション ファイルの一般的なフォーマット はとてもシンプルです. 各行は1つのキーワードと1つ以上の 引数を含んでいます. 見やすくするために, ほとんどのキーワードは 引数を1つしか書いてありません. #に続くものはすべてコメントとして扱われ, 無視されます. ここでは, それぞれのキーワードについて だいたい GENERIC に出てくる順番で説明します. しかし, お互いに関係のあるキーワードは, 実際には GENERIC ファイル上に バラバラに現れていても, (ネットワーキングのように)1つにまとめ てあります. おびただしい数の オプションの一覧が GENERICと同じディレクトリの LINT コンフィグ レーションファイルにあります. もし, ある行の目的や必要性に疑 問を持ったら最初に LINT をチェックしてください.

カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ うとしています. 従来は, 各々のオプションは単純にカーネルの 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を指定します.

Note: 数字を含むキーワードはすべて クォーテーションマークで囲む必要があります. そうしないと, 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に与えた名前はカーネルの ブート時に表示されるので, 普段のカーネルとは別に カーネルに違う名前を与えたいとき(例えば, 実験用のカーネルを作りたい時など), 便利でしょう. 数字を含む名前にしたい場合は machinecpu の時と同じようにクォーテーションマークで 囲む必要があります.

C コンパイラに -D スイッチで渡されるので, DEBUGのような名前にしたり, vax といった他のCPUの名前など紛らわしい名前にしないで ください.

maxusers number

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

Note: maxuserはあなたのマシン にログインできるユーザの数を制限するものでは ありません. 単に, あなたのシステムに ログインするユーザ数の最大値と各々のユーザが いくつのプロセスを走らせるかを考慮することに よってさまざまなテーブルの値を適切な値に設定 するだけです. これに対し, pseudo-device pty 16 remote loginsというキーワードは 同時にリモートログインできるユーザ数を制限 します.

config kernel_name root on root_device

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

一般的なオプション

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

options MATH_EMULATE

これは, 数値演算コプロセッサがない コンピュータ (386や486SX) で数値演算コプロセッサ のエミュレーションを可能にします. もし, Pentiumや 486DX, あるいは387や487があれば, コメントアウト できます.

Note: 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 のメッセージをサポートします. これを指定した場 合もカーネルサイズの増加は数百バイトだけです.

Note: ipcs(1) コマンドは これらの System V の機構を利用しているプロセスを表示し ます.

Note: 訳注: 共有メモリ, セマフォ, メッセージ(メッ セージキュー) は 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

Note: /dev/wd1s2bをあなたが使用して いるswap パーティションに置き換えてください. これは以 下のように /etc/fstab に書かれているでしょう.

/dev/wd1s2b none swap sw 0 0

Note: また, MFS ファ イルシステムは動的にロードすることは できません . したがって使いたい場合はコンパイル時に カーネルに 含める必要があります.

options "EXT2FS"

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

options QUOTA

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

基本的なコントローラとデバイス

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

controller isa0

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

controller pci0

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

controller fdc0

フロッピードライブコントローラです. fd0A: ドライブで fd1B: ドライブです. ft0 は フロッピーコントローラに接続する QIC-80 テープドライブで す. 対応するデバイスがない場合はそれぞれの行をコメント アウトしてください.

Note: 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を接 続する場合 wdc1 も必要です. また 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はこれら のインタフェースを持っていますが, より新しい四倍速の ものは IDESCSI でしょう.

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デバイスのための termcap terminfoエントリは必ずしも 利用できるわけではありませんが --- 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のバスマウス入力カードを利用する場合のデ バイスです.

Note: シリアルマウスを使う場合にはこれら2つ の行(バスマウスとPS/2マウスに関する行) は無視して, 代わりに シリアル ポート(おそらくは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 です.

Note: いくつかのカードでは (特に NE2000では) ``標準値'' がありませんので IOポートやIRQの値を変更す る必要がある場合があります.

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」の章の SLIPクライアントのセットアップSLIP サーバのセットアップ方法 について書かれた節にあります.

pseudo-device ppp number

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

pseudo-device tun number

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

Note: SoundBlaster の IRQが標準と異る値, 例えば 5になっている場合, irq 7irq 5に書き換え, キーワード conflictsを削除し てください. さらに options "SBC_IRQ=5"の行を 加える必要があります.

device sbxvi0 at isa? drq 5

SoundBlaster 16 の 16-bit オーディオです.

Note: SB16の DMAチャネルが標準と異っている( 例えば 6か7)キーワード 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の性能, 負荷に強く依存します, と言っておき ます (サウンドカードは必要ありませんが).

Note: 追加のドキュメントが /usr/src/sys/i386/isa/sound/sound.doc にあります. また, これらのデバイスを追加する場合は, サウンドデバイスノード を作る必要があり ます.

疑似デバイス

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

pseudo-device gzip

gzip gzipによって圧縮された 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に あります).

pca0 デバイスの 項も参照してください.