カスタムカーネルのコンフィグレーションファイルを作成し、 カスタムカーネルを構築するには、 FreeBSD の全ソースツリーがまずインストールされている必要があります。
もし /usr/src/
が存在していなかったり、空であれば、
カーネルのソースはインストールされていません。
「Subversion を使う」 で説明した
Subversion
を使ってソースをインストールしてください。
ソースをインストールしたら、
/usr/src/sys
を確認して下さい。
このディレクトリには、いくつものサブディレクトリがあります。
その中には、サポートされている各アーキテクチャ
amd64
,
i386
,
powerpc
および
sparc64
のサブディレクトリがあります。
各アーキテクチャのディレクトリ内部にあるファイルはすべてそのアーキテクチャでのみ使用されます。
残りのコードは、アーキテクチャに依存しない、
すべてのプラットフォームで共有されるコードです。
サポートされている各アーキテクチャには、
conf
サブディレクトリがあり、
そのアーキテクチャ用の GENERIC
カーネルコンフィグレーションファイルが用意されています。
この GENERIC
は編集しないでください。
かわりに、このファイルを別名でコピーし、コピーを編集してください。
慣習として、この名前はすべて大文字でつづられます。もし、
いくつかの異なるハードウェアの FreeBSD マシンを扱うなら、
この名前にホスト名を含めるとよいでしょう。ここでは、例として
MYKERNEL
という名前の
amd64
アーキテクチャ用の GENERIC
コンフィグレーションファイルのコピーを作成します。
#
cd /usr/src/sys/
amd64
/conf#
cp GENERIC
MYKERNEL
これで、
を ASCII テキストエディタで編集できます。
初心者に対してより簡単なエディタである
ee も FreeBSD
とともにインストールされていますが、
デフォルトのエディタは vi です。MYKERNEL
コンフィグレーションファイルのフォーマットはシンプルです。
各行はデバイスやサブシステム、引数、または簡単な説明を含んでいます。
#
に続くテキストはすべてコメントとして扱われ、
無視されます。
カーネルからデバイスもしくはサブシステムのサポートを外すには、
対応する行の最初に #
を入れてください。
理解していない行に対しては、#
を追加したり削除しないでください。
デバイスやオプションのサポートを外すことは簡単で、 その結果、カーネルを壊すことがあります。 たとえば ata(4) ドライバをカーネルコンフィグレーションファイルから除くと、 ATA ディスクドライバを用いているシステムは起動しません。 確信が持てないものについては、 カーネルにサポートを残したままにしてください。
このファイルで与えられる説明の他に、
そのアーキテクチャの GENERIC
と同じディレクトリにある
NOTES
にも説明があります。
アーキテクチャに依存しないオプションについては、
/usr/src/sys/conf/NOTES
をご覧ください。
カーネルコンフィグレーションファイルの編集を終えたら、
ファイルのバックアップを /usr/src
以外の場所に保存してください。
または、カーネルコンフィグレーションファイルは他の場所において、 シンボリックリンクを張る方法もあります。
#
cd /usr/src/sys/amd64/conf
#
mkdir /root/kernels
#
cp GENERIC /root/kernels/MYKERNEL
#
ln -s /root/kernels/MYKERNEL
コンフィグレーションファイルでは 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/
arch
/conf && make LINT
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。