FreeBSD ハンドブック
Prev | Chapter 8. FreeBSD カーネルのコンフィグレーション | Next

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

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

> 数字と二重引用符: FreeBSD 3.x と、それまでの全てのバージョンの FreeBSD における config(8) は、コンフィグレーションファイル中の テキストとして使われる数字を含む文字列が 全て二重引用符で括られていなければならないという制限があります。

> この制限は (このハンドブックが対象としている) 4.X ブランチでは取り除かれました。 4.X 以前のシステムを使っている場合には、 サンプルとしてシステム上の `/usr/src/sys/i386/conf/LINT` と `/usr/src/sys/i386/conf/GENERIC` を参照してください。

以下は必要に応じてコメントを追加した `GENERIC` カーネルの コンフィグレーションファイルです。 この設定例は `/usr/src/sys/i386/conf/GENERIC` に極めて近いものになっているはずです。 その他に指定可能なカーネルオプションについては、 `/usr/src/sys/i386/conf/LINT` を参照してください。

    #
    # GENERIC -- Generic kernel configuration file for FreeBSD/i386
    #
    # このファイルについて更に情報が必要なら、ハンドブックのカーネル
    # コンフィグレーションファイルのセクションを参照して下さい。
    #
    #    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
    #
    # doc ディストリビューションをインストールした場合、ハンドブックは
    # ローカルマシンの /usr/share/doc/handbook でも見ることができます。
    # 最新版は FreeBSD の WWW サーバ (http://www.FreeBSD.ORG/) を参照して
    # 下さい。
    #
    # ./LINT コンフィギュレーションファイルには、デバイス行に関する大量の
    # オプションと詳細な説明があります。もしある行の目的又は必要性について
    # 疑問がある場合はまず LINT をチェックして下さい。
    #
    # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $

以下は すべての カーネルの構築に 必須のキーワードです:

    machine        i386

マシンのアーキテクチャです。 これは `i386`, `alpha`, `pc98` のいずれかでなければなりません。

    cpu          I386_CPU
    cpu          I486_CPU
    cpu          I586_CPU
    cpu          I686_CPU

