Merge the following from the English version:

1.159 -> 1.164	doc/ja_JP.eucJP/books/handbook/kernelconfig/chapter.sgml

Reference:   [doc-jp-work 2201]
This commit is contained in:
Ryusuke SUZUKI 2011-08-14 08:26:03 +00:00
parent 81302fb6da
commit 94ed04ebef
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=37552

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.159
Original revision: 1.164
$FreeBSD$
-->
@ -293,13 +293,6 @@
ルしているなら、手順 1 にしたがってください。</para>
</listitem>
<listitem>
<para>4.0 より前の &os; を使っていて、
<command>make buildworld</command> を行って &os;&nbsp;4.0
以上にアップグレードしないなら、
手順 1 にしたがってください。</para>
</listitem>
<listitem>
<para>(<literal>IPFIREWALL</literal> オプションを追加するなど
のように) ソースコードを更新せずに新しいカーネルを構築するな
@ -395,15 +388,20 @@
上で述べた伝統的な方法で構築してください。</para>
</note>
<note>
<para>&os;&nbsp;4.2 とそれ以前の場合は、
<literal>KERNCONF=</literal>
ではなく
<literal>KERNEL=</literal>
としなければなりません。
2001 年 2 月 2 日より前の 4.2-STABLE では
<literal>KERNCONF=</literal> を認識しません。</para>
</note>
<tip>
<para>デフォルトでは、カスタムカーネルを構築すると
<emphasis>すべて</emphasis> のカーネルモジュールが同時に構築されます。
カーネルのアップデートをより早く行いたい、または、
カスタムモジュールのみを構築したいといった場合には、
カーネルの構築を開始する前に、以下のように <filename>/etc/make.conf</filename>
を編集してください。</para>
<programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
<para>この変数は、すべてのモジュールのかわりに構築するモジュールの一覧を設定します。
カーネルの構築のプロセスに関する、他の有益な変数については、
&man.make.conf.5; を参照してください。</para>
</tip>
<indexterm>
<primary><filename class="directory">/boot/kernel.old</filename></primary>
@ -421,29 +419,15 @@
場合のリカバリの方法を注意深く読んでおいてください。</para>
<note>
<para>&os; 4.X やそれより以前のバージョンでは、カーネルは
<filename>/kernel</filename>、モジュールは
<filename class="directory">/modules</filename> にインストールされ、
今までのカーネルは <filename>/kernel.old</filename>
にバックアップされます。
ブート &man.loader.8; や設定などのブートプロセスに関係する他のファイルは、
<para>ブートローダ (&man.loader.8;)
や設定などのブートプロセスに関係する他のファイルは、
<filename>/boot</filename> に置かれます。
サードパーティ製やカスタムモジュールを
<filename class="directory">/boot/modules</filename> に置くこともできますが、
<filename class="directory">/boot/kernel</filename> に置くこともできますが、
コンパイルしたカーネルとモジュールを同期しておく必要があります。
コンパイルしたカーネルとモジュールが対応しない場合には、
システムが不安定になったり、正常に動作しなくなる可能性があります。</para>
</note>
<note>
<para>&os;&nbsp;4.X 以前のバージョンを使っていて、
(サウンドカードなど) 新しいデバイスを追加した場合は、
使う前に <filename class="directory">/dev</filename>
ディレクトリにデバイスノードを追加しなければならないかもしれません。
詳しくは、この章で後ほど出てくる
<link linkend="kernelconfig-nodes">デバイスノードの作成</link>
をご覧ください。</para>
</note>
</sect1>
<sect1 id="kernelconfig-config">
@ -463,12 +447,7 @@
<primary>カーネル</primary>
<secondary>NOTES</secondary>
</indexterm>
<indexterm>
<primary>kernel</primary>
<secondary>LINT</secondary>
</indexterm>
<indexterm><primary>NOTES</primary></indexterm>
<indexterm><primary>LINT</primary></indexterm>
<indexterm>
<primary>カーネル</primary>
<secondary>コンフィグレーションファイル</secondary>
@ -488,33 +467,11 @@
<filename>/usr/src/sys/conf/NOTES</filename> ファイルをご覧ください。</para>
<note>
<para>&os;&nbsp; 4.X には <filename>NOTES</filename> は存在しません。
<filename>GENERIC</filename>
のオプションやデバイスについての詳細な説明については、
かわりに <filename>LINT</filename> ファイルをご覧ください。
4.X における <filename>LINT</filename> は、
カスタムカーネルを構築する際のカーネルオプションのリファレンスとして、
また、できる限り数多くのオプションでカーネルをきめ細かく調整可能にするという 2 つの目的を持ちます。
このようなコンフィグレーションは、
カーネルの他の場所と衝突する可能性のある新しいコードをテストする時や、
現存のコードを変更する際に役に立った (現在も役に立っている)
という背景を持っています。
しかしながら、カーネルコンフィグレーションの枠組みは、
5.X で大きく変更されました。
ひとつの例としては、ドライバのコンフィグレーションのオプションは、
起動時に変更可能になり、また動的に読み込まれるように
<literal>hints</literal> ファイルに移動しました。
<filename>LINT</filename> は、
これらのヒント情報を持つことはもはや出来ませんでした。
このような理由や他の理由により、<filename>LINT</filename> ファイルは
<filename>NOTES</filename> という名前に変更されました。
現在も存在し、保持されているのは、ユーザが利用しやすいように利用可能なオプションを文書化するという、
最初の理由のためです。</para>
<para>利用可能なすべてのオプションを含むファイルを
(通常はテスト目的で) 構築するには、
以下のコマンドを <username>root</username> 権限で実行してください。</para>
<para>&os; 5.X や最新のバージョンでは、
<filename>LINT</filename> ファイルを以下のように構築して生成できます。</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf && make LINT</userinput></screen>
<screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf &amp;&amp; make LINT</userinput></screen>
</note>
<indexterm>
@ -611,8 +568,7 @@ cpu I686_CPU</programlisting>
<programlisting>#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.</programlisting>
<para>&os; 5.X、およびそれより新しいバージョンでは、
デバイスドライバのオプションは &man.device.hints.5;
<para>デバイスドライバのオプションは &man.device.hints.5;
を用いて設定されます。
&man.loader.8; は、起動時にデフォルトで
<filename>/boot/device.hints</filename> を確認します。
@ -753,18 +709,16 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
ファイルシステムの <quote>ふりをする</quote> もので、
&man.ps.1; のようなプログラムに、どんなプロセスが走っているか
に関するより多くの情報を提供させる事ができます。
&os; 5.X 以降では、ほとんどのデバッグおよびモニタリングツールが
ほとんどのデバッグおよびモニタリングツールが
<literal>PROCFS</literal> なしで起動するので、
ほとんどの環境では <literal>PROCFS</literal> を必要としません。
&os; 4.X とは異なり、&os; 5.X を新しくインストールした場合には、
新しくインストールした場合には、
デフォルトではプロセスファイルシステムをマウントしません。
さらに、6.X-CURRENT のカーネルで <literal>PROCFS</literal> を使う場合には、
以下のように <literal>PSEUDOFS</literal> のサポートを含む必要があります。</para>
<programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting>
<para>&os; 4.X では、<literal>PSEUDOFS</literal> を利用できません。</para>
<programlisting>options GEOM_GPT # GUID Partition Tables.</programlisting>
<para>このオプションは、
@ -1036,9 +990,7 @@ device atkbdc # AT keyboard controller</programlisting>
device splash # Splash screen and screen saver support</programlisting>
<para>起動時にスプラッシュスクリーンが表示されます!
スクリーンセーバもこのデバイスを必要とします。
&os;&nbsp;4.X では、<literal>pseudo-device splash</literal>
を使ってください。</para>
スクリーンセーバもこのデバイスを必要とします。</para>
<programlisting># syscons is the default console driver, resembling an SCO console
device sc</programlisting>
@ -1212,7 +1164,7 @@ device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (<quote>Starfire</quote>)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device sk # SysKonnect SK-984x &amp; SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
@ -1259,8 +1211,7 @@ device loop # Network loopback</programlisting>
<hostid>localhost</hostid> (すなわち
<hostid role="ipaddr">127.0.0.1</hostid>) に対して telnet や FTP
で接続すると、このデバイスを通して戻ってきます。
これは<emphasis>必須</emphasis>です。
&os;&nbsp;4.X では、<literal>pseudo-device loop</literal> を使ってください。</para>
これは<emphasis>必須</emphasis>です。</para>
<programlisting>device mem # Memory and kernel memory devices</programlisting>
@ -1279,31 +1230,26 @@ device loop # Network loopback</programlisting>
<programlisting>device ether # Ethernet support</programlisting>
<para><literal>ether</literal> はイーサネットカードを持っている場合に
のみ必要です。汎用イーサネットプロトコルコードを含みます。
&os;&nbsp;4.X では <literal>pseudo-device ether</literal> を使ってください。</para>
のみ必要です。汎用イーサネットプロトコルコードを含みます。</para>
<programlisting>device sl # Kernel SLIP</programlisting>
<para><literal>sl</literal> は SLIP サポートを行います。
SLIP は設定のより簡単な、モデム-モデム間の接続にはより適していて
より高機能な PPP に殆ど取って代わられています。
&os;&nbsp;4.X では、<literal>pseudo-device sl</literal> を使ってください。</para>
より高機能な PPP に殆ど取って代わられています。</para>
<programlisting>device ppp # Kernel PPP</programlisting>
<para>これはダイアルアップ接続用のカーネル PPP サポートです。
他にも <literal>tun</literal> を利用し、デマンドダイアリングのような
柔軟性と機能を提供するユーザーランドのアプリケーションとして
実装された PPP が存在します。
&os;&nbsp;4.X では、<literal>pseudo-device ppp</literal> を使ってください。
</para>
実装された PPP が存在します。</para>
<programlisting>device tun # Packet tunnel.</programlisting>
<para>これはユーザーランド PPP ソフトウエアにより利用されます。
詳細はこの本の <link linkend="userppp">PPP</link> セクションを参照して下さい。
&os;&nbsp;4.X では、<literal>pseudo-device tun</literal> を使ってください。
</para>
詳細はこの本の <link linkend="userppp">PPP</link>
セクションを参照して下さい。</para>
<programlisting><anchor id="kernelconfig-ptys">
device pty # Pseudo-ttys (telnet etc)</programlisting>
@ -1316,37 +1262,22 @@ device pty # Pseudo-ttys (telnet etc)</programlisting>
<application>Emacs</application>
のようなアプリケーションにより利用されます。</para>
<note><para>
&os;&nbsp;4.X では、<literal>pseudo-device pty
<replaceable>数字</replaceable></literal> を使う必要があります。
<literal>pty</literal> の後の <replaceable>数字</replaceable> は、
生成される <literal>pty</literal>
の数を示します。もし同時にデフォルトの 16 より多くの
<application>xterm</application> ウィンドウやリモートログインが
必要な場合、必要に応じてこの数字を増やして下さい。
最大は 256 です。</para></note>
<programlisting>device md # Memory <quote>disks</quote></programlisting>
<para>メモリディスク疑似デバイス。&os;&nbsp;4.X では
<literal>pseudo-device md</literal> を使ってください。</para>
<para>メモリディスク疑似デバイス。</para>
<programlisting>device gif # IPv6 and IPv4 tunneling</programlisting>
<para>この行は IPv6 over IPv4 トンネル、IPv4 over IPv6 トンネル、
IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。
&os;&nbsp;4.4 からは、<literal>gif</literal> デバイスは
<literal>gif</literal> デバイスは
<quote>auto-cloning (自動複製)</quote> し、
<literal>pseudo-device gif</literal> を使う必要があります。
それより前のバージョンの &os;&nbsp;4.X では、
<literal>pseudo-device gif 4</literal> のように数値が必要です。</para>
必要に応じてデバイスノードを作成します。</para>
<programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting>
<para>この疑似デバイスは自分宛に送られたパケットを受け取り、
IPv4/IPv6 変換デーモンに渡します。
&os;&nbsp;4.X では、
<literal>pseudo-device faith 1</literal> を使ってください。</para>
IPv4/IPv6 変換デーモンに渡します。</para>
<programlisting># The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
@ -1358,9 +1289,7 @@ device bpf # Berkeley packet filter</programlisting>
ブロードキャストネットワーク上ですべてのパケットを拾うことのできる
promiscuous モードに設定できるようにします。
これらのパケットはディスクに取り込むこともできますし、
&man.tcpdump.1; を使ってチェックをすることもできます。
&os;&nbsp;4.X では、
<literal>pseudo-device bpf</literal> を使ってください。</para>
&man.tcpdump.1; を使ってチェックをすることもできます。</para>
<note>
<para>&man.bpf.4; デバイスは、&man.dhclient.8;
@ -1423,8 +1352,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
を用いて 64 ギガバイトまでのメモリの構成を可能にします。
&os; は、<option>PAE</option>
カーネルコンフィグレーションオプションを用いることで PAE に対応します。
&os; 4.X では 4.9-RELEASE から、
&os; 5.X では 5.1-RELEASE から利用できます。
現在すべてのバージョンの &os; で利用できます。
Intel のメモリアーキテクチャの制限により、
4 ギガバイト以上または以下の区別をしません。
4 ギガバイト以上に割り当てられたメモリは、
@ -1462,7 +1390,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
<para>&man.bus.dma.9; インタフェースを用いないデバイスドライバは、
<acronym>PAE</acronym> が有効なカーネルにおいてデータの破損を引き起こす可能性があるため、
利用することは推奨されません。
そのため &os; 5.X で提供される <filename>PAE</filename>
そのため &os; で提供される <filename>PAE</filename>
カーネルコンフィグレーションファイルでは、<acronym>PAE</acronym>
が有効なカーネルで動作することが知られていないすべてのドライバが外されています。</para>
</listitem>
@ -1495,85 +1423,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
</sect2>
</sect1>
<sect1 id="kernelconfig-nodes">
<title>デバイスノードを作る</title>
<indexterm><primary>デバイス ノード</primary></indexterm>
<indexterm>
<primary><command>MAKEDEV</command></primary>
</indexterm>
<para><emphasis>&os;&nbsp;5.0 以降を動かしているなら、
この節を飛ばして構いません。そのバージョンでは &man.devfs.5;
を用いて、ユーザに意識させずにデバイスノードを割り当てています。</emphasis></para>
<para>カーネル内のほとんどすべてのデバイスは対応する
<quote>node</quote> エントリが <filename>/dev</filename>
ディレクトリにあります。これらのノードは普
通のファイルのように見えますが、実際にはプログラムがデバイスに
アクセスするのに用いるカーネル内への特別なエントリです。
シェルスクリプトである
<filename>/dev/MAKEDEV</filename>はオペレーティング
システムを最初にインストールする時に実行され、サポートされてい
る大部分のデバイスのノードを作ります。しかし、
<emphasis>すべての</emphasis>
ノードが作られるわけではありませんので
新しいデバイスのサポートを加える時は対応するエントリがこのディ
レクトリにあるかどうか確認してもしなければ、作ってください。
以下に例を示します。</para>
<para>IDE CD-ROMのサポートをカーネルに加えるとします。次の行
を加えます。</para>
<programlisting>device acd0</programlisting>
<para>これにしたがって、<filename>/dev</filename>ディレクトリに
<filename>acd0</filename> で始まるエントリをさがしてください。
1文字が後ろにつくかもしれません。
後ろについた文字が <literal>c</literal> であるか、先頭に
<literal>r</literal> のつくエントリは <quote>raw</quote>
デバイスを示します。
それらのファイルがないことが明らかになったとします。そこで
<filename>/dev</filename>
ディレクトリに移動して次のようにタイプします。</para>
<indexterm>
<primary><command>MAKEDEV</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen>
<para>スクリプトの実行が終ったら <filename>/dev</filename>に
<filename>acd0c</filename> と <filename>racd0c</filename>
エントリがあることを確認してください。これによ
り正しく実行されたことがわかります。</para>
<para>サウンドカードの場合、以下のコマンドで対応する
エントリが作成されます:</para>
<screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
<note>
<para>サウンドカードのようなデバイスのノードを作る場合で、もし他
の人がマシンにアクセスするようであれば、そのデバイスを
<filename>/etc/fbtab</filename>
ファイルに追加して外部からのアクセスから
保護するのが望ましいでしょう。このファイルの詳細については
&man.fbtab.5; を参照してください。</para>
</note>
<para><filename>GENERIC</filename>
に含まれていないデバイスはエントリがありませんから、以上
の簡単な手順をおこなうことになります。</para>
<note>
<para>すべての SCSI コントローラは同じ <filename>/dev</filename>
の エントリを使用しますのでノードを作る必要はありません。
またネッ トワークカードと SLIP/PPP 疑似デバイスは
<filename>/dev</filename> にはエント
リがありませんのでこれらについても作る必要がありません。</para>
</note>
</sect1>
<sect1 id="kernelconfig-trouble">
<title>問題が起きた場合には</title>
@ -1613,29 +1462,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
</listitem>
</varlistentry>
<varlistentry>
<term>新しいカーネルのインストールの失敗</term>
<listitem>
<para>カーネルが無事コンパイルできたのに、インストールに失敗
(<command>make install</command> または
<command>make installkernel</command> に失敗)
したら、最初に確認すべきことは、システムがセキュアレベル 1
以上で動いていないかどうかです (&man.init.8; 参照)。
カーネルのインストール時には、カーネルから immutable
(変更不可) フラグを外して、
新しい方に変更不可フラグを設定しようとします。セキュアレベル 1
以上では、システム内のどのファイルからも変更不可フラグを外せないため、
カーネルのインストールはセキュアレベル 0
以下で行わなければなりません。</para>
<para>上記は、&os; 4.X 以前のバージョンのみに適応可能です。
&os; 5.X およびそれ以降のバージョンでは、カーネルの immutable (変更不可)
フラグを有効にしないので、カーネルのインストールの失敗は、
より本質的な問題があることを示しています。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>カーネルが起動しない<anchor
id="kernelconfig-noboot"></term>
@ -1646,9 +1472,10 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
には利用できないカーネルから復帰する洗練されたメカニズムがあります。
それは、&os;
のブートローダで起動したいカーネルを選択するだけです。
システムが起動メニューにおいて 10 からカウントダウンしている時に、この機能を使えます。
<keycap>Enter</keycap> キー以外の任意のキーを押して、
<command>unload</command> と入力してから、
システムの起動メニューが表示されている時に、この機能を使えます。
6 番目の
<quote>Escape to a loader prompt</quote> オプションを選択してください。
プロンプトで <command>unload kernel</command> と入力してから、
<command>boot /boot/<replaceable>kernel.old</replaceable>/kernel</command>
か他の正常に起動するカーネルを入力してください。
カーネルの再設定をおこなう場合にはいつも、
@ -1682,27 +1509,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
<screen>&prompt.root; <userinput>mv /boot/kernel /boot/kernel.bad</userinput>
&prompt.root; <userinput>mv /boot/<replaceable>kernel.good</replaceable> /boot/kernel</userinput></screen>
<para>&os; 5.X より前のバージョンでは、
<command>make</command>
でインストールされたカーネルのファイルを
(別のカーネルに戻すために)
<quote>アンロック</quote> するための特別のコマンドは</para>
<screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen>
<para>です。これができないのなら、&man.securelevel.8; を 0
より大きい値にしているのかもしれません。
<filename>/etc/rc.conf</filename> の
<literal>kern_securelevel</literal> を
<literal>-1</literal> に変更して再起動してください。新し
いカーネルに満足したら、前の設定に戻してよいでしょう。</para>
<para>また、
新しい置き換えたカーネルあるいは重要ファイ
ルを動かしたり変更されないように
<quote>ロック</quote> するには 次のようにします。</para>
<screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen>
</note>
</listitem>
</varlistentry>
@ -1713,8 +1519,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl
<listitem>
<para>システムユーティリティと異る
バージョンのカーネルをインストールした場合、例えば
5.X のカーネルを 4.X
システム上にインストールするような場合、
-CURRENT のカーネルを -RELEASE 上にインストールするような場合、
&man.ps.1; や &man.vmstat.8; のような多くの
システムステータスコマンドは動かなくなります。
カーネルと同じバージョンのソースツリーで