カスタムカーネルのコンフィグレーションファイルを作成し、 カスタムカーネルを構築するのであれば、 FreeBSD の全ソースツリーがまずインストールされている必要があります。
もし、/usr/src/
が存在していなかったり、空であれば、
カーネルのソースはインストールされていません。
「Subversion を使う」 で説明した
svn を使ってソースをインストールできます。
また、sysinstall(8) を使って、
src
ディストリビューションからインストールすることもできます。
このディストリビューションは、sysinstall(8) で
Configuration
を選択し、
Distributions
メニューから選択できます。
ソースをインストールしたら、/usr/src/sys
を確認して下さい。
このディレクトリには、サブディレクトリがいくつもあります。
その中には、サポートされている各アーキテクチャである、amd64
, i386
, ia64
, pc98
, powerpc
および sparc64
のサブディレクトリがあります。
各アーキテクチャのディレクトリ内部にあるファイルはすべてそのアーキテクチャでのみ使用されます。
残りのコードは、アーキテクチャに依存しない、
すべてのプラットフォームで共有されるコードです。
サポートされている各アーキテクチャには、conf
サブディレクトリがあり、
そのアーキテクチャ用の GENERIC
カーネルコンフィグレーションファイルが用意されています。
この GENERIC
は編集しないでください。
このファイルを別名でコピーし、コピーを編集してください。
慣習として、この名前はすべて大文字でつづられます。もし、
いくつかの異なるハードウェアの FreeBSD マシンを扱うなら、
この名前にホスト名を含めるとよいでしょう。ここでは、例として
amd64
アーキテクチャのカスタムコンフィグレーションファイルを作成します。
#
cd /usr/src/sys/amd64/conf
#
cp GENERIC MYKERNEL
カーネルコンフィグレーションファイルの編集を終えたら、
ファイルのバックアップを /usr/src
以外の場所に保存してください。
もしくは、カーネルコンフィグレーションファイルは他の場所において、 シンボリックリンクを張る方法もあります。
#
cd /usr/src/sys/amd64/conf
#
mkdir /root/kernels
#
cp GENERIC /root/kernels/MYKERNEL
#
ln -s /root/kernels/MYKERNEL
これで、コンフィグレーションファイル
MYKERNEL
を ASCII テキストエディタで編集できます。
初心者に対してより簡単なエディタである
ee も FreeBSD
とともにインストールされていますが、
デフォルトのエディタは vi です。
コンフィグレーションファイルのフォーマットはシンプルです。
各行はデバイスやサブシステム、引数、または簡単な説明を含んでいます。
#
に続くテキストはすべてコメントとして扱われ、
無視されます。
カーネルからデバイスもしくはサブシステムのサポートを外すには、
対応する行の最初に #
を入れてください。
理解していない行に対しては、#
を追加したり削除しないでください。
このファイルで与えられる説明の他に、
そのアーキテクチャの GENERIC
と同じディレクトリにある
NOTES
にも説明があります。
アーキテクチャに依存しないオプションについては、
/usr/src/sys/conf/NOTES
をご覧ください。
コンフィグレーションファイルでは include
ディレクティブを利用できます。
コンフィグレーションファイルに他のファイルを取り込むことができるので、
すでに存在するファイルに対する小さな変更を簡単に維持できます。
たとえば、オプションやドライバの追加が少しだけの場合には、
以下のように GENERIC からの差分だけの管理が可能になります。
include GENERIC ident MYKERNEL options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT
この方法では、ローカルのコンフィグレーションファイルには、
ローカルにある GENERIC
カーネルとの差分が記述されています。
アップグレードが行われると、
GENERIC
に追加された新しい機能は、
(nooptions
や nodevice
によって外されない限り) ローカルのカーネルにも反映されます。
コンフィグレーションの構成要素に関する包括的な一覧と説明は
config(5) にあります。
利用可能なすべてのオプションを含むファイルを構築するには、
以下のコマンドを root
権限で実行してください。
#
cd /usr/src/sys/i386/conf && make LINT
ident GENERIC
これはカーネルの識別名です。
たとえば、MYKERNEL
のように、新しいカーネルに付けたい名前に書き換えて下さい。
ident
に書いた値はカーネルを起動する時に表示されます。
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
このオプションは gcc(1) がデバッグ情報を生成するようにします。
options SCHED_ULE # ULE scheduler
FreeBSD のデフォルトのスケジューラです。 このオプションはこのままにしてください。
options INET # InterNETworking
ネットワークのサポート。 ほとんどのプログラムは少なくともループバックネットワークを必要とするので、 基本的にこの行は必須です。
options INET6 # IPv6 communications protocols
このオプションは IPv6 通信プロトコルを利用可能にします。
options FFS # Berkeley Fast Filesystem
これは標準のハードドライブファイルシステムです。 システムがハードディスクから起動する場合は残して下さい。
options SOFTUPDATES # Enable FFS Soft Updates support
このオプションは、カーネル内の Soft Updates 機能を有効にし、
ディスクへの高速な書き込みを支援します。
カーネルがこの機能を提供していても、
特定のディスクに対してはこのオプションを有効にする必要があります。
mount(8) の出力を見て、
Soft Updates が有効になっているかどうかを確認してください。
soft-updates
オプションが見当たらなければ、
現在使用しているファイルシステムには tunefs(8)、
新規のファイルシステムには newfs(8)
コマンドで有効にできます。
options UFS_ACL # Support for access control lists
このオプションは、カーネルのアクセス制御リスト (ACL) のサポートを有効にします。 この機能は拡張属性および UFS2 が有効になっていることに依存し、 「ファイルシステムアクセス制御リスト」 で機能の説明が行われています。 ACL はデフォルトで有効にされています。 もし、これまでにファイルシステムで有効にしていたのであれば、 カーネルの中で無効にすべきではありません。 なぜなら、無効にすると ACL が削除され、 ファイルの保護が予想できない方法で行われるためです。
options UFS_DIRHASH # Improve performance on big directories
このオプションは、メモリを多少余分に食うものの、 大きなディレクトリに対するディスク操作を高速化する機能を有効にします。 大規模なサーバや対話的なワークステーションではこのオプションを残しておいて、 ファイアウォールのように、 メモリが貴重でディスクアクセス速度がそれほど重要でない小規模なシステムでは削除するとよいでしょう。
options MD_ROOT # MD is a potential root device
このオプションは、メモリディスクによる root デバイスのサポートを有効にします。
options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT
ネットワークファイルシステム (NFS)。 NFS ファイルサーバから TCP/IP を介してパーティションをマウントするのでない限り、 これらの行をコメントアウトできます。
options MSDOSFS # MSDOS Filesystem
MS-DOS® ファイルシステム。
起動時に DOS でフォーマットされたハードドライブのパーティションをマウントするのでなければ、
この行はコメントアウトできます。
この機能は最初に DOS パーティションをマウントする時に自動的にロードされます。
emulators/mtools package
を使うと、マウント、アンマウントすることなしに DOS
フロッピーにアクセスすることができ、
MSDOSFS
を必要としません。
options CD9660 # ISO 9660 Filesystem
CD-ROM 用の ISO 9660 ファイルシステム。 もしシステムが CD-ROM ドライブを持っていないか、 ときどきデータ CD をマウントするだけなら、 データ CD を最初にマウントする時に自動的にロードされるので、 この行をコメントアウトしてください。 音楽 CD はこのファイルシステムを必要としません。
options PROCFS # Process filesystem (requires PSEUDOFS)
プロセスファイルシステム。
これは /proc
にマウントされるもので、他のプログラムに、
どんなプロセスが走っているかについて、
より多くの情報を提供する事ができます。
ほとんどのデバッグおよびモニタリングツールが
PROCFS
なしで起動するので、
ほとんどの環境では PROCFS
を必要としません。
デフォルトのインストールではこのファイルシステムをマウントしません。
options PSEUDOFS # Pseudo-filesystem framework
カーネルで PROCFS
を使う場合には、
PSEUDOFS
のサポートが必要です。
options GEOM_PART_GPT # GUID Partition Tables.
GUID パーティションテーブル (GPT) に対応します。 GPT では、1 つのディスクに数多くのパーティション (標準の構成では最大 128) を作成可能です。
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
4.3BSD との互換機能です。 有効なままにして下さい。 この行をコメントアウトするとおかしな動きをするプログラムがあります。
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
このオプションは、 古いバージョンの FreeBSD でコンパイルされた古いシステムコールインターフェースを用いるアプリケーションを利用する場合に必要とされます。 古いアプリケーションを実行するすべての i386™ システムで、このオプションの利用を推奨します。 FreeBSD 4.X より後にサポートされた ia64 や SPARC64® といったプラットフォームでは、このオプションは必要ありません。
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
このオプションは、 FreeBSD 5.X でコンパイルされた FreeBSD 5.X のシステムコールインタフェースを用いるアプリケーションを利用する場合に必要とされます。
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
このオプションは、 FreeBSD 6.X でコンパイルされた FreeBSD 6.X のシステムコールインタフェースを用いるアプリケーションを利用する場合に必要とされます。
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
このオプションは、FreeBSD 8 以降において、 FreeBSD 7.X でコンパイルされた FreeBSD 7.X のシステムコールインタフェースを用いるアプリケーションを利用する場合に必要とされます。
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
この行は、カーネルがそれぞれの SCSI 機器を検出する前に 5 秒間待つようにします。 システムが IDE ドライブしか持たないなら無視するか、 起動時間を短くするために、この数字を小さく変更できます。 もし、FreeBSD が SCSI 機器を認識しなくなってしまったら、もう一度数字を増やしてください。
options KTRACE # ktrace(1) support
この行はデバッグに役立つカーネルプロセスのトレースを可能にします。
options SYSVSHM # SYSV-style shared memory
このオプションは System V 共有メモリを提供します。 この機能の最も一般的な使用方法は X における XSHM 拡張です。 多くのグラフィックス重視のプログラムではこの機能を自動的に描画のスピードアップに利用します。 Xorg がインストールされているなら、 これを含めてください。
options SYSVMSG # SYSV-style message queues
System V のメッセージのサポート。 このオプションはカーネルサイズを数百バイト大きくするだけです。
options SYSVSEM # SYSV-style semaphores
System V セマフォのサポート。 あまり使われませんが、カーネルサイズは数百バイト大きくなるだけです。
ipcs(1) を -p
で実行すると、これらの System V
機能を使っているプロセスのリストを表示します。
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
リアルタイム拡張が 1993 POSIX® に追加されました。 Ports Collection の内のいくつかのアプリケーションはこれを使っています。
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
キーボードデバイスノードを /dev
に作成するにはこのオプションが必要です。
device apic # I/O APIC
このデバイスは、I/O APIC の割り込みを有効にします。
ユニプロセッサおよび SMP カーネル両方で使用できますが、
SMP カーネルでは必須です。
マルチプロセッサに対応するには
options SMP
を追加してください。
このデバイスは i386 アーキテクチャにのみ存在します。 他のアーキテクチャでは、この行を含まないでください。
device eisa
システムが EISA マザーボードを持っている場合、 この行を含めて下さい。これは EISA バスに接続されているすべてのデバイスの自動検出と設定を可能にします。
device pci
システムが PCI マザーボードを持っている場合、この行を含めて下さい。 これは PCI カードの自動検出と PCI から ISA バスへのゲートウエイを可能にします。
# Floppy drives device fdc
これはフロッピーディスクコントローラです。
# ATA and ATAPI devices device ata
このドライバはすべての ATA と ATAPI デバイスをサポートします。
最近のマシンでは device ata
行を
1 行書くだけですべての PCI ATA/ATAPI デバイスを検出することができます。
device atadisk # ATA disk drives
ATA ディスクドライブには device ata
と共にこの行が必要です。
device ataraid # ATA RAID drives
ATA RAID ドライブには
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
この行はコントローラ番号を静的に割り当てます。 このオプションがない場合、デバイス番号は動的に割り当てられます。
# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50
このセクションでは、
システムにない SCSI コントローラはコメントアウトして下さい。
もし IDE しかないシステムならこれらすべてを削除できます。
*_REG_PRETTY_PRINT
行は、
対応するドライバに対するデバッグオプションです。
# SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE)
システムにない SCSI 周辺機器はコメントアウトしてください。 もし IDE しか持っていないならこれらを完全に削除できます。
USB umass(4) ドライバ、およびその他のいくつかのドライバは、 本当の SCSI デバイスではないにもかかわらず、 SCSI サブシステムを利用します。 そのようなドライバがカーネルコンフィグレーションに含まれている場合には、 SCSI サポートを削除しないでください。
# RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID
サポートされる RAID コントローラです。 システムがこれらのどれも持っていない場合には、 すべてをコメントアウトもしくは削除してください。
# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller
atkbdc
キーボードコントローラは
AT キーボードおよび PS/2 スタイルポインティングデバイスの
I/O サービスを提供します。
atkbd(4) および psm(4)
はこのコントローラを必要とします。
device atkbd # AT keyboard
atkbd(4) ドライバ。 atkbdc(4) コントローラと協調して動作し、 AT キーボードコントローラに接続された AT 84 キーボードや AT 拡張キーボードへのアクセスを提供します。
device psm # PS/2 mouse
マウスが PS/2 マウスポートに接続するタイプならこのデバイスを使って下さい。
device kbdmux # keyboard multiplexer
標準のキーボードマルチプレクサのサポート。 システムが 2 つ以上のキーボードを用いなければ、 この行を削除してもかまいません。
device vga # VGA video card driver
vga(4) ビデオカードドライバです。
device splash # Splash screen and screen saver support
起動時のスプラッシュスクリーンおよびスクリーンセーバが必要とします。
# syscons is the default console driver, resembling a SCO console device sc
sc(4) は SCO に類似したデフォルトのコンソールドライバです。
殆どのフルスクリーンのプログラムは termcap
のようなターミナルデータベールライブラリにアクセスするので、
sc
を使うか VT220
互換のコンソールドライバである vt
を使うかは重要ではありません。
ログイン時、このコンソールでフルスクリーンプログラムが動かないときは
TERM
変数を scoansi
に設定して下さい。
# Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor
これは VT220 互換のコンソールドライバで、
VT100/102 と後方互換性があります。
sc
とハード的に互換性がないラップトップでも問題なく動きます。
ログイン後、TERM
を
vt100
又は vt220
と設定して下さい。
vt100
は仮想的にすべてのプラットフォームで有効であるため、
sc
デバイス用の
termcap
や terminfo
のエントリが無い、ネットワーク上の多くの異なったマシンに接続する際に、
このドライバは有用です。
device agp
システムが AGP カードを搭載している場合には、 この行を含めてください。 AGP および (ボードが機能を持っている場合には) AGP GART に対応します。
# Add suspend/resume support for the i8254. device pmtimer
APM および ACPI といった電源管理イベントのためのタイマデバイスドライバです。
# PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus
PCMCIA サポート。ラップトップを使っているなら必要でしょう。
# Serial (COM) ports device sio # 8250, 16[45]50 based serial ports
これらは Windows® では COM
と呼ばれているシリアルポートです。
もしシステムが内蔵モデムを COM4
に、
シリアルポートを COM2
に設定している場合、モデムの IRQ を 2 に変更してください。
もしマルチポートシリアルカードを持っていて、
/boot/device.hints
に追加する正しい数値に関する情報がほしい場合は、
マニュアルページ sio(4) を参照して下さい。
ビデオカードのいくつかは、特に S3 チップベースのものは、IO
アドレスを 0x*2e8
と言う形式で表現します。
多くの安価なシリアルカードは 16 ビットの IO
アドレス空間を完全にデコードしないので、
これらのカードを使った場合衝突が起こり、
事実上 COM4
ポートを使用不可能にします。
各々のシリアルポートは固有の IRQ を必要とします。
COM3
と COM4
用のデフォルト IRQ は利用できません。
例外は、共有割り込み番号をサポートするマルチポートカードを使っている場合です。
# Parallel port device ppc
ISA バスパラレルポートインタフェースです。
device ppbus # Parallel port bus (required)
パラレルポートバスのサポートを提供します。
device lpt # Printer
パラレルポートプリンタのサポートを追加します。
上の 3 つはすべてパラレルプリンタを利用可能にするために必要です。
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モードを使うと最高の性能が得られます。
#device puc
puc(4) glue ドライバがサポートしている 「dumb」 シリアル、 またはパラレル PCI カードをシステムが持っているのであれば、 このデバイスを有効にしてください。
# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (「Tulip」) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (「Typhoon」) device vx # 3Com 3c590, 3c595 (「Vortex」)
PCI ネットワークカードのドライバです。 システムにないものはコメントアウトするか削除して下さい。
# PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support
MII バスサポートはいくつかの PCI 10/100 イーサネット NIC、
すなわち MII に従うトランシーバや MII
のようなトランシーバ制御インタフェースを実装するもの、に必要となります。
カーネルコンフィギュレーションに device miibus
を追加することで、汎用 miibus API のサポートと、
特定のドライバを必要としない場合に利用される汎用のものを含むすべての
PHY ドライバが導入されます。
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (「Starfire」) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 「EPIC」) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (「Boomerang」, 「Cyclone」)
MII バスコントローラコードを利用するドライバです。
# ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le
ISA イーサネットドライバです。
どのカードがどのドライバによりサポートされているかの詳細は、
/usr/src/sys/i386/conf/NOTES
を参照して下さい。
# Wireless NIC cards device wlan # 802.11 support
標準の 802.11 サポート。ワイヤレスネットワークではこの行が必要です。
device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support
802.11 デバイスの暗号化サポート。 暗号化および 802.11i セキュリティプロトコルを使うシステムでは、 これらの行が必要です。
device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC.
ワイヤレスカードのサポートです。
# Pseudo devices device loop # Network loopback
TCP/IP の汎用ループバックデバイスです。 これは必須です。
device random # Entropy device
暗号化されたセキュア乱数ジェネレータです。
device ether # Ethernet support
ether
はイーサネットカードを持っているシステムでのみ必要です。
汎用イーサネットプロトコルコードを含みます。
device sl # Kernel SLIP
sl
は SLIP サポートを提供します。
SLIP は設定のより簡単な、モデム-モデム間の接続にはより適していてより高機能な
PPP に殆ど取って代わられています。
device ppp # Kernel PPP
これはダイアルアップ接続用のカーネル PPP サポートです。
他にも tun
を利用し、
デマンドダイアリングのような柔軟性と機能を提供するユーザーランドのアプリケーションとして実装された
PPP が存在します。
device tun # Packet tunnel.
これはユーザーランド PPP ソフトウエアにより利用されます。 詳細はこのハンドブックの PPP 章を参照して下さい。
device pty # Pseudo-ttys (telnet etc)
これは 「疑似ターミナル」 或いはシミュレートされたログインポートです。
これは入ってくる telnet
と
rlogin
セッション、
xterm やその他の
Emacs
のようなアプリケーションにより利用されます。
device md # Memory 「disks」
メモリディスク疑似デバイス。
device gif # IPv6 and IPv4 tunneling
この行は IPv6 over IPv4 トンネル、IPv4 over IPv6 トンネル、
IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。
gif
デバイスは
「auto-cloning (自動複製)」 し、
必要に応じてデバイスノードを作成します。
device faith # IPv6-to-IPv4 relaying (translation)
この疑似デバイスは自分宛に送られたパケットを受け取り、 IPv4/IPv6 変換デーモンに渡します。
# The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter
このバークレーパケットフィルタ疑似デバイスは、 ネットワークインタフェースを、 イーサネットのようなブロードキャストネットワーク上ですべてのパケットを拾うことのできる promiscuous モードに設定できるようにします。 これらのパケットはディスクに取り込むこともできますし、 tcpdump(1) を使ってチェックをすることもできます。
dhclient(8) も bpf(4) デバイスを使います。 DHCP を使っているなら、これはコメントアウトしないでください。
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
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
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
さまざまな USB デバイスのサポートです。
# FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!)
Firewire デバイスのサポートです。
より詳細な情報と、FreeBSD によりサポートされる他のデバイスについては
/usr/src/sys/i386/conf/NOTES
を参照して下さい。
大容量のメモリを搭載したコンピュータは、 ユーザ+カーネル仮想アドレス (KVA) 空間における 4 ギガバイトの制限を越えてメモリにアクセスする必要があります。 Intel は Pentium® Pro およびそれ以降の CPU において、 36-bit 物理アドレス空間に対応しました。
Intel® Pentium® Pro およびそれ以降の CPU では、
Physical Address Extensions (PAE)
を用いて 64 ギガバイトまでのメモリの構成を可能にします。
FreeBSD は、PAE
カーネルコンフィグレーションオプションを用いることで PAE に対応します。
現在すべてのバージョンの FreeBSD で利用できます。
Intel のメモリアーキテクチャの制限により、
4 ギガバイト以上または以下の区別をしません。
4 ギガバイト以上に割り当てられたメモリは、
利用可能なメモリのプールに単純に追加されます。
PAE サポートをカーネルで有効にするには、 以下の行をカーネルコンフィグレーションファイルに追加してください。
options PAE
FreeBSD の PAE のサポートは、 Intel® IA-32 プロセッサでのみ利用できます。 また、FreeBSD における PAE サポートは広くテストが行われているわけではないので、 FreeBSD の他の機能と比較するとベータ品質に位置づけられます。
FreeBSD における PAE サポートには、 以下のような制限があります。
プロセスは、4 ギガバイト以上の仮想メモリ空間にアクセスできません。
bus_dma(9) インタフェースを用いないデバイスドライバは、
PAE が有効なカーネルにおいてデータの破損を引き起こす可能性があるため、
利用することは推奨されません。
そのため FreeBSD で提供される PAE
カーネルコンフィグレーションファイルでは、PAE
が有効なカーネルで動作することが知られていないすべてのドライバが外されています。
いくつかの調整可能なシステムパラメータは、
利用可能な物理メモリによるメモリリソースを調整します。
PAE を必要とするような大きなメモリのシステムでは、
そのような調整可能なリソースが不必要に割り当てられることがあります。
そのような例のひとつが kern.maxvnodes
sysctl です。この sysctl は、カーネルで許される
vnode の最大数を調節します。
この sysctl や同様に変更可能なパラメータを適切な値に調整することをお奨めします。
カーネルバーチャルアドレス (KVA)
の枯渇を避けるため、KVA 空間を大きくとる、または、
激しく消費される特定のカーネルリソースの量を減らす必要があるでしょう。
KVA_PAGES
カーネルオプションを用いて
KVA 空間を増やすことができます。
パフォーマンスや安定性については、 tuning(7) を調べることをお奨めします。 pae(4) は、FreeBSD の PAE サポートに関する最新の情報を含んでいます。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。