上記はあなたのシステムの CPU タイプを指定します。 複数の行を書いても構いません。 (例: `I586_CPU` とすべきか `I686_CPU` とすべきかはっきり分からない場合。 しかしながら、カスタムカーネルを作る場合、あなたの持つ CPU だけを指定するのがベストです。 もしあなたの CPU がどのタイプか分からない場合、 dmesg(8) を使って起動メッセージを 調べるとよいでしょう。

Alpha アーキテクチャの場合は、 `cpu` に異なった値を用います。

    cpu          EV4
    cpu          EV5

もしあなたが Alpha マシンを使っている場合、 上記の内のどれかを指定して下さい。

    ident          GENERIC

ここはカーネルの識別名を書きます。 あなたがカーネルに付けたい名前に書き換えて下さい (前記の例の `MYKERNEL` のように)。 `ident` に書いた名前はカーネルを起動する時に 表示されるので、 普段使っているカーネルと区別したいときは、 新しいカーネルに違う名前を付けると 良いでしょう(例: 実験的なカーネルを構築する場合)。

    maxusers          n

`maxusers` オプションは重要なシステムテーブルの サイズを決定します。 この数字はあなたのマシンを同時に使うと思われるユーザー数と おおよそ等しくするのが良いでしょう。

FreeBSD 4.5 からは、これを明示的に `0` に設定すると、システムが設定を自動調整します[1]。それより前のバージョンの FreeBSD を使っているか、自分で管理したい場合、特に X ウインドウシステムを使ったり、ソフトウエアをコンパイルするなら、 `maxusers` は最低 4 にして下さい。 その理由は、`maxusers` によって計算される最も 重要なテーブルがプロセスの最大数で、それは `20 + 16 * maxusers` となります。 もし、`maxusers` を 1 にすると、 同時に 36 プロセスしか利用できなくなりますが、 システムは起動時に 18 ほどのプロセスを立ち上げ、 X ウインドウシステムは 15 ほどのプロセスを立ち上げるので、 オンラインマニュアルを読むような単純なタスクでさえ フィルタ、展開、表示に 9 個のプロセスを利用するために、プロセス数不足になります。 `maxusers` を 64 に設定すると、 1044 個のプロセスを同時に利用することができるので、 殆どのユーザには充分でしょう。 もしあなたが別のプログラムを立ち上げる時、 恐れられている proc table full エラーが 発生する場合や、`ftp.FreeBSD.org` のように多数のユーザにより 同時に利用されるサーバを動かしている場合には、 この数字を増やしてカーネルを再構築することができます。

> Note: `maxusers` はあなたのマシンにログインする ユーザ数を制限するものでは ありません。 それは単に、あなたのシステムを使うであろうユーザの最大数や それぞれのユーザがどれくらいのプロセスを走らせるかに 合わせて各種テーブルの大きさを設定するだけです。 同時にリモートログインする最大ユーザ数を制限するキーワードは `pseudo-device pty 16` です。

    # Floating point support - do not disable.
    device          npx0     at nexus? port IO_NPX irq 13

`npx0` はハードウェアコプロセッサか ソフトウエアエミュレータのどちらかである浮動小数点演算ユニットへの FreeBSD におけるインタフェースです。 これは任意選択ではありません。

    # Pseudo devices - the number indicates how many units to allocate.
    pseudo-device   loop          # Network loopback

TCP/IP の汎用ループバックデバイスです。 `localhost` (すなわち `127.0.0.1`) に対して telnet や FTP で接続すると、この疑似デバイスを通して戻ってきます。 これは必須です。

以下に続くすべては大体において追加設定項目です。 詳細は各項目の次に書かれている注意書きを参照して下さい。

    #makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols
    options          MATH_EMULATE      #Support for x87 emulation

この行では、あなたのコンピュータが浮動小数点演算コプロセッサを 持たない場合(CPU が 386 又は 486SX)、 カーネルにシミュレートさせるよう設定します。 あなたが 486DX, 又は (387 や 487 チップを別途搭載した) 386, 486SX 又は更に上位 (Pentium, Pentium II 他) を持っている場合はコメントアウトして下さい。

> Note: FreeBSD の浮動小数点エミュレーションルーチンはあまり正確では ありません。 もしあなたが浮動小数点コプロセッサを持っておらず、 かつベストな演算精度が必要であれば、GNU の浮動小数点サポートを 利用する `GPL_MATH_EMULATE` を使ってみて下さい。 このオプションはライセンス上の理由によりデフォルトでは 含まれていません。

    options          INET          #InterNETworking

ネットワークのサポート。 ネットワークに接続する予定がなくてもこのオプションは残して下さい。 殆どのプログラムは少なくともループバックネットワーク (あなたの PC の中でのネットワーク接続) を必要としますので、 基本的にこの行は必須です。

    options          INET6          #IPv6 communications protocols

このオプションは IPv6 通信プロトコルを利用可能にします。

    options          FFS          #Berkeley Fast Filesystem
    options          FFS_ROOT     #FFS usable as root device [keep this!]

これは標準のハードドライブファイルシステムです。 ハードディスクから起動する場合は残して下さい。

    options          UFS_DIRHASH  #Improve performance on big directories

このオプションは、メモリを多少余分に食うものの、 大きなディレクトリに対するディスク操作を高速化するコードを有効にします。 大規模なサーバや対話的なワークステーションではこのオプションを残しておいて、 ファイアウォールのように、メモリが貴重で ディスクアクセス速度がそれほど重要でない 小規模なシステムでは削除するとよいでしょう。

    options          SOFTUPDATES  #Enable FFS Soft Updates support

このオプションは、カーネル内の Soft Updates 機能を有効にし、 ディスクへの高速な書き込みを支援します。 4.X ブランチではデフォルトで有効にされましたが、 有効になっていない可能性もあります。 mount(8) の出力を見て、有効になっているかどうか確認してください。 `soft-updates` オプションが見当たらなければ、 tunefs(8) か、新規のファイルシステムについては newfs(8) で有効にする必要があります。

    options          MFS          #Memory Filesystem
    options          MD_ROOT      #MD is a potential root device

これはメモリ上にマップされたファイルシステムです。 これは基本的に一時ファイルの高速格納用の RAM ディスクであり、 あなたが有効に利用したい大量のスワップスペースを持っている 場合には有用でしょう。 多くのプログラムが一時データをここに保存することから、 MFS パーティションをマウントする最適な場所は `/tmp` ディレクトリです。 MFS RAM ディスクを `/tmp` にマウントするには 次の行を `/etc/fstab` に追加して下さい:

    /dev/ad1s2b    /tmp mfs rw 0 0

次に再起動するか、コマンド `mount /tmp` を実行して下さい。

    options          NFS          #Network Filesystem
    options          NFS_ROOT     #NFS usable as root device, NFS required

ネットワークファイルシステム。 Unix ファイルサーバから TCP/IP を介してパーティションを マウントするのでない限り、これらの行をコメントアウトして下さい。

    options          MSDOSFS      #MSDOS Filesystem

MS-DOS ファイルシステム。 起動時に DOS でフォーマットされたハードドライブを マウントするのでない限り、この行は安全にコメントアウトできます。 この機能は最初に DOS パーティションをマウントする時に自動的に ロードされます。 又、優秀な mtools (Ports コレクションにあります) を使ってもマウント、 アンマウントすることなしに DOS フロッピーにアクセスすることができます。 (`MSDOSFS` は必要としません)

    options          CD9660       #ISO 9660 Filesystem
    options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required

CD-ROM 用の ISO 9660 ファイルシステム。 もしあなたが CD-ROM ドライブを持っていないか、 時々データ CD をマウントするだけならこの行をコメントアウトしても 大丈夫です (データ CD を最初にマウントする時、自動的にロードされます)。 音楽 CD はこのファイルシステムを必要としません。

    options          PROCFS       #Process filesystem

プロセスファイルシステム。 これは `/proc` にマウントされる、 ファイルシステムの “ふりをする” もので、 ps(1) のようなプログラムに、どんなプロセスが走っているか に関するより多くの情報を提供させる事ができます。

    options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]

