OSDN Git Service

589dd969cb9d7b6e45145c0884d26d2043a468d7
[lfsbookja/lfsja-git.git] / src / chapter10 / kernel.ch
1 %
2 % This is part of LFSbookja package.
3 %
4 % This is a CTIE change file for the original XML source of the LFSbook.
5 %
6 @x
7 <?xml version="1.0" encoding="ISO-8859-1"?>
8 @y
9 <?xml version="1.0" encoding="UTF-8"?>
10 @z
11
12 @x
13     <para>The Linux package contains the Linux kernel.</para>
14 @y
15     <para>Linux パッケージは Linux カーネルを提供します。 </para>
16 @z
17
18 @x
19     <title>Installation of the kernel</title>
20 @y
21     <title>&InstallationOf1;カーネル&InstallationOf2;</title>
22 @z
23
24 @x
25     <para>Building the kernel involves a few steps&mdash;configuration,
26     compilation, and installation. Read the <filename>README</filename> file
27     in the kernel source tree for alternative methods to the way this book
28     configures the kernel.</para>
29 @y
30     <para>
31     カーネルの構築は、カーネルの設定、コンパイル、インストールの順に行っていきます。
32     本書が行っているカーネル設定の方法以外については、カーネルソースツリー内にある <filename>README</filename> ファイルを参照してください。
33     </para>
34 @z
35
36 @x
37     <para>Prepare for compilation by running the following command:</para>
38 @y
39     <para>
40     コンパイルするための準備として以下のコマンドを実行します。
41     </para>
42 @z
43
44 @x
45     <para>This ensures that the kernel tree is absolutely clean. The
46     kernel team recommends that this command be issued prior to each
47     kernel compilation. Do not rely on the source tree being clean after
48     un-tarring.</para>
49 @y
50     <para>
51     これによりカーネルソースが完全にクリーンなものになります。
52     カーネル開発チームは、カーネルコンパイルするなら、そのたびにこれを実行することを推奨しています。
53     tar コマンドにより伸張しただけのソースではクリーンなものにはなりません。
54     </para>
55 @z
56
57 @x
58     <para>There are several ways to configure the kernel options. Usually,
59     This is done through a menu-driven interface, for example:</para>
60 @y
61     <para>
62     カーネルオプションの設定方法にはいくつかあります。
63     通常は以下に示すように、メニュー形式のインターフェースを通じて行います。
64     </para>
65 @z
66
67 @x
68       <title>The meaning of optional make environment variables:</title>
69 @y
70       <title>追加する make 環境変数の意味:</title>
71 @z
72
73 @x
74           <para>This establishes the locale setting to the one used on the
75           host.  This may be needed for a proper menuconfig ncurses interface
76           line drawing on a UTF-8 linux text console.</para>
77 @y
78           <para>
79           これはホストのロケール設定を指示するものです。
80           この設定は UTF-8 での表示設定がされたテキストコンソールにて menuconfig の ncurses による行表示を適切に行うために必要となります。
81           </para>
82 @z
83
84 @x
85           <para>If used, be sure to replace
86           <replaceable>&lt;host_LANG_value&gt;</replaceable> by the value of
87           the <envar>$LANG</envar> variable from your host.  You can
88           alternatively use instead the host's value of <envar>$LC_ALL</envar>
89           or <envar>$LC_CTYPE</envar>.</para>
90 @y
91           <para>
92           <replaceable>&lt;host_LANG_value&gt;</replaceable> の部分は、ホストの <envar>$LANG</envar> 変数の値に置き換えてください。
93           <envar>$LC_ALL</envar> あるいは <envar>$LC_CTYPE</envar> の値を設定することもできます。
94           </para>
95 @z
96
97 @x make menuconfig
98           <para>This launches an ncurses menu-driven interface. For other
99           (graphical) interfaces, type <command>make help</command>.</para>
100 @y
101           <para>
102           これは ncurses によるメニュー形式のインターフェースを起動します。
103           これ以外の(グラフィカルな)インターフェースについては <command>make help</command> を入力して確認してください。
104           </para>
105 @z
106
107 @x
108     <para>For general information on kernel configuration see <ulink
109     url="&hints-root;kernel-configuration.txt"/>.  BLFS has some information
110     regarding particular kernel configuration requirements of packages outside
111     of LFS at <ulink
112     url="&blfs-book;longindex.html#kernel-config-index"/>.  Additional
113     information about configuring and building the kernel can be found at
114     <ulink url="http://www.kroah.com/lkn/"/> </para>
115 @y
116     <para>
117     カーネルの設定方法に関する一般的な情報が <ulink url="&hints-root;kernel-configuration.txt"/> にあるので参照してください。
118     BLFS では LFS が取り扱わない各種パッケージに対して、必要となるカーネル設定項目を説明しています。
119     <ulink url="&blfs-book;longindex.html#kernel-config-index"/> を参照してください。
120     さらに詳しくカーネルの構築や設定を説明している <ulink url="http://www.kroah.com/lkn/"/> もあります。
121     </para>
122 @z
123
124 @x
125       <para>A good starting place for setting up the kernel configuration is to
126       run <command>make defconfig</command>. This will set the base
127       configuration to a good state that takes your current system architecture
128       into account.</para>
129 @y
130       <para>
131       カーネル設定を行うにあたって、分かりやすいやり方として <command>make defconfig</command> を実行する方法があります。
132       これを実行することで基本的な設定がなされ、現在のシステム構成が考慮された、より良い設定が得られるかもしれません。
133       </para>
134 @z
135
136 @x
137       <para>Be sure to enable/disable/set the following features or the system might
138       not work correctly or boot at all:</para>
139 @y
140       <para>
141       以下の機能項目についての有効、無効、設定状況を確認してください。
142       不適切である場合にはシステムが正常動作しなかったり起動できなかったりするかもしれません。
143       </para>
144 @z
145
146 @x
147       <para>While "The IPv6 Protocol" is not strictly
148       required, it is highly recommended by the systemd developers.</para>
149 @y
150       <para>
151       "The IPv6 Protocol" については厳密には不要としても良いものですが、システム開発者は強く推奨しているものです。</para>
152 @z
153
154 @x
155     <para revision="sysv">There are several other options that may be desired
156     depending on the requirements for the system. For a list of options needed
157     for BLFS packages, see the <ulink
158     url="&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index">BLFS
159     Index of Kernel Settings</ulink>
160     (&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index).</para>
161 @y
162     <para revision="sysv">
163     システムに特定の機能性が必要になれば、それだけ多くのオプションが必要となります。
164     例えば BLFS パッケージにて必要となるオプションについては <ulink 
165     url="&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index">BLFS 
166     Index of Kernel Settings</ulink> 
167     (&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index)
168     を参照してください。
169     </para>
170 @z
171
172 @x
173       <para>If your host hardware is using UEFI and you wish to boot the
174       LFS system with it, you should adjust some kernel configuration
175       following <ulink url="&blfs-book;postlfs/grub-setup.html#uefi-kernel">
176       the BLFS page</ulink>.</para>
177 @y
178       <para>
179       ホストが UEFI を利用していて、これを使って LFS システムのブートを行いたい場合は、<ulink
180       url="&blfs-book;postlfs/grub-setup.html#uefi-kernel">
181       BLFS ページ</ulink> に従って、カーネル設定を調整する必要があります。
182       </para>
183 @z
184
185 @x
186       <title>The rationale for the above configuration items:</title>
187 @y
188       <title>上の設定項目の説明</title>
189 @z
190
191 @x Enable kernel headers through /sys/kernel/kheaders.tar.xz
192           <para>This will require <command>cpio</command> building the kernel.
193           <command>cpio</command> is not installed by LFS.</para>
194 @y
195           <para>
196           これは、 カーネルビルドにあたって <command>cpio</command> を必要とします。
197           <command>cpio</command> は LFS ではインストールしません。
198           </para>
199 @z
200
201 @x Support for uevent helper
202           <para>Having this option set may interfere with device
203           management when using Udev/Eudev. </para>
204 @y
205           <para>
206           本項目を有効にすることで、デバイス管理を Udev/Eudev により行ないます。
207           </para>
208 @z
209
210 @x Maintain a devtmpfs
211           <para>This will create automated device nodes which are populated by the
212           kernel, even without Udev running.  Udev then runs on top of this,
213           managing permissions and adding symlinks.  This configuration
214           item is required for all users of Udev/Eudev.</para>
215 @y
216           <para>
217           本項目は、カーネルにより事前登録される自動化デバイスノードを生成します。
218           これは Udev が動作していなくても行われます。
219           Udev はその上で起動し、パーミッション管理やシンボリックリンクの追加を行います。
220           Udev/Eudev を利用する場合には本項目を有効にすることが必要です。
221           </para>
222 @z
223
224 @x Automount devtmpfs at /dev
225           <para>This will mount the kernel view of the devices on /dev
226           upon switching to root filesystem just before starting
227           init.</para>
228 @y
229           <para>
230           これは、カーネルから見たデバイス情報を /dev 上にマウントするものです。
231           init が起動される直前にルートファイルシステムに切り替えられます。
232           </para>
233 @z
234
235 @x
236     <para>Alternatively, <command>make oldconfig</command> may be more
237     appropriate in some situations. See the <filename>README</filename>
238     file for more information.</para>
239 @y
240     <para>
241     上のコマンドではなく、状況によっては <command>make oldconfig</command> を実行することが適当な場合もあります。
242     詳細についてはカーネルソース内の <filename>README</filename> ファイルを参照してください。
243     </para>
244 @z
245
246 @x
247     <para>If desired, skip kernel configuration by copying the kernel
248     config file, <filename>.config</filename>, from the host system
249     (assuming it is available) to the unpacked <filename
250     class="directory">linux-&linux-version;</filename> directory. However,
251     we do not recommend this option. It is often better to explore all the
252     configuration menus and create the kernel configuration from
253     scratch.</para>
254 @y
255     <para>
256     カーネル設定は行わずに、ホストシステムにあるカーネル設定ファイル <filename>.config</filename> をコピーして利用することもできます。
257     そのファイルが存在すればの話です。
258     その場合は <filename class="directory">linux-&linux-version;</filename> ディレクトリにそのファイルをコピーしてください。
259     もっともこのやり方はお勧めしません。
260     設定項目をメニューから探し出して、カーネル設定を一から行っていくことが望ましいことです。
261     </para>
262 @z
263
264 @x
265     <para>Compile the kernel image and modules:</para>
266 @y
267     <para>カーネルイメージとモジュールをコンパイルします。</para>
268 @z
269
270 @x
271     <para>If using kernel modules, module configuration in <filename
272     class="directory">/etc/modprobe.d</filename> may be required.
273     Information pertaining to modules and kernel configuration is
274     located in <xref linkend="ch-config-udev"/> and in the kernel
275     documentation in the <filename
276     class="directory">linux-&linux-version;/Documentation</filename> directory.
277     Also, <filename>modprobe.d(5)</filename> may be of interest.</para>
278 @y
279     <para>
280     カーネルモジュールを利用する場合 <filename class="directory">/etc/modprobe.d</filename> ディレクトリ内での設定を必要とします。
281     モジュールやカーネル設定に関する情報は <xref linkend="ch-config-udev"/>や <filename
282     class="directory">linux-&linux-version;/Documentation</filename> ディレクトリにあるカーネルドキュメントを参照してください。
283     また <filename>modprobe.d(5)</filename> も有用です。
284     </para>
285 @z
286
287 @x
288     <para>Unless module support has been disabled in the kernel configuration,
289     install the modules with:</para>
290 @y
291     <para>カーネル設定においてモジュールの利用を無効にしているのでなければ、ここでモジュールをインストールします。</para>
292 @z
293
294 @x
295     <para>After kernel compilation is complete, additional steps are
296     required to complete the installation. Some files need to be copied to
297     the <filename class="directory">/boot</filename> directory.</para>
298 @y
299     <para>
300     カーネルのコンパイルが終わったら、インストールの完了に向けてあと少し作業を行います。
301     <filename class="directory">/boot</filename> ディレクトリにいくつかのファイルをコピーします。
302     </para>
303 @z
304
305 @x
306       <para>If the host system has a separate /boot partition, the files copied
307       below should go there. The easiest way to do that is to bind /boot on the
308       host (outside chroot) to /mnt/lfs/boot before proceeding.  As the
309       &root; user in the <emphasis>host system</emphasis>:</para>
310 @y
311       <para>
312       ホストシステムが独立した /boot パーティションを用いている場合はファイルをそこにコピーします。
313       これを簡単に行うために、作業前に(chroot 前の)/boot をホストの /mnt/lfs/boot にバインドしておく方法があります。
314       <emphasis>ホストシステム</emphasis> の &root; ユーザーとなって以下を実行します。
315       </para>
316 @z
317
318 @x
319     <para>The path to the kernel image may vary depending on the platform being
320     used. The filename below can be changed to suit your taste, but the stem of
321     the filename should be <emphasis>vmlinuz</emphasis> to be compatible with
322     the automatic setup of the boot process described in the next section.  The
323     following command assumes an x86 architecture:</para>
324 @y
325     <para>
326     カーネルイメージへのパスは、利用しているプラットフォームによってさまざまです。
327     そのファイル名は、好みにより自由に変更して構いません。
328     ただし <emphasis>vmlinuz</emphasis> という語は必ず含めてください。
329     これにより、次節で説明するブートプロセスを自動的に設定するために必要なことです。
330     以下のコマンドは x86 アーキテクチャーの場合の例です。
331     </para>
332 @z
333
334 @x
335     <para><filename>System.map</filename> is a symbol file for the kernel.
336     It maps the function entry points of every function in the kernel API,
337     as well as the addresses of the kernel data structures for the running
338     kernel.  It is used as a resource when investigating kernel problems. 
339     Issue the following command to install the map file:</para>
340 @y
341     <para>
342     <filename>System.map</filename> はカーネルに対するシンボルファイルです。
343     このファイルはカーネル API の各関数のエントリポイントをマッピングしています。
344     同様に実行中のカーネルのデータ構成のアドレスを保持します。
345     このファイルは、カーネルに問題があった場合にその状況を調べる手段として利用できます。
346     マップファイルをインストールするには以下を実行します。
347     </para>
348 @z
349
350 @x
351     <para>The kernel configuration file <filename>.config</filename>
352     produced by the <command>make menuconfig</command> step
353     above contains all the configuration selections for the kernel
354     that was just compiled. It is a good idea to keep this file for future
355     reference:</para>
356 @y
357     <para>
358     カーネル設定ファイル <filename>.config</filename> は、上で実行した <command>make menuconfig</command> によって生成されます。
359     このファイル内には、今コンパイルしたカーネルの設定項目の情報がすべて保持されています。
360     将来このファイルを参照する必要が出てくるかもしれないため、このファイルを保存しておきます。
361     </para>
362 @z
363
364 @x
365     <para>Install the documentation for the Linux kernel:</para>
366 @y
367     <para>Linux カーネルのドキュメントをインストールします。</para>
368 @z
369
370 @x
371     <para>It is important to note that the files in the kernel source
372     directory are not owned by <emphasis>root</emphasis>. Whenever a
373     package is unpacked as user <emphasis>root</emphasis> (like we did
374     inside chroot), the files have the user and group IDs of whatever
375     they were on the packager's computer. This is usually not a problem
376     for any other package to be installed because the source tree is
377     removed after the installation. However, the Linux source tree is
378     often retained for a long time.  Because of this, there is a chance
379     that whatever user ID the packager used will be assigned to somebody
380     on the machine. That person would then have write access to the kernel
381     source.</para>
382 @y
383     <para>
384     カーネルのソースディレクトリは所有者が <emphasis>root</emphasis> ユーザーになっていません。
385     我々は chroot 環境内の <emphasis>root</emphasis> ユーザーとなってパッケージを展開してきましたが、展開されたファイル類はパッケージ開発者が用いていたユーザー ID、グループ ID が適用されています。
386     このことは普通はあまり問題になりません。
387     というのもパッケージをインストールした後のソースファイルは、たいていは削除するからです。
388     一方 Linux のソースファイルは、削除せずに保持しておくことがよく行われます。
389     このことがあるため開発者の用いたユーザーIDが、インストールしたマシン内の誰かの ID に割り当たった状態となりえます。
390     その人はカーネルソースを自由に書き換えてしまう権限を持つことになるわけです。
391     </para>
392 @z
393
394 @x
395       <para>In many cases, the configuration of the kernel will need to be
396       updated for packages that will be installed later in BLFS.  Unlike
397       other packages, it is not necessary to remove the kernel source tree
398       after the newly built kernel is installed.</para>
399 @y
400       <para>
401       カーネルの設定は、BLFS をインストールしていくにつれて、設定を更新していかなければならないことが多々あります。
402       一般にパッケージのソースは削除することが通常ですが、カーネルのソースに関しては、カーネルをもう一度新たにインストールするなら、削除しなくて構いません。
403       </para>
404 @z
405
406 @x
407       <para>If the kernel source tree is going to be retained, run
408       <command>chown -R 0:0</command> on the <filename
409       class="directory">linux-&linux-version;</filename> directory to ensure
410       all files are owned by user <emphasis>root</emphasis>.</para>
411 @y
412       <para>
413       カーネルのソースファイルを保持しておくつもりなら <filename
414       class="directory">linux-&linux-version;</filename> ディレクトリにおいて <command>chown -R 0:0</command> を実行しておいてください。
415       これによりそのディレクトリの所有者は <emphasis>root</emphasis> ユーザーとなります。
416       </para>
417 @z
418
419 @x
420       <para>Some kernel documentation recommends creating a symlink from
421       <filename class="symlink">/usr/src/linux</filename> pointing to the kernel
422       source directory.  This is specific to kernels prior to the 2.6 series and
423       <emphasis>must not</emphasis> be created on an LFS system as it can cause
424       problems for packages you may wish to build once your base LFS system is
425       complete.</para>
426 @y
427       <para>
428       カーネルを説明する書の中には、カーネルのソースディレクトリに対してシンボリックリンク <filename
429       class="symlink">/usr/src/linux</filename> の生成を勧めているものがあります。
430       これはカーネル 2.6 系以前におけるものであり LFS システム上では生成<emphasis>してはなりません </emphasis>。
431       ベースとなる LFS システムを構築し、そこに新たなパッケージを追加していこうとした際に、そのことが問題となるからです。
432       </para>
433 @z
434
435 @x
436       <para>The headers in the system's <filename
437       class="directory">include</filename> directory (<filename
438       class="directory">/usr/include</filename>) should
439       <emphasis>always</emphasis> be the ones against which Glibc was compiled,
440       that is, the sanitised headers installed in <xref
441       linkend="ch-tools-linux-headers"/>.  Therefore, they should
442       <emphasis>never</emphasis> be replaced by either the raw kernel headers
443       or any other kernel sanitized headers.</para>
444 @y
445       <para>
446       さらに <filename
447       class="directory">include</filename> ディレクトリ (<filename
448       class="directory">/usr/include</filename>) にあるヘッダーファイルは、<emphasis>必ず</emphasis> Glibc のコンパイル時のものでなければなりません。
449       つまり <xref
450       linkend="ch-tools-linux-headers"/> によってインストールされた、健全化 (sanitizing) したものです。
451       したがって生のカーネルヘッダーや他のカーネルにて健全化されたヘッダーによって上書きされてしまうのは避けなければなりません。
452       </para>
453 @z
454
455 @x
456     <title>Configuring Linux Module Load Order</title>
457 @y
458     <title>Linux モジュールのロード順の設定</title>
459 @z
460
461 @x
462     <para>Most of the time Linux modules are loaded automatically, but
463     sometimes it needs some specific direction.  The program that loads
464     modules, <command>modprobe</command> or <command>insmod</command>, uses
465     <filename>/etc/modprobe.d/usb.conf</filename> for this purpose.  This file
466     needs to be created so that if the USB drivers (ehci_hcd, ohci_hcd and
467     uhci_hcd) have been built as modules, they will be loaded in the correct
468     order; ehci_hcd needs to be loaded prior to ohci_hcd and uhci_hcd in order
469     to avoid a warning being output at boot time.</para>
470 @y
471     <para>
472     たいていの場合 Linux モジュールは自動的にロードされます。
473     しかし中には特定の指示を必要とするものもあります。
474     モジュールをロードするプログラム、<command>modprobe</command> または <command>insmod</command> は、そのような指示を行う目的で <filename>/etc/modprobe.d/usb.conf</filename> を利用します。
475     USB ドライバー (ehci_hcd, ohci_hcd, uhci_hcd) がモジュールとしてビルドされていた場合には、それらを正しい順でロードしなければならず、そのために <filename>/etc/modprobe.d/usb.conf</filename> ファイルが必要となります。
476     ehci_hcd は ohci_hcd や uhci_hcd よりも先にロードしなければなりません。
477     これを行わないとブート時に警告メッセージが出力されます。
478     </para>
479 @z
480
481 @x
482     <para>Create a new file <filename>/etc/modprobe.d/usb.conf</filename> by running
483     the following:</para>
484 @y
485     <para>
486     以下のコマンドを実行して <filename>/etc/modprobe.d/usb.conf</filename> ファイルを生成します。
487     </para>
488 @z
489
490 @x
491     <title>Contents of Linux</title>
492 @y
493     <title>&ContentsOf1;Linux&ContentsOf2;</title>
494 @z
495
496 @x
497       <segtitle>Installed files</segtitle>
498       <segtitle>Installed directories</segtitle>
499 @y
500       <segtitle>&InstalledFiles;</segtitle>
501       <segtitle>&InstalledDirectory;</segtitle>
502 @z
503
504 @x
505         <seg>config-&linux-version;,
506         vmlinuz-&linux-version;-lfs-&version;,
507         and System.map-&linux-version;</seg>
508         <seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
509 @y
510         <seg>config-&linux-version;,
511         vmlinuz-&linux-version;-lfs-&version;,
512         and System.map-&linux-version;</seg>
513         <seg>/lib/modules, /usr/share/doc/linux-&linux-version;</seg>
514 @z
515
516 @x
517       <bridgehead renderas="sect3">Short Descriptions</bridgehead>
518 @y
519       <bridgehead renderas="sect3">&ShortDescriptions;</bridgehead>
520 @z
521
522 @x
523           <para>Contains all the configuration selections for the kernel</para>
524 @y
525           <para>
526           カーネルの設定をすべて含みます。
527           </para>
528 @z
529
530 @x
531           <para>The engine of the Linux system. When turning on the computer,
532           the kernel is the first part of the operating system that gets loaded.
533           It detects and initializes all components of the computer's hardware,
534           then makes these components available as a tree of files to the
535           software and turns a single CPU into a multitasking machine capable
536           of running scores of programs seemingly at the same time</para>
537 @y
538           <para>
539           Linux システムのエンジンです。
540           コンピューターを起動した際には、オペレーティングシステム内にて最初にロードされるものです。
541           カーネルはコンピューターのハードウェアを構成するあらゆるコンポーネントを検知して初期化します。
542           そしてそれらのコンポーネントをツリー階層のファイルとして、ソフトウェアが利用できるようにします。
543           ただひとつの CPU からマルチタスクを処理するマシンとして、あたかも多数のプログラムが同時稼動しているように仕向けます。
544           </para>
545 @z
546
547 @x
548           <para>A list of addresses and symbols; it maps the entry points and
549           addresses of all the functions and data structures in the
550           kernel</para>
551 @y
552           <para>
553           アドレスとシンボルのリストです。
554           カーネル内のすべての関数とデータ構成のエントリポイントおよびアドレスを示します。
555           </para>
556 @z