Date: Thu, 18 Apr 2013 22:01:19 +0000 (UTC) From: Ryusuke SUZUKI <ryusuke@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r41458 - head/ja_JP.eucJP/books/handbook/kernelconfig Message-ID: <201304182201.r3IM1JQG025771@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ryusuke Date: Thu Apr 18 22:01:18 2013 New Revision: 41458 URL: http://svnweb.freebsd.org/changeset/doc/41458 Log: - Merge the following from the English version: r40833 -> r41375 head/ja_JP.eucJP/books/handbook/kernelconfig/chapter.xml Modified: head/ja_JP.eucJP/books/handbook/kernelconfig/chapter.xml Modified: head/ja_JP.eucJP/books/handbook/kernelconfig/chapter.xml ============================================================================== --- head/ja_JP.eucJP/books/handbook/kernelconfig/chapter.xml Thu Apr 18 20:49:14 2013 (r41457) +++ head/ja_JP.eucJP/books/handbook/kernelconfig/chapter.xml Thu Apr 18 22:01:18 2013 (r41458) @@ -3,7 +3,7 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: r40833 + Original revision: r41375 $FreeBSD$ --> @@ -43,20 +43,18 @@ <para>カーネルは &os; オペレーティングシステムの中核をなすものです。 カーネルは、メモリ管理、セキュリティ制御の強制、ネットワーク、 ディスクアクセスなどを担っています。 - &os; はどんどん動的に構成することができるようになっていますが、 - まだ、時にはカーネルコンフィグレーションをやり直して、 - 再構築する必要があります。</para> + &os; は動的に構成することができるようになっていますが、 + まだ、時にはカスタムカーネルを設定してコンパイルする必要があります。</para> <para>この章では、以下のことを扱っています。</para> <itemizedlist> <listitem> - <para>なぜカスタムカーネルの構築が必要になることがあるのか。</para> + <para>いつカスタムカーネルの構築が必要になるか。</para> </listitem> <listitem> - <para>コンフィグレーションファイルの書き方や、 - 既存のコンフィグレーションファイルの置き換え。</para> + <para>カーネルコンフィグレーションファイルのカスタマイズの方法。</para> </listitem> <listitem> @@ -72,50 +70,49 @@ </listitem> </itemizedlist> - <para>この章で表示されているコマンドは、 + <para>この章で表示されているすべてのコマンドは、 <username>root</username> 権限で実行する必要があります。</para> </sect1> <sect1 id="kernelconfig-custom-kernel"> <title>なぜカスタムカーネルを作るか?</title> - <para>伝統的に、&os; のカーネルは <quote>モノリシック</quote> - (monolithic) カーネルと呼ばれるものでした。 - これは、カーネルが単一の巨大なプログラムで、 + <para>伝統的に、&os; は <quote>モノリシック</quote> + (monolithic) カーネルを使っていました。 + このカーネルは、単一の巨大なプログラムで、 扱えるデバイスは固定されていて、 カーネルの振る舞いを変えたければ新しいカーネルを構築して、 コンピュータを再起動して新しいカーネルを動かさなれければならなかったということです。</para> - <para>今日では &os; は、 - カーネルのかなりの機能が必要に応じて動的にカーネルに組み込んだり外したりできるモジュールにおかれているモデルへと、 - 急速に移行しています。こうしてカーネルは - (ノート PC の PCMCIA カードのように) - 突如使えるようになったハードウェアに対応したり、 - カーネルが作成された時点では必要なかった新たな機能を取り入れられるようになります。 + <para>今日では、&os; + カーネルのかなりの機能はモジュールに含まれるようになり、 + 必要に応じて動的にカーネルに組み込んだり外したりできるようになりました。 + この移行により、動いているカーネルが新しいハードウェアに迅速に対応したり、 + カーネルに新たな機能を取り入れられるようになります。 このようなカーネルは、モジュラ (modular) カーネルと呼ばれます。</para> <para>しかしながら、いまだにいくらかは静的にカーネルを構成する必要があります。 - ある場合においては、機能がカーネルとあまりに密接に結びついているため、 - 動的に組み込むことができません。ほかには、 - 単に誰もその機能に対する組み込み可能なカーネルモジュールを書く時間をとっていないだけということもあります。</para> - - <para>システムに合わせたカーネルの構築は、高度な知識を持つ - BSD ユーザが避けて通ることのできない最も重要な通過儀礼の 1 つです。 - この作業は、多くの時間を必要としますが、あなたの &os; - システムに多くの利益をもたらします。 + 機能がカーネルとあまりに密接に結びついているため、 + 動的に組み込むことができない場合があるためです。 + セキュリティ的に、カーネルモジュールを読み込んだり外すことができず、 + 必要となる機能を静的にカーネルにコンパイルしなければならない場合もあります。</para> + + <para>システムに合わせたカーネルを構築することは、多くの場合、 + 高度な知識を持つ BSD ユーザが避けて通ることのできない通過儀礼です。 + この作業は多くの時間を必要としますが、&os; + システムに利益をもたらします。 広範囲のハードウェアをサポートしなければならない - <filename>GENERIC</filename> カーネルとは異なり、 - システムに合わせたカーネルは - <emphasis>あなたの</emphasis> PC - のハードウェアのみをサポートします。これは、 + <filename>GENERIC</filename> カーネルとは異なり、カスタムカーネルは、 + 使用しているコンピュータのハードウェアのみをポートするように、 + 必要のない機能を省くことができます。これは、 次にあげるような利益をもたらします。</para> <itemizedlist> <listitem> <para>素早く起動します。 - カーネルはあなたのシステム上にあるハードウェアしか検出を行わないので、 - あなたのシステムの起動にかかる時間を劇的に短くできます。 + カーネルはシステム上にあるハードウェアしか検出しないので、 + システムの起動にかかる時間を短くできます。 </para> </listitem> @@ -129,13 +126,12 @@ アプリケーションはその容量分のメモリを使用できないので、 これは重要なことです。 したがって、メモリが少ないシステムでは、 - カーネルの再構築は大変重要です。</para> + カーネルの再構築は重要です。</para> </listitem> <listitem> <para>追加のハードウェアをサポートします。 - システムに合わせたカーネルは、サウンドカードなど - <filename>GENERIC</filename> + カスタムカーネルは、<filename>GENERIC</filename> カーネルに存在しないデバイスのサポートを追加することができます。</para> </listitem> </itemizedlist> @@ -157,12 +153,10 @@ コンピュータのハードウェア一覧を作成すると良いでしょう。 もし、&os; 以外のオペレーティングシステムがすでにインストールされているのであれば、 現在インストールされているオペレーティングシステムの設定を調べることで、 - 簡単に一覧を作成できます。 + 一覧を作成できます。 たとえば、µsoft; の <application>デバイスマネージャ</application> - は、インストールされているデバイスに関する重要な情報を持っています。 - <application>デバイスマネージャ</application> は、 - コントロールパネルから開くことが出来ます。</para> + は、インストールされているデバイスに関する情報を持っています。</para> <note> <para>µsoft.windows; のバージョンによっては、 @@ -173,12 +167,12 @@ <para>もし他のオペレーティングシステムがコンピュータにインストールされていないのであれば、 管理者はこれらの情報を手動で収集する必要があります。 - 情報を集める方法のひとつが、&man.dmesg.8; ユーティリティと - &man.man.1; コマンドを用いる方法です。 + 情報を集める方法のひとつが、&man.dmesg.8; と + &man.man.1; を用いる方法です。 &os; のほとんどのデバイスドライバにはマニュアルページが用意され、 対応しているハードウェアの一覧を提供しています。 また、起動時には検出されたハードウェアの一覧が表示されます。 - たとえば、以下の行は、<devicename>psm</devicename> + たとえば、以下の行は、&man.psm.4; ドライバがマウスを検出したことを示しています。</para> <programlisting>psm0: <PS/2 Mouse> irq 12 on atkbdc0 @@ -192,10 +186,10 @@ psm0: model Generic PS/2 mouse, device I <para>場合によっては、<command>dmesg</command> が起動時の検出結果ではなく、 システムメッセージだけを表示することがあります。 このような場合には、<filename>/var/run/dmesg.boot</filename> - ファイルで出力を確認できます。</para> + で出力を確認できます。</para> <para>ハードウェアを見つけるためのもうひとつの方法は、 - より冗長な出力を行う &man.pciconf.8; ユーティリティを用いる方法です。 + より冗長な出力を行う &man.pciconf.8; を用いる方法です。 たとえば、以下のようになります。</para> <programlisting>ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 @@ -208,16 +202,16 @@ psm0: model Generic PS/2 mouse, device I を用いて得られ、 <devicename>ath</devicename> ドライバがワイヤレスイーサネットデバイスにあることを示しています。 - <command>man <replaceable>ath</replaceable></command> を実行すると - &man.ath.4; のマニュアルページが表示されます。</para> + <command>man <replaceable>ath</replaceable></command> を実行して + &man.ath.4; を読んでください。</para> <para>&man.man.1; を <option>-k</option> フラグで実行すると、 - 有用な情報を得ることができます。上のケースでは以下のようになります。</para> + 有用な情報を得ることができます。たとえば、 + ある特定の単語を含むマニュアルページの一覧を表示するには、 + 以下のようになります。</para> <screen>&prompt.root; man -k <replaceable>Atheros</replaceable></screen> - <para>ある特定の単語を含むマニュアルページの一覧が表示されます。</para> - <programlisting>ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting> @@ -238,11 +232,11 @@ ath_hal(4) - Atheros Hardw <para>カーネルモジュールは、 <filename class="directory">/boot/kernel</filename> - ディレクトリにあります。&man.kldload.8; によって、 + にあり、&man.kldload.8; によって、 すでに実行中のカーネルに動的に読み込まれているモジュールもあるかもしれません。 すべてというわけではありませんが、ほとんどのカーネルドライバには、 - モジュールやマニュアルページが用意されています。 - たとえば、前の章で例として出た <devicename>ath</devicename> + 読み込み可能なモジュールやマニュアルページが用意されています。 + たとえば、&man.ath.4; ワイヤレスイーサネットドライバのマニュアルページには以下の記述があります。</para> <programlisting>Alternatively, to load the driver as a module at boot time, place the @@ -250,27 +244,21 @@ following line in &man.loader.conf.5;: if_ath_load="YES"</programlisting> - <para>ここで示された手順通り、 - <filename>/boot/loader.conf</filename> ファイルに - <literal>if_ath_load="YES"</literal> 行を追加すると、 + <para><filename>/boot/loader.conf</filename> に + <literal>if_ath_load="YES"</literal> を追加すると、 起動時にモジュールが読み込まれるようになります。</para> - <para>ただし、特定のサブシステムであったり、 - とても重要なドライバのような場合には、 - 対応するモジュールが存在しないこともあります。 - たとえば、Fast File System (<acronym>FFS</acronym>) は、 - カーネルでのみ設定可能なオプションです。 - ネットワークサポート (INET) も同様です。 - 残念ながら、ドライバが必要かどうかを知るには、 - モジュールそのものを調べる方法しかありません。</para> + <para>ただし、対応するモジュールが存在しないこともあります。 + 特定のサブシステムでは、ほとんど多くの場合存在しません。 + ドライバが必要かどうかを知る一つの方法は、 + モジュールそのものを調べることです。</para> <warning> - <para>カーネルを壊すことは簡単で、 - デバイスやオプションのサポートをビルドから削除するだけで壊れてしまうことがあります。 + <para>デバイスやオプションのサポートを外すことは簡単で、 + その結果、カーネルを壊すことがあります。 たとえば、&man.ata.4; ドライバをカーネルコンフィグレーションファイルから除くと、 - <acronym>ATA</acronym> ディスクドライバを用いるシステムは、 - <filename>loader.conf</filename> に記述がないかぎり起動しません。 - もし、確信がないのであれば、モジュールを確認し、 + <acronym>ATA</acronym> ディスクドライバを用いるシステムは起動しません。 + 確信が持てないものについては、 カーネルにサポートを残したままにしてください。</para> </warning> </sect1> @@ -286,50 +274,51 @@ following line in &man.loader.conf.5;: <para>カーネルを構築するには、&os; のすべてのソースファイルが必要です。</para> </note> - <para>まず、 - カーネル再構築に必要なディレクトリをざっと見てみましょう。 - ここではディレクトリはすべて - <filename>/usr/src/sys</filename> 以下の相対位置で示します。 - また、パス名 <filename>/sys</filename> からもアクセス可能です。 + <para>カーネルを構築する場所は、<filename + class="directory">/usr/src/sys</filename> です。 ここには、カーネルの各部分を構成するサブディレクトリがいくつもあります。 - しかし、私たちの目的で最も重要なのは - <filename><replaceable>arch</replaceable>/conf</filename> です。 - ここで、あなたのシステムに合わせてカーネルコンフィグレーションを編集します。 - それから <filename>compile</filename>ディレクトリ、 - ここはカーネルが作られる場所です。 - <replaceable>arch</replaceable> は、<filename>i386</filename>, - <filename>amd64</filename>, <filename>ia64</filename>, - <filename>powerpc</filename>, <filename>sparc64</filename> - または <filename>pc98</filename> - (日本で普及している PC のための開発ブランチ) のいずれかを表します。 + その中には、カーネルコンフィグレーションファイルのある <filename + class="directory"><replaceable>arch</replaceable>/conf</filename>、 + および、カーネルを作る場所である <filename + class="directory">compile</filename> も含まれています。 + <replaceable>arch</replaceable> には、 + サポートされている各アーキテクチャ、<filename + class="directory">i386</filename>, <filename + class="directory">amd64</filename>, <filename + class="directory">ia64</filename>, <filename + class="directory">powerpc</filename>, <filename + class="directory">sparc64</filename> および <filename + class="directory">pc98</filename> のサブディレクトリがあります。 各アーキテクチャのディレクトリ内部にあるファイルはすべてそのアーキテクチャでのみ使用されます。 残りのコードは、アーキテクチャに依存しない、 - &os; が移植されるすべてのプラットフォームで共有されるコードです。 + すべてのプラットフォームで共有されるコードです。 サポートされているデバイス、ファイルシステム、オプションが、 それぞれのサブディレクトリに分かれている、 という論理的な構成に注意してください。</para> <para>この章で示されるコマンドの例は、 - i386 アーキテクチャを使用していることを仮定しています。 - 他のアーキテクチャを使用しているのであれば、 + i386 アーキテクチャを仮定しています。 + 他のアーキテクチャのシステムでは、 使用しているアーキテクチャに適したパス名に変更してください。</para> <note> - <para>もし、あなたのシステムに <filename>/usr/src/</filename> - ディレクトリが存在しない (または、空である) のであれば、 - カーネルのソースがインストールされていません。 - すべてのソースツリーをインストールするもっとも簡単な方法は、<xref - linkend="synching"/> で説明した &man.csup.1; を用いる方法です。 + <para>もし、<filename class="directory">/usr/src/</filename> + が存在していなかったり、空であれば、 + カーネルのソースはインストールされていません。 + ソースをインストールするもっとも簡単な方法は、<xref + linkend="synching"></xref> で説明した + <application>svn</application> を用いる方法です。 以下のように、<filename>/usr/src/sys/</filename> へのシンボリックリンクも作成してください。</para> <screen>&prompt.root; <userinput>ln -s /usr/src/sys /sys</userinput></screen> </note> - <para>つぎに、 - <filename><replaceable>arch</replaceable>/conf</filename> に移動して、 + <para>つぎに、<application>cd</application> を用いて <filename + class="directory"><replaceable>arch</replaceable>/conf</filename> + に移動し、 <filename>GENERIC</filename> - コンフィグレーションファイルをカーネルに与えたい名前にコピーしてください。 + コンフィグレーションファイルをカスタムカーネルの名前にコピーしてください。 たとえば次のようにします。</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf</userinput> @@ -342,19 +331,15 @@ following line in &man.loader.conf.5;: と呼ぶことにします。</para> <tip> - <para>カーネルコンフィグレーションファイルを、直に - <filename>/usr/src</filename> の下に置くのはよい考えとはいえません。 - なにか問題が起きたときに、 - <filename>/usr/src</filename> を消してやり直したいと思うかもしれません。 - その後で、あなたがカスタマイズしたカーネルコンフィグレーションファイルを消してしまったことに気づくのに時間はかからないでしょう。 - また、<filename>GENERIC</filename> ファイルを直接編集しないでください。 - なぜなら、編集後に - <link linkend="updating-upgrading">ソースツリーをアップデート</link> - すると、ファイルが上書きされ、変更点が失われてしまいます。</para> - - <para>カーネルコンフィグレーションファイルは他の場所において、 - <filename><replaceable>i386</replaceable></filename> - ディレクトリにシンボリックリンクを張る方がよいでしょう。</para> + <para>カーネルコンフィグレーションファイルの編集を終えたら、 + ファイルのバックアップを <filename + class="directory">/usr/src</filename> 以外の場所に保存してください。 + <filename>GENERIC</filename> ファイルを直接編集しないでください。</para> + + <para>もしくは、カーネルコンフィグレーションファイルは他の場所において、 + <filename + class="directory"><replaceable>i386</replaceable></filename> + にシンボリックリンクを張る方法もあります。</para> <para>たとえば、次のようにします。</para> @@ -364,45 +349,37 @@ following line in &man.loader.conf.5;: &prompt.root; <userinput>ln -s /root/kernels/<replaceable>MYKERNEL</replaceable></userinput></screen> </tip> - <para>では、<filename><replaceable>MYKERNEL</replaceable></filename> - をあなたの好きなエディタで編集してください。もし、 - システムをインストールしたばかりならば、利用できるエディタは - <application>vi</application> - だけかもしれません。ここでは使い方の説明はしませんが、 + <para><filename><replaceable>MYKERNEL</replaceable></filename> + をテキストエディタで編集してください。 + デフォルトのエディタは <application>vi</application> で、 + 使い方については、 <link linkend="bibliography">参考図書</link> - にあるような多くの本で詳しく説明 されていますので、 - そちらを参照してください。&os; にはより簡単なエディタとして + にあるような多くの本で詳しく説明されています。 + そちらを参照してください。初心者に対してより簡単なエディタである <application>ee</application> - があります。初心者の方であればこちらをエディタに選ぶとよいでしょう。 + も利用できます。 まずファイルの最初の方のコメント行を編集し、 - あなたのコンフィグレーションに合せて変更した点などを記述して - <filename>GENERIC</filename> と区別がつくようにしておきましょう。</para> - <indexterm><primary>SunOS</primary></indexterm> - - <para>もし &sunos; や他の BSD - オペレーティングシステムでカーネルの再構築をしたことがあれば、 - このファイルはとても親しみやすいでしょう。しかし、DOS のようなその他の - オペレーティングシステムしか知らない人から見れば、 - <filename>GENERIC</filename> - コンフィグレーションファイルはとてもなじみにくいものかもしれません。 - そのような場合は、 - <link linkend="kernelconfig-config"> コンフィグレーションファイル - </link> の節をゆっくりと注意深く読んでください。</para> + 設定内容や <filename>GENERIC</filename> + からの変更点を記述しておきましょう。</para> + + <para>もし、<filename>GENERIC</filename> + コンフィグレーションファイルが親しみにくいのであれば、<link + linkend="kernelconfig-config">コンフィグレーションファイル</link> + の節をゆっくりと注意深く読んでください。</para> <note> - <para>&os; プロジェクトの最新のソースファイルと、<link - linkend="updating-upgrading">あなたのソースツリーを同期させている</link> - 場合、アップデートを行う際には、必ず - <filename>/usr/src/UPDATING</filename> - ファイルをチェックしてください。 + <para>最新のソースと <link + linkend="svn">ソースツリーを同期</link> したら、 + 何らかのアップデートを行う前に、<emphasis>必ず</emphasis> + <filename>/usr/src/UPDATING</filename> をチェックしてください。 このファイルには、 アップデートされたソースコードに関する重要な問題や特別に注意すべき点がすべて書かれています。 - <filename>/usr/src/UPDATING</filename> は常にあなたの &os; - のソースと同期しているので、 - ハンドブックの記述よりも内容が新しいことがあります。</para> + <filename>/usr/src/UPDATING</filename> は常に &os; + のソースのバージョンと同期しているので、 + ハンドブックの記述よりも新しい内容を含んでいます。</para> </note> - <para>さあ、カーネルのソースコードをコンパイルしましょう。</para> + <para>編集を保存したら、カーネルのソースコードをコンパイルしましょう。</para> <procedure> <title>カーネルの構築</title> @@ -413,13 +390,14 @@ following line in &man.loader.conf.5;: <step> <para><filename - class="directory">/usr/src</filename> ディレクトリに移動します。</para> + class="directory">/usr/src</filename> ディレクトリに + <command>cd</command> で移動します。</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen> </step> <step> - <para>カーネルをコンパイルします。</para> + <para>カスタムコンフィグレーションファイルの名前を指定して新しいカーネルをコンパイルします。</para> <screen>&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen> </step> @@ -433,47 +411,50 @@ following line in &man.loader.conf.5;: <tip> <para>デフォルトでは、カスタムカーネルを構築すると - <emphasis>すべて</emphasis> のカーネルモジュールが同時に構築されます。 + <emphasis>すべて</emphasis> のカーネルモジュールが再構築されます。 カーネルのアップデートをより早く行いたい、または、 - カスタムモジュールのみを構築したいといった場合には、 + カスタムモジュールのみを構築したいといった場合は、 カーネルの構築を開始する前に、以下のように <filename>/etc/make.conf</filename> を編集してください。</para> <programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting> - <para>この変数は、すべてのモジュールのかわりに構築するモジュールを指定します。</para> + <para>この変数は、すべてのモジュールを構築するというデフォルトの設定にかわり、 + 構築するモジュール一覧を指定します。</para> <programlisting>WITHOUT_MODULES = linux acpi sound ntfs</programlisting> <para>この変数は、構築を行わないトップレベルのモジュールを指定します。 - カーネルの構築のプロセスに関する、他の有益な変数については、 + カーネルの構築プロセスに関連する、他の変数については、 &man.make.conf.5; を参照してください。</para> </tip> <indexterm> - <primary><filename class="directory">/boot/kernel.old</filename></primary> + <primary><filename + class="directory">/boot/kernel.old</filename></primary> </indexterm> - <para>新しいカーネルは <filename class="directory">/boot/kernel</filename> ディレクトリに + <para>新しいカーネルは <filename + class="directory">/boot/kernel</filename> に <filename>/boot/kernel/kernel</filename> という名前でコピーされ、 今までのカーネルは <filename>/boot/kernel.old/kernel</filename> という名前へ変更されます。 では、新しいカーネルを使うために、システムをシャットダウンして再起動してください。 - うまく行かない場合は、この章の終りの + うまく行かない場合は、 <link linkend="kernelconfig-trouble">問題が起きた場合には</link> - を参照してください。有用な情報があるかもしれません。この章の新しいカーネルが + や、新しいカーネルが <link linkend="kernelconfig-noboot">起動しない</link> - 場合のリカバリの方法を注意深く読んでおいてください。</para> + 場合のリカバリの方法を参照してください。</para> <note> <para>ブートローダ (&man.loader.8;) や設定などのブートプロセスに関係する他のファイルは、 - <filename>/boot</filename> に置かれます。 + <filename class="directory">/boot</filename> に置かれます。 サードパーティ製やカスタムモジュールを <filename class="directory">/boot/kernel</filename> に置くこともできますが、 コンパイルしたカーネルとモジュールを同期しておく必要があります。 - コンパイルしたカーネルとモジュールが対応しない場合には、 - システムが不安定になったり、正常に動作しない可能性があります。</para> + コンパイルしたカーネルとモジュールが対応していないと、 + システムが不安定になる可能性があります。</para> </note> </sect1> @@ -504,9 +485,9 @@ following line in &man.loader.conf.5;: <literal>#</literal> に続くものはすべてコメントとして扱われ、 無視されます。ここでは、それぞれのキーワードについて <filename>GENERIC</filename> に出てくる順番で説明します。 - <anchor id="kernelconfig-options"/>アーキテクチャ依存のおびただしい数のオプション一覧については、 - <filename>GENERIC</filename> と同じディレクトリにある - <filename>NOTES</filename> ファイルをご覧ください。 + アーキテクチャ依存のおびただしい数のオプション一覧については、 + そのアーキテクチャの <filename>GENERIC</filename> + と同じディレクトリにある <filename>NOTES</filename> ご覧ください。 アーキテクチャに依存しないオプションについては、 <filename>/usr/src/sys/conf/NOTES</filename> ファイルをご覧ください。</para> @@ -514,10 +495,8 @@ following line in &man.loader.conf.5;: ディレクティブを利用できます。 コンフィグレーションファイルに他のファイルを取り込むことができるので、 すでに存在するファイルに対する小さな変更を簡単に維持できます。 - たとえば、オプションやドライバを少しだけ追加した - <filename>GENERIC</filename> カーネルを必要としているのであれば、 - <literal>include</literal> を用いて、以下のように GENERIC - からの差分だけの記述でコンフィグレーションファイルを作成できます。</para> + たとえば、オプションやドライバの追加が少しだけの場合には、 + 以下のように GENERIC からの差分だけの管理が可能になります。</para> <programlisting>include GENERIC ident MYKERNEL @@ -528,20 +507,18 @@ options IPFIREWALL_DEFAULT_TO_AC options IPDIVERT </programlisting> - <para>多くの管理者は、 - コンフィグレーションファイルを個別に管理していたこれまでの手法にくらべ、 - このモデルが大変有益だと考えるでしょう。 - ローカルのコンフィグレーションファイルには、<filename>GENERIC</filename> - とローカルとの差分のみが記述されており、 - <filename>GENERIC</filename> がアップグレードされて新しい機能が追加されると、 + <para>この方法では、ローカルのコンフィグレーションファイルには、 + ローカルにある <filename>GENERIC</filename> + カーネルとの差分が記述されています。 + アップグレードが行われると、 + <filename>GENERIC</filename> に追加された新しい機能は、 (<literal>nooptions</literal> や <literal>nodevice</literal> によって外されない限り) ローカルのカーネルにも反映されます。 この章のここから先は、典型的なコンフィグレーションファイルの中身と、 さまざまなオプションやデバイスの役割について説明します。</para> <note> - <para>利用可能なすべてのオプションを含むファイルを - (通常はテスト目的で) 構築するには、 + <para>利用可能なすべてのオプションを含むファイルを構築するには、 以下のコマンドを <username>root</username> 権限で実行してください。</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf && make LINT</userinput></screen> @@ -566,9 +543,9 @@ options IPDIVERT <programlisting>machine i386</programlisting> <para>マシンのアーキテクチャです。これは - <literal>amd64</literal>, - <literal>i386</literal>, <literal>ia64</literal>, - <literal>pc98</literal>, <literal>powerpc</literal> または + <literal>amd64</literal>, <literal>i386</literal>, + <literal>ia64</literal>, <literal>pc98</literal>, + <literal>powerpc</literal> または <literal>sparc64</literal> のいずれかでなければなりません。</para> @@ -580,15 +557,12 @@ options IPDIVERT cpu I586_CPU cpu I686_CPU</programlisting> - <para>上記のオプションは、あなたのシステムの CPU タイプを指定します。 - 複数の行を書いても構いません - (例: <literal>I586_CPU</literal> とすべきか - <literal>I686_CPU</literal> とすべきかはっきり分からない場合)。 - しかしながら、カスタムカーネルを作る場合、あなたの持つ CPU - だけを指定するのがベストです。 - もしあなたの CPU がどのタイプか分からない場合、 + <para>このオプションは、CPU タイプを指定します。 + 複数の CPU エントリを書いても構いませんが、 + カスタムカーネルを作る場合、使用する CPU だけを指定するのがベストです。 + CPU のタイプを判断するには、 <filename>/var/run/dmesg.boot</filename> - ファイルを確認して起動メッセージを調べるとよいでしょう。</para> + にある起動メッセージを調べるとよいでしょう。</para> <indexterm> <primary>カーネルオプション</primary> @@ -597,35 +571,29 @@ cpu I686_CPU</programlisting> <programlisting>ident GENERIC</programlisting> - <para>ここにはカーネルの識別名を書きます。 - (前記の例の <literal><replaceable>MYKERNEL</replaceable></literal> のように) - あなたがカーネルに付けたい名前に書き換えて下さい。 - <literal>ident</literal> に書いた名前はカーネルを起動する時に表示されるので、 - (実験的なカーネルを構築する場合など) - 普段使っているカーネルと区別したいときは、 - 新しいカーネルに違う名前を付けると良いでしょう。</para> + <para>これはカーネルの識別名です。 + たとえば、<literal><replaceable>MYKERNEL</replaceable></literal> + のように、新しいカーネルに付けたい名前に書き換えて下さい。 + <literal>ident</literal> に書いた値はカーネルを起動する時に表示されます。</para> <programlisting>#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices.</programlisting> <para>デバイスドライバのオプションは &man.device.hints.5; を用いて設定されます。 - &man.loader.8; は、起動時にデフォルトで - <filename>/boot/device.hints</filename> を確認します。 + デフォルトの場所は + <filename>/boot/device.hints</filename> です。 <literal>hints</literal> オプションを用いると、 - カーネルにこれらのヒント情報を静的に加えてコンパイルできます。 - その場合には、<filename>/boot</filename> に - <filename>device.hints</filename> - ファイルを作成する必要はありません。</para> + カーネルにこれらのヒント情報を静的に加えてコンパイルするので、 + <filename>device.hints</filename> を作成する必要はありません。</para> <!-- XXX: Add a comment here that explains when compiling hints into the kernel is a good idea and why. --> <programlisting>makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting> - <para>通常の &os; のビルド過程では、<option>-g</option> - オプションとともにカーネルを構築すると、デバッグ情報を含みます。 - このオプションは &man.gcc.1; がデバッグ情報を生成するようにします。</para> + <para>このオプションは &man.gcc.1; + がデバッグ情報を生成するようにします。</para> <programlisting>options SCHED_ULE # ULE scheduler</programlisting> @@ -634,16 +602,14 @@ cpu I686_CPU</programlisting> <programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting> - <para>カーネル空間において、優先度の高いスレッドがプリエンプションできるようにします。 + <para>優先度の高いカーネルスレッドがプリエンプションできるようにします。 このオプションを使うことでインタラクティブになり、 待ち状態になるよりすぐに実行状態になるようスレッドの割り込みを許可します。</para> <programlisting>options INET # InterNETworking</programlisting> <para>ネットワークのサポート。 - ネットワークに接続する予定がなくてもこのオプションは残して下さい。 - 殆どのプログラムは少なくともループバックネットワーク - (あなたの PC の中でのネットワーク接続) を必要としますので、 + ほとんどのプログラムは少なくともループバックネットワークを必要とするので、 基本的にこの行は必須です。</para> <programlisting>options INET6 # IPv6 communications protocols</programlisting> @@ -653,7 +619,7 @@ cpu I686_CPU</programlisting> <programlisting>options FFS # Berkeley Fast Filesystem</programlisting> <para>これは標準のハードドライブファイルシステムです。 - ハードディスクから起動する場合は残して下さい。</para> + システムがハードディスクから起動する場合は残して下さい。</para> <programlisting>options SOFTUPDATES # Enable FFS Soft Updates support</programlisting> @@ -661,22 +627,23 @@ cpu I686_CPU</programlisting> ディスクへの高速な書き込みを支援します。 カーネルがこの機能を提供していても、 特定のディスクに対してはこのオプションを有効にする必要があります。 - &man.mount.8; の出力を見て、使用しているディスクで + &man.mount.8; の出力を見て、 Soft Updates が有効になっているかどうかを確認してください。 <literal>soft-updates</literal> オプションが見当たらなければ、 - (現在使用しているファイルシステムには) &man.tunefs.8; や、 - (新規のファイルシステムには) &man.newfs.8; - コマンドで有効にする必要があります。</para> + 現在使用しているファイルシステムには &man.tunefs.8;、 + 新規のファイルシステムには &man.newfs.8; + コマンドで有効にできます。</para> <programlisting>options UFS_ACL # Support for access control lists</programlisting> - <para>このオプションは、カーネルのアクセス制御リストのサポートを有効にします。 + <para>このオプションは、カーネルのアクセス制御リスト + (<acronym>ACL</acronym>) のサポートを有効にします。 この機能は拡張属性および <acronym>UFS2</acronym> が有効になっていることに依存し、 - <xref linkend="fs-acl"/> で機能の説明が行われています。 + <xref linkend="fs-acl"></xref> で機能の説明が行われています。 <acronym>ACL</acronym> はデフォルトで有効にされています。 もし、これまでにファイルシステムで有効にしていたのであれば、 カーネルの中で無効にすべきではありません。 - なぜなら、無効にするとアクセス制御リストが削除され、 + なぜなら、無効にすると ACL が削除され、 ファイルの保護が予想できない方法で行われるためです。</para> <programlisting>options UFS_DIRHASH # Improve performance on big directories</programlisting> @@ -703,10 +670,10 @@ cpu I686_CPU</programlisting> options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT</programlisting> - <para>ネットワークファイルシステム。 - &unix; ファイルサーバから TCP/IP + <para>ネットワークファイルシステム (<acronym>NFS</acronym>)。 + <acronym>NFS</acronym> ファイルサーバから TCP/IP を介してパーティションをマウントするのでない限り、 - これらの行をコメントアウトして下さい。</para> + これらの行をコメントアウトできます。</para> <indexterm> <primary>カーネルオプション</primary> @@ -715,34 +682,34 @@ options NFS_ROOT # NFS <programlisting>options MSDOSFS # MSDOS Filesystem</programlisting> <para>&ms-dos; ファイルシステム。 - 起動時に DOS でフォーマットされたハードドライブをマウントするのでない限り、 - この行は安全にコメントアウトできます。 + 起動時に DOS でフォーマットされたハードドライブのパーティションをマウントするのでなければ、 + この行はコメントアウトできます。 この機能は最初に DOS パーティションをマウントする時に自動的にロードされます。 - 又、優秀な <filename role="package">emulators/mtools</filename> - を使ってもマウント、 - アンマウントすることなしに DOS フロッピーにアクセスすることができます。 - (<literal>MSDOSFS</literal> は必要としません)</para> + <filename role="package">emulators/mtools</filename> package + を使うと、マウント、アンマウントすることなしに DOS + フロッピーにアクセスすることができ、 + <literal>MSDOSFS</literal> を必要としません。</para> <programlisting>options CD9660 # ISO 9660 Filesystem</programlisting> <para>CD-ROM 用の ISO 9660 ファイルシステム。 - もしあなたが CD-ROM ドライブを持っていないか、 - 時々データ CD をマウントするだけならこの行をコメントアウトしても大丈夫です - (データ CD を最初にマウントする時、自動的にロードされます)。 + もしシステムが CD-ROM ドライブを持っていないか、 + ときどきデータ CD をマウントするだけなら、 + データ CD を最初にマウントする時に自動的にロードされるので、 + この行をコメントアウトしてください。 音楽 CD はこのファイルシステムを必要としません。</para> <programlisting>options PROCFS # Process filesystem (requires PSEUDOFS)</programlisting> <para>プロセスファイルシステム。 - これは <filename>/proc</filename> にマウントされる、 - ファイルシステムの <quote>ふりをする</quote> もので、 - &man.ps.1; のようなプログラムに、 - どんなプロセスが走っているかに関するより多くの情報を提供させる事ができます。 + これは <filename class="directory">/proc</filename> + にマウントされるもので、他のプログラムに、 + どんなプロセスが走っているかについて、 + より多くの情報を提供する事ができます。 ほとんどのデバッグおよびモニタリングツールが <literal>PROCFS</literal> なしで起動するので、 ほとんどの環境では <literal>PROCFS</literal> を必要としません。 - 新しくインストールした場合には、 - デフォルトではプロセスファイルシステムをマウントしません。</para> + デフォルトのインストールではこのファイルシステムをマウントしません。</para> <programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting> @@ -752,7 +719,7 @@ options NFS_ROOT # NFS <programlisting>options GEOM_PART_GPT # GUID Partition Tables.</programlisting> <para><ulink url="http://en.wikipedia.org/wiki/GUID_Partition_Table">GUID - パーティションテーブル</ulink> に対応します。 + パーティションテーブル</ulink> (<acronym>GPT</acronym>) に対応します。 GPT では、1 つのディスクに数多くのパーティション (標準の構成では最大 128) を作成可能です。</para> @@ -769,8 +736,8 @@ options NFS_ROOT # NFS 古いバージョンの &os; でコンパイルされた古いシステムコールインターフェースを用いるアプリケーションを利用する場合に必要とされます。 古いアプリケーションを実行するすべての &i386; システムで、このオプションの利用を推奨します。 - 5.X でのみサポートされている ia64 や &sparc64; といったプラットフォームでは、 - このオプションは必要ありません。</para> + &os; 4.X より後にサポートされた ia64 や &sparc64; + といったプラットフォームでは、このオプションは必要ありません。</para> <programlisting>options COMPAT_FREEBSD5 # Compatible with &os;5</programlisting> @@ -786,7 +753,7 @@ options NFS_ROOT # NFS <programlisting>options COMPAT_FREEBSD7 # Compatible with &os;7</programlisting> - <para>このオプションは、&os; 8 以降において + <para>このオプションは、&os; 8 以降において、 &os; 7.X でコンパイルされた &os; 7.X のシステムコールインタフェースを用いるアプリケーションを利用する場合に必要とされます。</para> @@ -794,9 +761,9 @@ options NFS_ROOT # NFS <para>この行は、カーネルがそれぞれの SCSI 機器を検出する前に 5 秒間待つようにします。 - あなたが IDE ドライブしか持たないなら無視して結構です。 - そうでないなら、起動時間を短くするために、この数字を小さく変更できます。 - 勿論、そうした場合に &os; が SCSI + システムが IDE ドライブしか持たないなら無視するか、 + 起動時間を短くするために、この数字を小さく変更できます。 + もし、&os; が SCSI 機器を認識しなくなってしまったら、もう一度数字を増やしてください。</para> <programlisting>options KTRACE # ktrace(1) support</programlisting> @@ -808,7 +775,8 @@ options NFS_ROOT # NFS <para>このオプションは System V 共有メモリを提供します。 この機能の最も一般的な使用方法は X における XSHM 拡張です。 多くのグラフィックス重視のプログラムではこの機能を自動的に描画のスピードアップに利用します。 - X を使っているなら、これを含めておいた方がいいでしょう。</para> + <application>Xorg</application> がインストールされているなら、 + これを含めてください。</para> <programlisting>options SYSVMSG # SYSV-style message queues</programlisting> @@ -822,21 +790,21 @@ options NFS_ROOT # NFS あまり使われませんが、カーネルサイズは数百バイト大きくなるだけです。</para> <note> - <para>&man.ipcs.1; コマンドを <option>-p</option> - オプションで実行すると、これらの System V + <para>&man.ipcs.1; を <option>-p</option> + で実行すると、これらの System V 機能を使っているプロセスのリストを表示します。</para> </note> <programlisting>options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting> <para>リアルタイム拡張が 1993 &posix; に追加されました。 - Ports Collection の内のいくつかのアプリケーション - (たとえば <application>&staroffice</application>) - はこれを使っています。</para> + Ports Collection + の内のいくつかのアプリケーションはこれを使っています。</para> <programlisting>options KBD_INSTALL_CDEV # install a CDEV entry in /dev</programlisting> - <para>キーボードデバイスノードを <filename>/dev</filename> + <para>キーボードデバイスノードを <filename + class="directory">/dev</filename> に作成するにはこのオプションが必要です。</para> <programlisting>options ADAPTIVE_GIANT # Giant mutex is adaptive.</programlisting> @@ -847,14 +815,14 @@ options NFS_ROOT # NFS 個々の資源をプロテクトするロック機構に移行しています。 <literal>ADAPTIVE_GIANT</literal> オプションは、 スピンしている適応型 mutex のセットに Giant を追加します。 - すなわち、スレッドが Giant mutex をロックしようとする際、 + スレッドが Giant mutex をロックしようとする際、 他の CPU 上のスレッドによってすでにロックされていた場合には、 最初のスレッドは実行状態のままロックが解除されるのを待ちます。 通常、スレッドは実行の機会をスリープ状態で待ちます。 もし、よくわからないのであれば、そのままにしておいてください。</para> <note> - <para>&os; 8.0-RELEASE 以降では + <para>&os; 8.0-RELEASE からは、 (<literal>NO_ADAPTIVE_MUTEXES</literal> オプションでコンパイルを行って非適合型にするのでなければ) すべての mutex はデフォルトで適合型になりました。 @@ -868,26 +836,26 @@ options NFS_ROOT # NFS </indexterm> <programlisting>device apic # I/O APIC</programlisting> - <para>apic デバイスは、I/O APIC の割り込みを有効にします。 + <para>このデバイスは、I/O APIC の割り込みを有効にします。 ユニプロセッサおよび SMP カーネル両方で使用できますが、 SMP カーネルでは必須です。 マルチプロセッサに対応するには <literal>options SMP</literal> を追加してください。</para> <note> - <para>apic デバイスは i386 アーキテクチャにのみ存在します。 + <para>このデバイスは i386 アーキテクチャにのみ存在します。 他のアーキテクチャでは、この行を含まないでください。</para> </note> <programlisting>device eisa</programlisting> - <para>あなたが EISA マザーボードを持っている場合、 + <para>システムが EISA マザーボードを持っている場合、 この行を含めて下さい。これは EISA バスに接続されているすべてのデバイスの自動検出と設定を可能にします。</para> <programlisting>device pci</programlisting> - <para>あなたが PCI マザーボードを持っている場合、この行を含めて下さい。 + <para>システムが PCI マザーボードを持っている場合、この行を含めて下さい。 これは PCI カードの自動検出と PCI から ISA バスへのゲートウエイを可能にします。</para> @@ -959,8 +927,8 @@ device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50</programlisting> - <para>SCSI コントローラです。 - あなたのシステムにないデバイスはコメントアウトして下さい。 + <para>このセクションでは、 + システムにない SCSI コントローラはコメントアウトして下さい。 もし IDE しかないシステムならこれらすべてを削除できます。 <literal>*_REG_PRETTY_PRINT</literal> 行は、 対応するドライバに対するデバッグオプションです。</para> @@ -974,15 +942,14 @@ device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE)</programlisting> - <para>SCSI 周辺機器です。 - あなたが持っていないデバイスはコメントアウトして下さい。 + <para>システムにない SCSI 周辺機器はコメントアウトしてください。 もし IDE しか持っていないならこれらを完全に削除できます。</para> <note> <para>USB &man.umass.4; ドライバ、およびその他のいくつかのドライバは、 本当の SCSI デバイスではないにもかかわらず、 SCSI サブシステムを利用します。 - そのため、そのようなドライバがカーネルコンフィグレーションに含まれている場合には、 + そのようなドライバがカーネルコンフィグレーションに含まれている場合には、 SCSI サポートを削除しないでください。</para> </note> @@ -1009,59 +976,56 @@ device pst # Promise Sup device twe # 3ware ATA RAID</programlisting> <para>サポートされる RAID コントローラです。 - これらのどれも持っていない場合、 - すべてをコメントアウト又は削除することができます。</para> + システムがこれらのどれも持っていない場合には、 + すべてをコメントアウトもしくは削除してください。</para> <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller</programlisting> - <para>キーボードコントローラ (<literal>atkbdc</literal>) - は AT キーボード及び PS/2 スタイルポインティングデバイスの + <para><literal>atkbdc</literal> キーボードコントローラは + AT キーボードおよび PS/2 スタイルポインティングデバイスの I/O サービスを提供します。 - キーボードドライバ (<literal>atkbd</literal>) と PS/2 - ポインティングデバイスドライバ (<literal>psm</literal>) + &man.atkbd.4; および &man.psm.4; はこのコントローラを必要とします。</para> <programlisting>device atkbd # AT keyboard</programlisting> - <para><literal>atkbd</literal> ドライバ。 - <literal>atkbdc</literal> コントローラと協調して動作し、 + <para>&man.atkbd.4; ドライバ。 + &man.atkbdc.4; コントローラと協調して動作し、 AT キーボードコントローラに接続された AT 84 キーボードや AT 拡張キーボードへのアクセスを提供します。</para> <programlisting>device psm # PS/2 mouse</programlisting> - <para>あなたのマウスが PS/2 + <para>マウスが PS/2 マウスポートに接続するタイプならこのデバイスを使って下さい。</para> <programlisting>device kbdmux # keyboard multiplexer</programlisting> <para>標準のキーボードマルチプレクサのサポート。 - 2 つ以上のキーボードを用いる予定がないのであれば、 + システムが 2 つ以上のキーボードを用いなければ、 この行を削除してもかまいません。</para> <programlisting>device vga # VGA video card driver</programlisting> - <para>ビデオカードドライバです。</para> + <para>&man.vga.4; ビデオカードドライバです。</para> <programlisting> device splash # Splash screen and screen saver support</programlisting> - <para>起動時にスプラッシュスクリーンが表示されます! - スクリーンセーバもこのデバイスを必要とします。</para> + <para>起動時のスプラッシュスクリーンおよびスクリーンセーバが必要とします。</para> <programlisting># syscons is the default console driver, resembling an SCO console device sc</programlisting> - <para><literal>sc</literal> は SCO に類似したデフォルトのコンソールドライバです。 + <para>&man.sc.4; は SCO に類似したデフォルトのコンソールドライバです。 殆どのフルスクリーンのプログラムは <filename>termcap</filename> のようなターミナルデータベールライブラリにアクセスするので、 <literal>sc</literal> を使うか <literal>VT220</literal> 互換のコンソールドライバである <literal>vt</literal> を使うかは重要ではありません。 ログイン時、このコンソールでフルスクリーンプログラムが動かないときは - <envar>TERM</envar> 変数を <literal>scoansi</literal> に設定して下さい。 - </para> + <envar>TERM</envar> 変数を <literal>scoansi</literal> に設定して下さい。</para> <programlisting># Enable this for the pcvt (VT220 compatible) console driver #device vt @@ -1071,14 +1035,15 @@ device sc</programlisting> <para>これは VT220 互換のコンソールドライバで、 VT100/102 と後方互換性があります。 <literal>sc</literal> とハード的に互換性がないラップトップでも問題なく動きます。 - ここでもログイン時に <envar>TERM</envar> 変数を + ログイン後、<envar>TERM</envar> を <literal>vt100</literal> 又は <literal>vt220</literal> と設定して下さい。 - このドライバは、<literal>sc</literal> デバイス用の + <literal>vt100</literal> + は仮想的にすべてのプラットフォームで有効であるため、 + <literal>sc</literal> デバイス用の <filename>termcap</filename> や <filename>terminfo</filename> - のエントリが無い、ネットワーク上の多くの異なったマシンに接続する際にも有用です *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304182201.r3IM1JQG025771>