4.3BSD との互換機能です。 有効なままにして下さい。 この行をコメントアウトするとおかしな動きをするプログラムがあります。

    options          SCSI_DELAY=15000    #Delay (in ms) before probing SCSI

この行は、カーネルがそれぞれの SCSI 機器を検出する前に 15 秒間待つようにします。 あなたが IDE ドライブしか持たないなら無視して結構です。 そうでないなら、起動時間を短くするため、おそらく待つ時間を短く、 5 秒くらいにしたいでしょう。 勿論、そうした場合に FreeBSD が SCSI 機器を認識しなくなった場合は 時間を元に戻す必要があります。

    options          UCONSOLE            #Allow users to grab the console

ユーザにコンソールを所有することを許可します。 X のユーザには役に立ちます。 たとえば `xterm -C` と入力すれば、コンソール xterm を実行できます。ここにはあなたが受け取る write(1), talk(1) などのメッセージや、 カーネルからのコンソールメッセージが表示されます。

    options          USERCONFIG          #boot -c editor

このオプションは起動メニューからコンフィグレーションエディタ を起動することができるようにします。

    options          VISUAL_USERCONFIG   #visual boot -c editor

このオプションは起動メニューからビジュアルコンフィグレーション エディタを起動できるようにします。

> Note: FreeBSD バージョン 5.0 以降では、新しく device.hints(5) を利用する方法が採用され、userconfig は使われなくなりました。 device.hints(5) に関する詳しい情報は Section 12.5 をご覧ください。

    options          KTRACE              #ktrace(1) support

この行はデバッギングに役立つカーネルプロセスのトレースを 可能にします。

    options          SYSVSHM             #SYSV-style shared memory

このオプションは System V 共有メモリを提供します。 この機能の最も一般的な使用方法は X における XSHM 拡張です。 多くのグラフィックス重視のプログラムではこの機能を自動的に 描画のスピードアップに利用します。 X を使っているなら、これを含めておいた方がいいでしょう。

    options          SYSVSEM             #SYSV-style semaphores

System V セマフォのサポート。 あまり使われませんが、カーネルサイズは数百バイト大きくなるだけです。

    options          SYSVMSG             #SYSV-style message queues

System V のメッセージのサポート。 これもカーネルサイズを数百バイト大きくするだけです。

> Note: ipcs(1) コマンドを実行するとこれらの System V 機能を使っているプロセスのリストを表示します。

    options    P1003_1B        #Posix P1003_1B real-time extensions
    options     _KPOSIX_PRIORITY_SCHEDULING

リアルタイム拡張が 1993 POSIX に追加されました。 Ports コレクションの内のいくつかのアプリケーション (たとえば Star Office) はこれを使っています。

    options        ICMP_BANDLIM        #Rate limit bad replies

このオプションは ICMP エラー応答のバンド幅制限を可能にします。 サービス不能パケットによる攻撃からマシンを保護するために必要です。

    # To make an SMP kernel, the next two are needed
    #options        SMP                     # Symmetric MultiProcessor Kernel
    #options        APIC_IO                 # Symmetric (APIC) I/O

上の行は両方とも SMP サポートのために必要です。

    device          isa

FreeBSD がサポートするすべての PC はこれらの内のひとつを 持っています。 あなたが IBM PS/2 (マイクロチャネルアーキテクチャ) マシンを持っている場合、FreeBSD は、現時点では限定的な対応を提供しています。 MCA の対応状況に関する詳細は、 `/usr/src/sys/i386/conf/LINT` をご覧ください。

    device          eisa

あなたが EISA マザーボードを持っている場合、 この行を含めて下さい。これは EISA バスに接続されているすべての デバイスの自動検出と設定を可能にします。

    device          pci

あなたが PCI マザーボードを持っている場合、この行を含めて下さい。 これは PCI カードの自動検出と PCI から ISA バスへのゲートウエイを 可能にします。

    # Floppy drives
    device          fdc0        at isa? port IO_FD1 irq 6 drq 2
    device          fd0         at fdc0 drive 0
    device          fd1         at fdc0 drive 1

これはフロッピーディスクコントローラです。 `fd0` は `A:` フロッピードライブ、`fd1` は `B:` ドライブです。

    device          ata

このドライバはすべての ATA と ATAPI デバイスをサポートします。 最近のマシンでは `device ata` 行を 1 行書くだけで すべての PCI ATA/ATAPI デバイスを検出することができます。

    device          atadisk                 # ATA disk drives

ATA ディスクドライブには `device ata` と共にこの行が必要です。

    device          atapicd                 # ATAPI CDROM drives

ATAPI CDROM ドライブには `device ata` と共にこの行が必要です。

    device          atapifd                 # ATAPI floppy drives

ATAPI フロッピードライブには `device ata` と共にこの行が必要です。

    device          atapist                 # ATAPI tape drives

ATAPI テープドライブには `device ata` と共にこの行が必要です。

    options         ATA_STATIC_ID           #Static device numbering

この行はコントローラ番号を (古いドライバのように) 静的に 割り当てます。そうでない場合、デバイス番号は動的に割り当てられます。

    # ATA and ATAPI devices
    device          ata0        at isa? port IO_WD1 irq 14
    device          ata1        at isa? port IO_WD2 irq 15

上の行は古い、PCI ではないシステムの場合の形式です。

    # SCSI Controllers
    device          ahb        # EISA AHA1742 family
    device          ahc        # AHA2940 and onboard AIC7xxx devices
    device          amd        # AMD 53C974 (Teckram DC-390(T))
    device          dpt        # DPT Smartcache - See LINT for options!
    device          isp        # Qlogic family
    device          ncr        # NCR/Symbios Logic
    device          sym        # NCR/Symbios Logic (newer chipsets)

    device          adv0       at isa?
    device          adw
    device          bt0        at isa?
    device          aha0       at isa?
    device          aic0       at isa?

SCSI コントローラです。 あなたのシステムにないデバイスはコメントアウトして下さい。 もし IDE しかないシステムならこれらすべてを削除できます。

    # SCSI peripherals
    device          scbus      # SCSI bus (required)
    device          da         # Direct Access (disks)
    device          sa         # Sequential Access (tape etc)
    device          cd         # CD
    device          pass       # Passthrough device (direct SCSI
    access)

SCSI 周辺機器です。 あなたが持っていないデバイスはコメントアウトして下さい。 もし IDE しか持っていないならこれらを完全に削除できます。

    # RAID controllers
    device          ida        # Compaq Smart RAID
    device          amr        # AMI MegaRAID
    device          mlx        # Mylex DAC960 family

サポートされる RAID コントローラです。 これらのどれも持っていない場合、すべてをコメントアウト又は 削除することができます。

    # atkbdc0 controls both the keyboard and the PS/2 mouse
    device          atkbdc0    at isa? port IO_KBD

キーボードコントローラ (`atkbdc`) は AT キーボード及び PS/2 スタイルポインティングデバイスの I/O サービスを提供します。 キーボードドライバ (`atkbd`) と PS/2 ポインティングデバイスドライバ (`psm`) はこのコントローラを必要とします。

    device          atkbd0     at atkbdc? irq 1

`atkbd` ドライバ。 `atkbdc` コントローラと協調して動作し、 AT キーボードコントローラに接続された AT 84 キーボードや AT 拡張キーボードへのアクセスを提供します。

    device          psm0       at atkbdc? irq 12

あなたのマウスが PS/2 マウスポートに接続するタイプなら このデバイスを使って下さい。

    device          vga0        at isa?

ビデオカードドライバです。

    # splash screen/screen saver
    pseudo-device          splash

起動時に画面がはじけます。 スクリーンセーバもこのデバイスを必要とします。

    # syscons is the default console driver, resembling an SCO console
    device          sc0          at isa?

`sc0` はSCOに類似したデフォルトの コンソールドライバです。 殆どのフルスクリーンのプログラムは `termcap` のようなターミナルデータベールライブラリにアクセスするので、 `sc0` を使うか `VT220` 互換のコンソールドライバである `vt0` を使うかは重要ではありません。 ログイン時、このコンソールでフルスクリーンプログラムが動かないときは `TERM` 変数を `scoansi` に設定して下さい。

    # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
    #device          vt0     at isa?
    #options         XSERVER          # support for X server on a vt console
    #options         FAT_CURSOR       # start with block cursor
    # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
    #options         PCVT_SCANSET=2   # IBM keyboards are non-std

これは VT220 互換のコンソールドライバで、 VT100/102 と後方互換性があります。 `sc0` とハード的に互換性がないラップトップでも 問題なく動きます。 ここでもログイン時に `TERM` 変数を `vt100` 又は `vt220` と設定して下さい。 このドライバは、`sc0` デバイス用の `termcap` や `terminfo` のエントリが無い、ネットワーク上の多くの異なったマシンに 接続する際にも有用です -- `vt100` は仮想的にすべてのプラットフォームで有効であるべきです。

    # Power management support (see LINT for more options)
    device          apm0     at nexus? disable flags 0x20  # Advanced Power Management

先進的な電源管理機能 (APM) のサポート。 ラップトップでは役に立つでしょう。

    # PCCARD (PCMCIA) support
    device          card
    device          pcic0    at isa? irq 10 port 0x3e0 iomem 0xd0000
    device          pcic1    at isa? irq 11 port 0x3e2 iomem 0xd4000 disable

PCMCIA サポート。ラップトップを使っているなら必要でしょう。

    # Serial (COM) ports
    device          sio0     at isa? port IO_COM1 flags 0x10 irq 4
    device          sio1     at isa? port IO_COM2 irq 3
    device          sio2     at isa? disable port IO_COM3 irq 5
    device          sio3     at isa? disable port IO_COM4 irq 9

これらは MS-DOS/Windows の世界では COM1からCOM4 と呼ばれている 4 つのシリアルポートです。

> Note: もしあなたが内蔵モデムを COM4 に、シリアルポートを COM2 に設定している場合、FreeBSD からアクセスするには、 (IRQ2=IRQ9 という、不明瞭な技術的理由により) モデムの IRQ を 2 に変更する必要があります。 もしマルチポートシリアルカードを持っていてこれらの設定の正しい 数値に関する情報がほしい場合はマニュアルページ sio(4) を参照して下さい。 ビデオカードのいくつかは (S3 チップベースのものは特に) IO アドレスを `0x*2e8` と言う形式で表現する一方、 多くの安価なシリアルカードは 16 ビットの IO アドレスを完全に デコードしないので、これらのカードを使った場合衝突が起こり、 事実上 COM4 ポートを使用不可能にします。

> 各々のシリアルポートは (共有割り込み番号をサポートする マルチポートカードを使っていない限り) 固有の IRQ を必要とします。 従って COM3 と COM4 用のデフォルト IRQ は利用できません。

    # Parallel port
    device          ppc0    at isa? irq 7

ISA バスパラレルポートインタフェースです。

    device          ppbus      # Parallel port bus (required)

パラレルポートバスのサポートを提供します。

    device          lpt        # Printer

パラレルポートプリンタのサポートです。

> Note: 上の 3 つはすべてパラレルプリンタを利用可能にするために 必要です。

    device          plip       # TCP/IP over parallel

パラレルネットワークインタフェース用のドライバです。

    device          ppi        # Parallel port interface device

汎用I/O (“geek port”) + IEEE1284 I/O です。

    #device         vpo        # Requires scbus and da

Iomega の Zip ドライブ用です。`scbus` と `da` サポートが必要です。 EPP 1.9モードを使うと最高の性能が得られます。

    # PCI Ethernet NICs.
    device          de         # DEC/Intel DC21x4x (“Tulip”)
    device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
    device          tx         # SMC 9432TX (83c170 “EPIC”)
    device          vx         # 3Com 3c590, 3c595 (“Vortex”)
    device          wx         # Intel Gigabit Ethernet Card (“Wiseman”)

PCI ネットワークカードのドライバです。あなたのシステムに ないものはコメントアウトするか削除して下さい。

    # PCI Ethernet NICs that use the common MII bus controller code.
    device          miibus     # MII bus support

MII バスサポートはいくつかの PCI 10/100 イーサネット NIC、 すなわち MII に従うトランシーバや MII のようなトランシーバ制御 インタフェースを実装するもの、に必要となります。 カーネルコンフィギュレーションに `device miibus` を追加することで、汎用 miibus API のサポートと、 特定のドライバを必要としない場合に利用される汎用のものを含む すべての PHY ドライバが導入されます。

    device          dc         # DEC/Intel 21143 and various workalikes
    device          rl         # RealTek 8129/8139
    device          sf         # Adaptec AIC-6915 (“Starfire”)
    device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
    device          ste        # Sundance ST201 (D-Link DFE-550TX)
    device          tl         # Texas Instruments ThunderLAN
    device          vr         # VIA Rhine, Rhine II
    device          wb         # Winbond W89C840F
    device          xl         # 3Com 3c90x (“Boomerang”, “Cyclone”)

MII バスコントローラコードを利用するドライバです。

    # ISA Ethernet NICs.
    device          ed0    at isa? port 0x280 irq 10 iomem 0xd8000
    device          ex
    device          ep
    # WaveLAN/IEEE 802.11 ワイヤレス NIC。
    # 注: WaveLAN/IEEE は PCMCIA デバイスとしてしか実在しません。
    # なので ISAア タッチメントは必要なく、リソースは常に PC カードコードに
    # より動的に割り当てられます。
    device          wi
    # Aironet 4500/4800 802.11 ワイヤレス NIC。
    # 注: 下の宣言は ISA PnP モード (工場出荷時設定) のISAカード、PCMCIA
    # 及び PCI カードにのみ働きます。もし、ISA カードの I/O アドレスと IRQ
    # を手動で設定している場合は、ここでそれらのパラメータを指定しなく
    # てはいけません。
    device          an
    # これらの検出順序は現在 i386/isa/isa_compat.c により決められます。
    device          ie0    at isa? port 0x300 irq 10 iomem 0xd0000
    device          fe0    at isa? port 0x300
    device          le0    at isa? port 0x300 irq 5 iomem 0xd0000
    device          lnc0   at isa? port 0x280 irq 10 drq 0
    device          cs0    at isa? port 0x300
    device          sn0    at isa? port 0x300 irq 10
    # requires PCCARD (PCMCIA) support to be activated
    #device         xe0    at isa?

ISA イーサネットドライバです。 どのカードがどのドライバによりサポートされているかは `/usr/src/sys/i386/conf/LINT` を参照して下さい。

    pseudo-device   ether         # Ethernet support

`ether` はイーサネットカードを持っている場合に のみ必要です。汎用イーサネットプロトコルコードを含みます。

    pseudo-device   sl      1     # Kernel SLIP

`sl` は SLIP サポートを行います。 SLIP は設定のより簡単な、モデム-モデム間の接続にはより適していて より高機能な PPP に殆ど取って代わられています。 `sl` に続く `数字` には同時に持てる SLIP セッション数を指定します。

    pseudo-device   ppp     1     # Kernel PPP

これはダイアルアップ接続用のカーネル PPP サポートです。 他にも `tun` を利用し、デマンドダイアリングのような 柔軟性と機能を提供するユーザーランドのアプリケーションとして 実装された PPP が存在します。`ppp` に続く `数字` には同時に持てる PPP セッション数を 指定します。

    pseudo-device   tun           # Packet tunnel.

これはユーザーランド PPP ソフトウエアにより利用されます。 `tun` に続く `数字` には同時に持てる PPP セッション数を指定します。 詳細はこの本の PPP セクションを 参照して下さい。

    pseudo-device   pty           # Pseudo-ttys (telnet etc)

これは “疑似ターミナル” 或いはシミュレートされた ログインポートです。 これは入ってくる `telnet` と `rlogin` セッション、 xterm やその他の Emacs のようなアプリケーションにより利用されます。 `pty` の後の `数字` は、 生成される `pty` の数を示します。もし同時にデフォルトの 16 より多くの xterm ウィンドウやリモートログインが 必要な場合、必要に応じてこの数字を増やして下さい。 最大は 256 です。

    pseudo-device   md            # Memory “disks”

メモリディスク疑似デバイス。

    pseudo-device   gif

または

    pseudo-device   gif     4     # IPv6 and IPv4 tunneling

この行は IPv6 over IPv4 トンネル、IPv4 over IPv6 トンネル、 IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。 FreeBSD 4.4 からは、`gif` デバイスは “auto-cloning (自動複製)” しますので、 (`gif` のあとに数値がこない) はじめの例を使ってください。 それより前のバージョンの FreeBSD では、数値が必要です。

    pseudo-device   faith   1     # IPv6-to-IPv4 relaying (translation)

この疑似デバイスは自分宛に送られたパケットを受け取り、 IPv4/IPv6 変換デーモンに渡します。

    # The `bpf' pseudo-device enables the Berkeley Packet Filter.
    # Be aware of the administrative consequences of enabling this!
    pseudo-device   bpf           # Berkeley packet filter

これはバークレーパケットフィルタです。 この疑似デバイスはネットワークインタフェースを、イーサネットのような ブロードキャストネットワーク上ですべてのパケットを拾うことのできる promiscuous モードに設定できるようにします。 これらのパケットはディスクに取り込むこともできますし、 tcpdump(1) を使ってチェックをすることもできます。

> Note: `bpf` 疑似デバイスは、dhclient(8) がデフォルトルータ (ゲートウェイ) の IP アドレスなどを取得する ためにも使われています。DHCP を使っているなら、これはコメント アウトしないでください。

    # USB support
    #device         uhci          # UHCI PCI->USB interface
    #device         ohci          # OHCI PCI->USB interface
    #device         usb           # USB Bus (required)
    #device         ugen          # Generic
    #device         uhid          # “Human Interface Devices”
    #device         ukbd          # Keyboard
    #device         ulpt          # Printer
    #device         umass         # Disks/Mass storage - Requires scbus and da
    #device         ums           # Mouse
    # USB Ethernet, requires mii
    #device         aue           # ADMtek USB ethernet
    #device         cue           # CATC USB ethernet
    #device         kue           # Kawasaki LSI USB ethernet

様々なUSBデバイスのサポートです。

より詳細な情報と、FreeBSD によりサポートされる他のデバイスに ついては `/usr/src/sys/i386/conf/LINT` を参照して下さい。

### Notes

[1] | 自動調整アルゴリズムは、`maxuser` を、最小値が 32、最大値が 384 の間で、システムのメモリ合計と等しく設定します。

Prev | Home | Next
カスタムカーネルの構築とインストール | Up | デバイスノードを作る