Merge the following from the English version:

1.61 -> 1.69	handbook/eresources/chapter.sgml
  1.46 -> 1.89	handbook/kernelconfig/chapter.sgml

Submitted by:	Hiroo Ono <hiroo _at_ jp dot FreeBSD dot org>
This commit is contained in:
Hideyuki KURASHINA 2006-03-16 15:15:22 +00:00
parent 378c53ae65
commit 666df396b4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27355
2 changed files with 492 additions and 210 deletions
ja_JP.eucJP/books/handbook
eresources
kernelconfig

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.61
Original revision: 1.69
$FreeBSD$
-->
@ -16,7 +16,7 @@
それだけしかない、というわけではありませんが、
最新情報を入手する方法としては電子的なリソースがベストです。
FreeBSD はボランティアの努力によって、ユーザコミュニティ自体が、
一種の<quote>テクニカルサポート部門</quote>としての役割も通常果たしており、
一種の <quote>テクニカルサポート部門</quote> としての役割も通常果たしており、
電子メールや Usenet
のニュースがこれらのコミュニティにたどり着く最も効果的な方法になっています。</para>
@ -30,12 +30,12 @@
<sect1 id="eresources-mail">
<title>メーリングリスト</title>
<para>多くのFreeBSDの開発メンバはUSENETを読むことができますが、
<para>多くの FreeBSD の開発メンバは USENET を読むことができますが、
もし、<literal>comp.unix.bsd.freebsd.*</literal>
のグループの一つに質問を投稿したとしても
タイムリにその質問を受け取るということは保証できません。
質問を適切なメーリングリストに投稿すれば、
私たちかFreeBSDの関係者から、よりよい
私たちか FreeBSD の関係者から、よりよい
(そして少なくともより早い)
反応がいつでも得られることでしょう。</para>
@ -65,7 +65,7 @@
<para><emphasis>一般的なメーリングリスト:</emphasis>
以下のものは誰でも自由に参加できる (そしておすすめの)
一般的なものです:</para>
一般的なものです</para>
<informaltable frame="none">
<tgroup cols="2">
@ -186,6 +186,11 @@
<entry>FreeBSD の Alpha への移植</entry>
</row>
<row>
<entry>freebsd-arm</entry>
<entry>FreeBSD の ARM プロセッサへの移植</entry>
</row>
<row>
<entry>freebsd-atm</entry>
<entry>FreeBSD での ATM ネットワーク使用に関する話題</entry>
@ -196,6 +201,16 @@
<entry>ソースコード監査プロジェクト</entry>
</row>
<row>
<entry>freebsd-binup</entry>
<entry>バイナリアップデートシステムの設計と開発</entry>
</row>
<row>
<entry>freebsd-cluster</entry>
<entry>FreeBSD のクラスタ環境での利用</entry>
</row>
<row>
<entry>freebsd-database</entry>
<entry>FreeBSD
@ -295,6 +310,11 @@
<entry>FreeBSD の PowerPC への移植</entry>
</row>
<row>
<entry>freebsd-qa</entry>
<entry>品質保証 (通常はリリースの保留) についての議論</entry>
</row>
<row>
<entry>freebsd-realtime</entry>
<entry>FreeBSD 用のリアルタイム拡張の開発に関する話題</entry>
@ -468,7 +488,7 @@
</tgroup>
</informaltable>
<para><emphasis>CVSメーリングリスト:</emphasis>
<para><emphasis>CVS メーリングリスト:</emphasis>
以下のメーリングリストはソースツリーの
さまざまな場所の変更のログメッセージを見ることに
興味のある人向けです。
@ -499,8 +519,8 @@
<sect2 id="eresources-subscribe">
<title>参加方法</title>
<para>どのメーリングリストも<hostid
role="fqdn">FreeBSD.ORG</hostid>にあるので、
<para>どのメーリングリストも
<hostid role="fqdn">FreeBSD.ORG</hostid> にあるので、
メーリングリストにメールを送るには、ただ
&lt;<replaceable>listname</replaceable>@FreeBSD.org&gt;
にメールを送るだけです。すると、
@ -512,8 +532,8 @@
<programlisting>subscribe &lt;listname&gt; [&lt;optional address&gt;]</programlisting>
という内容をメッセージの本文に含むメールを &a.majordomo;
に送ります。えば、<literal>freebsd-announce</literal>
に参加したい場合は次のようにします:</para>
に送ります。たとえば、<literal>freebsd-announce</literal>
に参加したい場合は次のようにします</para>
<screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput>
subscribe freebsd-announce
@ -533,7 +553,7 @@ subscribe freebsd-announce local-announce@somesite.com
<para>最後に、majordomo に対して
他のタイプのコントロールメッセージを送ることで
メーリングリストから脱退したり、
メーリングリストの他のメンバのリストを 得たり、
メーリングリストの他のメンバのリストを得たり、
再びメーリングリストのリストを見たりすることも可能です。
利用できるコマンドの完全なリストを入手するには、
次のようにします: </para>
@ -552,18 +572,18 @@ help
<sect2 id="eresources-charters">
<title>メーリングリストの憲章</title>
<para><emphasis>て</emphasis> FreeBSD
<para><emphasis>すべて</emphasis> FreeBSD
メーリングリストは誰でもそれらを利用することに
固守しなければいけないという一定の簡単なルールがあります。
これらのルー ルに従わないと、結果として FreeBSD の Postmaster
これらのルールに従わないと、結果として FreeBSD の Postmaster
<email>postmaster@FreeBSD.org</email>から 2 回までは警
告を受けます。3回違反すると、
投稿者は全てのFreeBSDのメーリングリストから削除され、
告を受けます。3 回違反すると、
投稿者はすべての FreeBSD のメーリングリストから削除され、
そのメーリングリストへのさらなる投稿から締め出されるでしょう。
これらのルールや対策が必要なのは残念です。
しかし、今日のインターネッ
トはずいぶんいやらしい環境になっており、一般の人々は、
その(対策の) メカニズムがいかにもろいかという事すら
その (対策の) メカニズムがいかにもろいかという事すら
認識する事が出来ていないと思われます。</para>
<para>道標</para>
@ -571,11 +591,11 @@ help
<itemizedlist>
<listitem>
<para>いかなる投稿記事もそのメーリングリストの
基本的な憲章を守るべきです。えば、
基本的な憲章を守るべきです。たとえば、
そのメーリングリストが技術的な問題に関するものであれば、
技術的な議論を含む投稿でなければなりません。現在継続中の
不適切な憲章やフレイムは、
所属しているての人に対してメーリングリスト
所属しているすべての人に対してメーリングリスト
の価値を下げてしまうだけですし、
許される行為ではないでしょう。
とくに話題のない自由形式の議論に対しては freebsd-chat
@ -591,7 +611,7 @@ help
つのメーリングリストには双方に明確な必要性がある場合にのみ
投稿すべきです。どのリストに対しても、
(メーリングリストの)参加者は (複数のメーリングリ
ストに)重複して参加しており、関連する部分が少ない (えば、
ストに)重複して参加しており、関連する部分が少ない (たとえば、
"-stable と -scsi")メーリングリストを除いては、
一度に複数のメーリングリストに投稿する理由は全くありません。もし、
<literal>Cc</literal> に複数の メーリングリストがそのような形で現れて、
@ -605,7 +625,7 @@ help
<listitem>
<para>ユーザであれ開発者であれ、(議論の中で)
個人を攻撃したり冒涜した りすることは許されません。
個人を攻撃したり冒涜したりすることは許されません。
個人的なメールを引用したり再投稿したり
する許可をもらえなかったり、もらえそうにない時に、
それをおこなう ようなネチケット (訳注:
@ -709,7 +729,21 @@ help
これは、その修正パッチにあるバグがシステムの完全性に悪い影響を与える
可能性があるような箇所を扱う場合は特に必要になります。</para>
<!-- I can't actually find a charter for this, but there's this e-mail: http://www.freebsd.org/cgi/getmsg.cgi?fetch=223347+225804+/usr/local/www/db/text/2000/cvs-all/20001210.cvs-all -->
<!-- I can't actually find a charter for this, but there's this email: http://www.freebsd.org/cgi/getmsg.cgi?fetch=223347+225804+/usr/local/www/db/text/2000/cvs-all/20001210.cvs-all -->
</listitem>
</varlistentry>
<varlistentry>
<term>FREEBSD-BINUP</term>
<listitem>
<para><emphasis>FreeBSD バイナリアップデートプロジェクト</emphasis></para>
<para>このメーリングリストは、バイナリアップデートシステム
(または binup) に関する議論の場を提供します。設計上の問
題、実装の詳細、パッチ、バグ報告、状況報告、機能の要望、
コミットログ、その他 binup に関連するもろもろが格好の話
題となります。</para>
</listitem>
</varlistentry>
@ -751,7 +785,7 @@ help
<listitem>
<para><emphasis>FreeBSDコアチーム</emphasis></para>
<para>これは、コアメンバが使う内部メーリングリストです。
FreeBSDに関連する深 刻なやっかい事の裁定や
FreeBSDに関連する深刻なやっかい事の裁定や
ハイレベルな綿密な調査を要求するときに、このメー
リングリストにメッセージを送る事が出来ます。</para>
</listitem>
@ -784,8 +818,8 @@ help
メーリングリストのダイジェスト版です。
このダイジェストは freebsd-current
に送られたすべてのメッセージをまとめたものを、
1つのメールにして送り出します。
このメーリングリストは <emphasis>読み専用</emphasis>です。
1 つのメールにして送り出します。
このメーリングリストは<emphasis>読み専用</emphasis>です。
メールを送るような事はしないでください。</para>
</listitem>
</varlistentry>
@ -797,8 +831,8 @@ help
<para>このメーリングリストは FreeBSD
向けの文書の作成に関連する事柄やプロジェクトについて議論を行なうためのものです。
このメーリングリストに参加しているメンバは、
<quote>FreeBSD
ドキュメンテーションプロジェクト</quote>に参加していることになります。
<quote>FreeBSD ドキュメンテーションプロジェクト</quote>
に参加していることになります。
このメーリングリストは公開されているので、
参加や投稿は自由に行なうことができます。</para>
</listitem><!-- kuriyama - strange translation -->
@ -807,7 +841,7 @@ help
<varlistentry><term>FREEBSD-FS</term>
<listitem>
<para><emphasis>ファイルシステム</emphasis></para>
<para>FreeBSDのファイルシステムに関する議論
<para>FreeBSD のファイルシステムに関する議論
これは技術的なメーリングリストなので、
完全に技術的な内容を要求します。</para>
</listitem>
@ -850,9 +884,9 @@ help
<varlistentry><term>FREEBSD-JAVA</term>
<listitem>
<para><emphasis>Javaの開発</emphasis></para>
<para><emphasis>Java の開発</emphasis></para>
<para>このメーリングリストは、FreeBSD
向けの重要なJavaアプリケーションの開発や、JDK
向けの重要な Java アプリケーションの開発や、JDK
の移植やメンテナンスの
議論をする人のためのものです.</para>
</listitem>
@ -861,7 +895,7 @@ help
<varlistentry><term>FREEBSD-HACKERS</term>
<listitem>
<para><emphasis>技術的な議論</emphasis></para>
<para>これはFreeBSDに関する技術的な議論のための
<para>これは FreeBSD に関する技術的な議論のための
フォーラムです。
これは最もテクニカルなメーリングリストです。
このメーリングリストは、FreeBSD
@ -877,8 +911,8 @@ help
<listitem>
<para><emphasis>技術的な議論</emphasis></para>
<para>freebsd-hackersメーリングリストのダイジェスト版です。
このダイジェスト はfreebsd-hackers
に送られたすべてのメッセージをまとめたものを、1つのメー
このダイジェストは freebsd-hackers
に送られたすべてのメッセージをまとめたものを、1 つのメー
ルにして送り出します。
このメーリングリストは<emphasis>読み専用</emphasis>です。
メールを送るような事はしないでください。</para>
@ -947,9 +981,9 @@ help
<varlistentry><term>FREEBSD-PLATFORMS</term>
<listitem>
<para><emphasis>Intel以外のプラットフォームへの移植
<para><emphasis>Intel 以外のプラットフォームへの移植
</emphasis></para>
<para>クロスプラットフォームのFreeBSDの問題。Intel
<para>クロスプラットフォームの FreeBSD の問題。Intel
以外のプラットフォームへの FreeBSD
の移植についての一般的な議論や提案。
これは技術的なメーリングリストなので、
@ -972,11 +1006,11 @@ help
<varlistentry><term>FREEBSD-PORTS</term>
<listitem>
<para><emphasis><quote>ports</quote> の議論</emphasis></para>
<para>FreeBSD <quote>Ports コレクション</quote>
<para>FreeBSD <quote>Ports Collection</quote>
(<filename>/usr/ports</filename>)
に関連する話題や、
新たな ports の提案、Ports
コレクションの基盤の変更および一般的な構成の整備活動に関する議論。
Collection の基盤の変更および一般的な構成の整備活動に関する議論。
これは技術的なメーリングリストなので、
厳密に技術的な内容のみが扱われます。</para>
</listitem>
@ -985,7 +1019,7 @@ help
<varlistentry><term>FREEBSD-QUESTIONS</term>
<listitem>
<para><emphasis>ユーザからの質問</emphasis></para>
<para>FreeBSDに関する質問のためのメーリングリストです。
<para>FreeBSD に関する質問のためのメーリングリストです。
その質問がかなり技術的だと思わないのであれば、
<quote>どのようにして</quote>
という質問を技術的なメーリングリストに
@ -1000,14 +1034,14 @@ help
メーリングリストのダイジェスト版です。このダイジェストは
freebsd-questions
に送られたすべてのメッセージをまとめたものを、
1つのメールにして送り出します。</para>
1 つのメールにして送り出します。</para>
</listitem>
</varlistentry>
<varlistentry><term>FREEBSD-SCSI</term>
<listitem>
<para><emphasis>SCSIサブシステム</emphasis></para>
<para>これは FreeBSD のための scsi
<para><emphasis>SCSI サブシステム</emphasis></para>
<para>これは FreeBSD のための SCSI
サブシステムについて作業している人向けです。
これは技術的なメーリングリストなので、
完全に技術的な内容を要求します。</para>
@ -1018,7 +1052,7 @@ help
<listitem>
<para><emphasis>セキュリティの関連の話題</emphasis></para>
<para>FreeBSDコンピュータのセキュリティの話題 (DES,
Kerberosよく知られているセキュリティホールや、
Kerberos, よく知られているセキュリティホールや、
それらのふさぎ方など)
これは技術的なメーリングリストなので、
完全に技術的な内容を要求します。</para>
@ -1085,16 +1119,16 @@ help
<sect1 id="eresources-news">
<title>Usenet ニュースグループ</title>
<para>2つのFreeBSD用のニュースグループがあります。ここでは
FreeBSDの議論をするたくさんの様々な人がおり、
他にもFreeBSD関連するユーザがいます。
<para>2 つの FreeBSD 用のニュースグループがあります。ここでは
FreeBSD の議論をするたくさんの様々な人がおり、
他にも FreeBSD 関連するユーザがいます。
これらのいくつかのニュースグループは Warren Toomey
<email>wkt@cs.adfa.edu.au</email> によって <ulink
url="http://minnie.cs.adfa.edu.au/BSD-info/bsdnews_search.html">
url="http://minnie.tuhs.org/BSD-info/bsdnews_search.html">
Keyword searchable archives</ulink> で、
検索できるようになっています。</para>
<sect2>
<title>BSD用のニュースグループ</title>
<title>BSD 用のニュースグループ</title>
<itemizedlist>
<listitem>
@ -1108,7 +1142,7 @@ help
</sect2>
<sect2>
<title>関連する他のUnixのニュースグループ</title>
<title>関連する他の Unix のニュースグループ</title>
<itemizedlist>
<listitem>
@ -1272,7 +1306,7 @@ help
<row>
<entry>dogma.freebsd-uk.eu.org</entry>
<entry>Telnet/FTP/SSH</entry>
<entry>E-Mail, Web space, Anonymous FTP</entry>
<entry>Email, Web space, Anonymous FTP</entry>
<entry>Lee Johnston
<email>lee@uk.FreeBSD.org</email></entry>
</row>

View file

@ -2,37 +2,107 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.46
Original revision: 1.89
$FreeBSD$
-->
<chapter id="kernelconfig">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>改訂および再構成</contrib>
<!-- Mar 2000 -->
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Jake</firstname>
<surname>Hamby</surname>
<contrib>原作</contrib>
<!-- 6 Oct 1995 -->
</author>
</authorgroup>
</chapterinfo>
<title>FreeBSD カーネルのコンフィグレーション</title>
<sect1>
<title>この章では</title>
<para><emphasis>更新/再構成: &a.jim;、2000 年 3 月
寄稿: &a.jehamby;、1995 年 10 月 6 日</emphasis></para>
<!--
<para><emphasis>訳: &a.jp.tomo;、&a.jp.yoshiaki; 1996 年 11 月 2 日</emphasis></para>
-->
<indexterm>
<primary>カーネル</primary>
<secondary>カスタムカーネルの構築</secondary>
</indexterm>
<para>この章では、自分のシステムに合わせた
カーネルを構築する方法について扱います。
カーネルの再構築によりどんなメリットがあるのか不思議に思っていたり、
自分用のカーネルを設定し、コンパイルし、インストールする方法を
知りたいと思っているのなら、この章が役に立つでしょう。
</para>
<para>カーネルは FreeBSD オペレーティングシステムの中核をなすもの
です。カーネルは、メモリ管理、セキュリティ制御の強制、ネットワー
ク、ディスクアクセスなどを担っています。FreeBSD はどんどん動的に
構成することができるようになっていますが、まだ、時にはカーネルコ
ンフィグレーションをやり直して、再構築する必要があります。</para>
<para>この章では、以下のことを扱っています。</para>
<itemizedlist>
<listitem>
<para>なぜカスタムカーネルの構築が必要になることがあるのか。</para>
</listitem>
<listitem>
<para>コンフィグレーションファイルの書き方や、既存のコンフィグ
レーションファイルの置き換え。</para>
</listitem>
<listitem>
<para>カーネルコンフィグレーションファイルから新しいカーネルを構
築する方法。</para>
</listitem>
<listitem>
<para>新しいカーネルのインストール方法。</para>
</listitem>
<listitem>
<para><filename>/dev</filename> 下に必要となる項目を作成する方法。</para>
</listitem>
<listitem>
<para>うまく行かないときの問題解決法。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>なぜカスタムカーネルを作るか?</title>
<para>伝統的に、FreeBSD のカーネルは <quote>モノリシック</quote>
(monolithic) カーネルと呼ばれるものでした。
これは、カーネルが単一の巨大なプログラムで、
扱えるデバイスは固定されていて、
カーネルの振る舞いを変えたければ新しいカーネルを構築して、
コンピュータを再起動して新しいカーネルを動かさなれければならなかった
ということです。</para>
<para>今日では FreeBSD は、カーネルの機能のかなりが必要に応じて動
的にカーネルに組み込んだり外したりできるモジュールにおかれている
モデルへと、急速に移行しています。こうしてカーネルは (ノート PC
の PCMCIA カードのように) 突如使えるようになったハードウェアに対
応したり、カーネルが作成された時点では必要なかった新たな機能を取
り入れられるようになります。くだけた表現では、これは KLD と呼ば
れます。</para>
<para>しかしながら、いまだにいくらかは静的にカーネルを構成する必要
があります。ある場合においては、機能がカーネルとあまりに密接に結
びついているため、動的に組み込むことができません。ほかには、単に
まだ誰もその機能に対する組み込み可能なカーネルモジュールを書く時
間をとっていないだけということもあります。</para>
<para>システムに合わせたカーネルの構築はほとんどすべての
UNIX ユーザが
Unix ユーザが
避けて通ることのできない最も重要な通過儀礼の1つです。
この作業は、多くの時間を必要としますが、あなたの FreeBSD
システムに多くの利益をもたらします。
@ -54,10 +124,11 @@
<listitem>
<para>メモリの消費量が減少します。
システムに合わせたカーネルは、大抵 <literal>GENERIC</literal>
システムに合わせたカーネルは、大抵
<filename>GENERIC</filename>
カーネルより少ないメモリしか消費しません。
カーネルは常にメモリ上に存在するプロセスなので、
のことは重要になります。
カーネルは常に実メモリ上に存在しなければならないので、
れは重要なことです。
したがって、RAM が少ないシステムでは、
カーネルの再構築は大変重要です。</para>
</listitem>
@ -65,8 +136,8 @@
<listitem>
<para>追加のハードウェアをサポートします。
システムに合わせたカーネルは、サウンドカードなど
<literal>GENERIC</literal> カーネルに存在しない
デバイスのサポートを追加することができます。</para>
<filename>GENERIC</filename>
カーネルに存在しないデバイスのサポートを追加することができます。</para>
</listitem>
</itemizedlist>
</sect1>
@ -106,11 +177,22 @@
カーネルのソースが インストールされていません。
もっとも簡単な方法は (<username>root</username>で)
<command>/stand/sysinstall</command>
を用いて以下のようにします。<literal>設定(Configure)</literal>
を選んでから <literal>配布ファイル(Distribution)</literal>
を選択し、<literal>src</literal> の中の <literal>sys</literal>
を用いて以下のようにすることです。
<guimenuitem>設定 (Configure)</guimenuitem>
を選んでから
<guimenuitem>配布ファイル (Distribution)</guimenuitem>
を選択し、<guimenuitem>src</guimenuitem>
の中の <guimenuitem>sys</guimenuitem>
をインストールしてください。
<application>sysinstall</application>
が嫌いで、<quote>公式</quote> FreeBSD CDROM を利用できるなら、
コマンドラインからソースコードをインストールすることもできます。
</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>mkdir -p /usr/src/sys</userinput>
&prompt.root; <userinput>ln -s /usr/src/sys /sys</userinput>
&prompt.root; <userinput>cat /cdrom/src/ssys.[a-d]* | tar -xzvf -</userinput></screen>
</note>
<para>つぎに、
@ -127,21 +209,44 @@
この名前にホスト名を含めるとよいでしょう。ここでは、例として
<filename>MYKERNEL</filename> と呼ぶことにします。</para>
<tip>
<para>カーネルコンフィグレーションファイルを、直に
<filename>/usr/src</filename> の下に置くのはよい考えとはいえま
せん。なにか問題が起きたときに、
<filename>/usr/src</filename> を消してやり直したいと思うかもし
れません。その後で、あなたがカスタマイズしたカーネルコンフィグ
レーションファイルを消してしまったことに気づくのに時間はかから
ないでしょう。</para>
<para>カーネルコンフィグレーションファイルは他の場所において、
<filename>i386</filename> ディレクトリにシンボリックリンクを張
る方がよいでしょう。</para>
<para>たとえば、次のようにします。</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
&prompt.root; <userinput>mkdir /root/kernels</userinput>
&prompt.root; <userinput>cp GENERIC /root/kernels/<replaceable>MYKERNEL</replaceable></userinput>
&prompt.root; <userinput>ln -s /root/kernels/<replaceable>MYKERNEL</replaceable></userinput></screen>
</tip>
<note>
<para>この作業は root権限でおこなう必要があります。
そうでなければ、<errortype>permission
denied</errortype>というエラーが出ます。</para>
<para>この作業は <username>root</username>
権限でおこなう必要があります。そうでなければ、
<errortype>permission denied</errortype>
というエラーが出ます。</para>
</note>
<para>では、<filename>MYKERNEL</filename>
をあなたの好きなエディタで編集してください。もし、
システムをインストールしたばかりならば、利用できるエディタは
<command>vi</command>だけかもしれません。ここでは使い方
の説明はしませんが、<link linkend="bibliography">参考図書</link>
<application>vi</application>
だけかもしれません。ここでは使い方の説明はしませんが、
<link linkend="bibliography">参考図書</link>
にあるような多くの本で詳しく説明 されていますので、
そちらを参照してください。FreeBSD にはより簡単なエディタとして
<quote>ee</quote> があります。初心者の方であればこちらをエディタ
に選ぶとよいでしょう。
<application>ee</application>
があります。初心者の方であればこちらをエディタに選ぶとよいでしょう。
まずファイルの最初の方のコメント行を編集し、あなたのコンフィグ
レーションに合せて変更した点などを記述して
<filename>GENERIC</filename> と区別がつく
@ -159,66 +264,114 @@
</link> の節をゆっくりと注意深く読んでください。</para>
<note>
<para>FreeBSD Project の最新のソースファイルと、あなたの
ソースツリーを同期させている場合、
アップデートを行う際には、必ず
<filename>/usr/src/UPDATING</filename> ファイルをチェックするように
してください。
このファイルには、FreeBSD をアップデートする際のすべての重要な情報
書かれています。
<para>FreeBSD Project の最新のソースファイルと、<link
linkend="cutting-edge">あなたのソースツリーを同期させている</link>
場合、アップデートを行う際には、必ず
<filename>/usr/src/UPDATING</filename>
ファイルをチェックしてください。
このファイルには、FreeBSD
をアップデートする際の重要な問題がすべて書かれています。
<filename>/usr/src/UPDATING</filename> は常にあなたの FreeBSD
ソースファイルのバージョンと同期していますので、
ハンドブックの情報よりも正確なものとなっています。</para>
</note>
<para>FreeBSD 4.0 より前の FreeBSD を使っていて、
FreeBSD 4.0 以降へはアップグレードしない、
もしくはリリース版の FreeBSD を使っていて
<filename>/usr/src/</filename> ディレクトリには
<filename>sys/</filename> しか無い場合、
編集し終ったら次のコマンドによってコンパイル、インストール
を行ってください。</para>
<para>ここで、カーネルのソースコードをコンパイルしなくてはなりませ
ん。手順は二つあり、どちらを使うかは、なぜカーネルを再構築するか
と、動かしている FreeBSD のバージョンによって決まります。</para>
<itemizedlist>
<listitem>
<para>カーネルのソースコード<emphasis>だけ</emphasis>インストー
ルしているなら、手順 1 にしたがってください。</para>
</listitem>
<listitem>
<para>4.0 より前の FreeBSD を使っていて、
<maketarget>make world</maketarget> を行って FreeBSD&nbsp;4.0
以上にアップグレードしないなら、
手順 1 にしたがってください。</para>
</listitem>
<listitem>
<para>(<literal>IPFIREWALL</literal> オプションを追加するなど
のように) ソースコードを更新せずに新しいカーネルを構築するな
らどちらの手順を用いても構いません。</para>
</listitem>
<listitem>
<para><maketarget>make world</maketarget>
の一環としてカーネルの再構築を行っているなら、
手順 2 にしたがってください。</para>
</listitem>
</itemizedlist>
<procedure>
<title>手順 1: <quote>伝統的な</quote> 方法によるカーネル構築</title>
<step>
<para>カーネルソースコードを生成するため、&man.config.8; を実
行します。</para>
<screen>&prompt.root; <userinput>/usr/sbin/config <replaceable>MYKERNEL</replaceable></userinput></screen>
</step>
<step>
<para>カーネルを構築するためのディレクトリに移動します。</para>
<screen>&prompt.root; <userinput>cd ../../compile/<replaceable>MYKERNEL</replaceable></userinput></screen>
</step>
<step>
<para>カーネルをコンパイルします。</para>
<screen>&prompt.root; <userinput>make depend</userinput>
&prompt.root; <userinput>make</userinput></screen>
</step>
<step>
<para>新しいカーネルをインストールします。</para>
<screen>&prompt.root; <userinput>make install</userinput></screen>
</step>
</procedure>
<procedure>
<title>手順 2: <quote>新しい</quote> 方法によるカーネル構築</title>
<step>
<para><filename>/usr/src</filename> ディレクトリに移動します。</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
</step>
<step>
<para>カーネルをコンパイルします。</para>
<screen>&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
</step>
<step>
<para>新しいカーネルをインストールします。</para>
<screen>&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
</step>
</procedure>
<note>
<para>古いバージョンの FreeBSD からカーネルをアップグレードしようと
している場合、新しいカーネルのソースファイルを取ってきた場所と
同じところから、新しいバージョンの &man.config.8; を取ってくる
必要があるでしょう。
&man.config.8; は <filename>/usr/src/usr.sbin</filename>
にあるので、これらのソースファイルもダウンロードする必要が
あります。
次のコマンドを実行する前に、これを再構築してインストールして
おいてください。</para>
</note>
<screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput>
&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput>
&prompt.root; <userinput>make depend</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install</userinput></screen>
<para>4.X 以降の新しいバージョンにアップグレードした場合
(例えば 3.X から 4-STABLE へ、もしくは 4-STABLE から
最新版の 4-STABLE へなど)、予め
<link linkend="cutting-edge">buildworld</link> を行なって、
以下のコマンドを実行してください:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput>
&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen>
<note>
<para>FreeBSD-4.2 とそれ以前の場合は、
<para>FreeBSD&nbsp;4.2 とそれ以前の場合は、
<literal>KERNCONF=</literal>
ではなく
<literal>KERNEL=</literal>
としなければなりません。
2001 年 2 月 2 日以降の 4.2-STABLE は
KERNCONF= を認識します。</para>
<literal>KERNCONF=</literal> を認識します。</para>
</note>
<indexterm><primary>CVSup</primary></indexterm>
<indexterm><primary>anoncvs</primary></indexterm>
<indexterm>
<primary><command>cvsup</command></primary>
</indexterm>
<indexterm><primary>anonymous CVS</primary></indexterm>
<indexterm><primary>CTM</primary></indexterm>
<indexterm>
<primary>CVS</primary>
@ -229,45 +382,42 @@
<emphasis>いない</emphasis> 場合
(<application>CVSup</application>, <application>CTM</application>,
<application>anoncvs</application> などを実行していない場合)、
<command>config</command>, <command>make depend</command>,
<command>make</command>, <command>make install</command>
<command>config</command>, <maketarget>make depend</maketarget>,
<command>make</command>, <maketarget>make install</maketarget>
の手順を実行してください。</para>
<warning>
<para>最後にカーネルを構築した後で、ソースをアップグレードした場合、
カーネルを構築するには <command>make buildkernel</command>
を使わなければ <emphasis>なりません</emphasis>。
そうしないと、カーネルを構築するのに古いユーティリティが
使われてしまい、失敗してしまうかもしれません。
<emphasis>ソースを更新した場合には、カーネルを構築するのに
<command>config</command>/<command>make</command>
の手順は使わないでください!</emphasis></para>
</warning>
<indexterm><primary>kernel.old</primary></indexterm>
<indexterm>
<primary><filename>kernel.old</filename></primary>
</indexterm>
<para>新しいカーネルはルートディレクトリに
<filename>/kernel</filename>という 名前でコピーされ、
今までのカーネルは <filename>/kernel.old</filename>
という名前へ変更されます。では、システムをシャットダウン、リブー
トして新しいカーネルを使ってください。うまく行かない場合は、
この章の終りの
という名前へ変更されます。では、システムをシャットダウン、
リブートして新しいカーネルを使ってください。
うまく行かない場合は、この章の終りの
<link linkend="kernelconfig-trouble">問題が起きた場合には</link>
を参照してください。この章の新しい
<link linkend="kernelconfig-noboot">カーネルが起動しない</link>
場合のリカバリの方法を注意深く読んでおいてください。</para>
<note>
<para>(サウンドカードのような)新しいデバイスを 追加した場合は、
使う前に <filename>/dev</filename>ディレクトリで
デバイスノードを追加しなければならないかもしれません。
詳しくは、<link linkend="kernelconfig-nodes">デバイスノード
</link> を読んでください。</para>
<para>FreeBSD&nbsp;4.X 以前のバージョンを使っていて、
(サウンドカードなど) 新しいデバイスを追加した場合は、
使う前に <filename>/dev</filename>
ディレクトリにデバイスノードを追加しなければならないかもしれません。
詳しくは、この章で後ほど出てくる
<link linkend="kernelconfig-nodes">デバイスノードの作成</link>
をご覧ください。</para>
</note>
</sect1>
<sect1 id="kernelconfig-config">
<title>コンフィグレーション ファイル</title>
<indexterm><primary>カーネル</primary><secondary>LINT</secondary></indexterm>
<indexterm>
<primary>カーネル</primary>
<secondary>LINT</secondary>
</indexterm>
<indexterm><primary>LINT</primary></indexterm>
<indexterm>
<primary>カーネル</primary>
@ -312,7 +462,7 @@
</important>
<indexterm>
<primary>カーネル</primary>
<secondary>コンフィグレーション例</secondary>
<secondary>コンフィグレーションファイル例</secondary>
</indexterm>
<para>以下は必要に応じてコメントを追加した
@ -330,7 +480,7 @@
# このファイルについて更に情報が必要なら、ハンドブックのカーネル
# コンフィグレーションファイルのセクションを参照して下さい。
#
# http://www.freebsd.org/handbook/kernelconfig-config.html
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# doc ディストリビューションをインストールした場合、ハンドブックは
# ローカルマシンの /usr/share/doc/handbook でも見ることができます。
@ -371,8 +521,8 @@ cpu I686_CPU</programlisting>
<literal>I686_CPU</literal> とすべきかはっきり分からない場合。
しかしながら、カスタムカーネルを作る場合、あなたの持つ CPU
だけを指定するのがベストです。
もしあなたがどのタイプの CPU を使っているか分からない場合、
<command>dmesg</command> を使って起動メッセージを
もしあなたの CPU がどのタイプか分からない場合、
&man.dmesg.8; を使って起動メッセージを
調べるとよいでしょう。</para>
<indexterm>
<primary>カーネル オプション</primary>
@ -380,7 +530,7 @@ cpu I686_CPU</programlisting>
</indexterm>
<para>Alpha アーキテクチャの場合は、
<literal>cpu_type</literal> に異なった値を用います。</para>
<literal>cpu</literal> に異なった値を用います。</para>
<programlisting>cpu EV4
cpu EV5</programlisting>
@ -396,24 +546,32 @@ cpu EV5</programlisting>
<para>ここはカーネルの識別名を書きます。
あなたがカーネルに付けたい名前に書き換えて下さい
(<literal>MYKERNEL</literal>のように)。
(前記の例の <literal>MYKERNEL</literal> のように)。
<literal>ident</literal> に書いた名前はカーネルを起動する時に
表示されるので、
普段使っているカーネルと区別したいときは違う名前を付けると
普段使っているカーネルと区別したいときは、
新しいカーネルに違う名前を付けると
良いでしょう(例: 実験的なカーネルを構築する場合)。</para>
<indexterm>
<primary>カーネル オプション</primary>
<secondary>maxusers</secondary>
</indexterm>
<programlisting>maxusers 32</programlisting>
<programlisting>maxusers <replaceable>n</replaceable></programlisting>
<para><literal>maxusers</literal> オプションは重要なシステムテーブルの
サイズを決定します。
この数字はあなたのマシンを同時に使うと思われるユーザー数と
おおよそ等しくするのが良いでしょう。
しかしながら、通常は X ウインドウシステムを使ったり、
ソフトウエアをコンパイルするでしょうから、その場合は
おおよそ等しくするのが良いでしょう。</para>
<para>FreeBSD&nbsp;4.5 からは、これを明示的に <literal>0</literal>
に設定すると、システムが設定を自動調整します<footnote>
<para>自動調整アルゴリズムは、<literal>maxuser</literal>
を、最小値が 32、最大値が 384
の間で、システムのメモリ合計と等しく設定します。</para>
</footnote>。それより前のバージョンの FreeBSD
を使っているか、自分で管理したい場合、特に
X ウインドウシステムを使ったり、ソフトウエアをコンパイルするなら、
<literal>maxusers</literal> は最低 4 にして下さい。
その理由は、<literal>maxusers</literal> によって計算される最も
重要なテーブルがプロセスの最大数で、それは
@ -422,7 +580,8 @@ cpu EV5</programlisting>
同時に 36 プロセスしか利用できなくなりますが、
システムは起動時に 18 ほどのプロセスを立ち上げ、
X ウインドウシステムは 15 ほどのプロセスを立ち上げるので、
man コマンドのような単純な仕事でさえフィルタ、展開、表示に 9
オンラインマニュアルを読むような単純なタスクでさえ
フィルタ、展開、表示に 9
個のプロセスを利用するために、プロセス数不足になります。
<literal>maxusers</literal> を 64 に設定すると、
1044 個のプロセスを同時に利用することができるので、
@ -446,6 +605,23 @@ cpu EV5</programlisting>
</para>
</note>
<programlisting># Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13</programlisting>
<para><literal>npx0</literal> はハードウェアコプロセッサか
ソフトウエアエミュレータのどちらかである浮動小数点演算ユニットへの
FreeBSD におけるインタフェースです。
これは任意選択では<emphasis>ありません</emphasis>。</para>
<programlisting># Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback</programlisting>
<para>TCP/IP の汎用ループバックデバイスです。
<hostid>localhost</hostid> (すなわち
<hostid role="ipaddr">127.0.0.1</hostid>) に対して telnet や FTP
で接続すると、この疑似デバイスを通して戻ってきます。
これは<emphasis>必須</emphasis>です。</para>
<para>以下に続くすべては大体において追加設定項目です。
詳細は各項目の次に書かれている注意書きを参照して下さい。</para>
@ -456,15 +632,15 @@ options MATH_EMULATE #Support for x87 emulation</programlisting>
持たない場合(CPU が 386 又は 486SX)、
カーネルにシミュレートさせるよう設定します。
あなたが 486DX, 又は (387 や 487 チップを別途搭載した) 386, 486SX
又は更に上位 (Pentium, Pentium II 他) を持っている場合は
コメントアウトして下さい。</para>
又は更に上位 (Pentium, Pentium&nbsp;II 他)
を持っている場合はコメントアウトして下さい。</para>
<note>
<para>FreeBSD の浮動小数点エミュレーションルーチンはあまり正確では
<emphasis>ありません</emphasis>。
もしあなたが浮動小数点コプロセッサを持っておらず、
かつベストな演算精度が必要であれば、GNU の浮動小数点サポートを
利用する <literal>GPL_MATH_EMULATION</literal> を使ってみて下さい。
利用する <literal>GPL_MATH_EMULATE</literal> を使ってみて下さい。
このオプションはライセンス上の理由によりデフォルトでは
含まれていません。</para>
</note>
@ -487,6 +663,26 @@ options FFS_ROOT #FFS usable as root device [keep this!]</programli
<para>これは標準のハードドライブファイルシステムです。
ハードディスクから起動する場合は残して下さい。</para>
<programlisting>options UFS_DIRHASH #Improve performance on big directories</programlisting>
<para>このオプションは、メモリを多少余分に食うものの、
大きなディレクトリに対するディスク操作を高速化するコードを有効にします。
大規模なサーバや対話的なワークステーションではこのオプションを残しておいて、
ファイアウォールのように、メモリが貴重で
ディスクアクセス速度がそれほど重要でない
小規模なシステムでは削除するとよいでしょう。</para>
<programlisting>options SOFTUPDATES #Enable FFS Soft Updates support</programlisting>
<para>このオプションは、カーネル内の Soft Updates 機能を有効にし、
ディスクへの高速な書き込みを支援します。
4.X ブランチではデフォルトで有効にされましたが、
有効になっていない可能性もあります。
&man.mount.8; の出力を見て、有効になっているかどうか確認してください。
<literal>soft-updates</literal> オプションが見当たらなければ、
&man.tunefs.8; か、新規のファイルシステムについては
&man.newfs.8; で有効にする必要があります。</para>
<programlisting>options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device</programlisting>
@ -519,7 +715,7 @@ options MD_ROOT #MD is a potential root device</programlisting>
options NFS_ROOT #NFS usable as root device, NFS required</programlisting>
<para>ネットワークファイルシステム。
UNIX ファイルサーバから TCP/IP を介してパーティションを
Unix ファイルサーバから TCP/IP を介してパーティションを
マウントするのでない限り、これらの行をコメントアウトして下さい。</para>
<indexterm>
@ -576,12 +772,11 @@ options CD9660_ROOT #CD-ROM usable as root, CD9660 required</programli
<para>ユーザにコンソールを所有することを許可します。
X のユーザには役に立ちます。
たとえば <command>xterm -C</command> とコマンドを打つことにより、
コンソール xterm を起動することができます。
ここにはカーネルからのあらゆるコンソールメッセージとともに、
<command>write</command>, <command>talk</command> による
あらゆるメッセージを表示します。
</para>
たとえば <command>xterm -C</command>
と入力すれば、コンソール <application>xterm</application>
を実行できます。ここにはあなたが受け取る
&man.write.1;, &man.talk.1; などのメッセージや、
カーネルからのコンソールメッセージが表示されます。</para>
<programlisting>options USERCONFIG #boot -c editor</programlisting>
@ -593,6 +788,11 @@ options CD9660_ROOT #CD-ROM usable as root, CD9660 required</programli
<para>このオプションは起動メニューからビジュアルコンフィグレーション
エディタを起動できるようにします。</para>
<note><para>FreeBSD バージョン 5.0 以降では、新しく &man.device.hints.5;
を利用する方法が採用され、userconfig は使われなくなりました。
&man.device.hints.5; に関する詳しい情報は
<xref linkend="device-hints"> をご覧ください。</para></note>
<programlisting>options KTRACE #ktrace(1) support</programlisting>
<para>この行はデバッギングに役立つカーネルプロセスのトレースを
@ -627,12 +827,16 @@ options _KPOSIX_PRIORITY_SCHEDULING</programlisting>
<para>リアルタイム拡張が 1993 POSIX に追加されました。
Ports コレクションの内のいくつかのアプリケーション
(例えば Star Office) はこれを使っています。</para>
(たとえば <application>Star Office</application>)
はこれを使っています。</para>
<indexterm>
<primary>カーネル オプション</primary>
<secondary>ICMP_BANDLIM</secondary>
</indexterm>
<indexterm>
<primary>サービス妨害 (DoS)</primary>
</indexterm>
<programlisting>options ICMP_BANDLIM #Rate limit bad replies</programlisting>
<para>このオプションは ICMP エラー応答のバンド幅制限を可能にします。
@ -654,8 +858,11 @@ options _KPOSIX_PRIORITY_SCHEDULING</programlisting>
<para>FreeBSD がサポートするすべての PC はこれらの内のひとつを
持っています。
あなたが IBM PS/2 (マイクロチャネルアーキテクチャ)
マシンを持っている場合、FreeBSD は現時点では動作しません
(サポートには取組中です)。</para>
マシンを持っている場合、FreeBSD
は、現時点では限定的な対応を提供しています。
MCA の対応状況に関する詳細は、
<filename>/usr/src/sys/i386/conf/LINT</filename>
をご覧ください。</para>
<programlisting>device eisa</programlisting>
@ -687,7 +894,7 @@ device fd1 at fdc0 drive 1</programlisting>
<programlisting>device atadisk # ATA disk drives</programlisting>
<para>ATAPI ディスクドライブには <literal>device ata</literal>
<para>ATA ディスクドライブには <literal>device ata</literal>
と共にこの行が必要です。</para>
<programlisting><anchor id="kernelconfig-atapi">device atapicd # ATAPI CDROM drives</programlisting>
@ -823,14 +1030,6 @@ device sc0 at isa?</programlisting>
接続する際にも有用です &mdash; <literal>vt100</literal>
は仮想的にすべてのプラットフォームで有効であるべきです。</para>
<programlisting># Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13</programlisting>
<para><literal>npx0</literal> は FreeBSD における
浮動小数点演算ユニットへのインタフェースで、それは実際には
コプロセッサ又はソフトウエアエミュレータです。
これはオプションでは<emphasis>ありません</emphasis>。</para>
<programlisting># Power management support (see LINT for more options)
device apm0 at nexus? disable flags 0x20 # Advanced Power Management</programlisting>
@ -842,7 +1041,7 @@ device card
device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>
<para>PCMCIA サポート。ラップトップにインストールする時は必要です。</para>
<para>PCMCIA サポート。ラップトップを使っているなら必要でしょう。</para>
<programlisting># Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
@ -966,15 +1165,6 @@ device sn0 at isa? port 0x300 irq 10
どのカードがどのドライバによりサポートされているかは
<filename>/usr/src/sys/i386/conf/LINT</filename> を参照して下さい。</para>
<programlisting># Pseudo devices - the number indicates how many units to allocated.
pseudo-device loop # Network loopback</programlisting>
<para>TCP/IP の汎用ループバックデバイスです。
<hostid>localhost</hostid> (すなわち
<hostid role="ipaddr">127.0.0.1</hostid>) に対して telnet や FTP
を使う場合、この疑似デバイスを通して戻ってきます。
これは <emphasis>必須</emphasis> です。</para>
<programlisting>pseudo-device ether # Ethernet support</programlisting>
<para><literal>ether</literal> はイーサネットカードを持っている場合に
@ -1010,10 +1200,12 @@ pseudo-device loop # Network loopback</programlisting>
<para>これは <quote>疑似ターミナル</quote> 或いはシミュレートされた
ログインポートです。
これは入ってくる <command>telnet</command> と
<command>rlogin</command> セッション、<application>xterm</application>
やその他の <application>emacs</application> のような
アプリケーションにより利用されます。
<replaceable>数字</replaceable> は生成される <literal>pty</literal>
<command>rlogin</command> セッション、
<application>xterm</application> やその他の
<application>Emacs</application>
のようなアプリケーションにより利用されます。
<literal>pty</literal> の後の <replaceable>数字</replaceable> は、
生成される <literal>pty</literal>
の数を示します。もし同時にデフォルトの 16 より多くの
<application>xterm</application> ウィンドウやリモートログインが
必要な場合、必要に応じてこの数字を増やして下さい。
@ -1023,10 +1215,19 @@ pseudo-device loop # Network loopback</programlisting>
<para>メモリディスク疑似デバイス。</para>
<programlisting>pseudo-device gif</programlisting>
<para>または</para>
<programlisting>pseudo-device gif 4 # IPv6 and IPv4 tunneling</programlisting>
<para>この行は IPv6 over IPv4 トンネル、IPv4 over IPv6 トンネル、
IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。</para>
IPv4 over IPv4 トンネル、IPv6 over IPv6 トンネルを提供します。
FreeBSD&nbsp;4.4 からは、<literal>gif</literal> デバイスは
<quote>auto-cloning (自動複製)</quote> しますので、
(<literal>gif</literal> のあとに数値がこない)
はじめの例を使ってください。
それより前のバージョンの FreeBSD では、数値が必要です。</para>
<programlisting>pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)</programlisting>
@ -1044,6 +1245,13 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
これらのパケットはディスクに取り込むこともできますし、
&man.tcpdump.1; を使ってチェックをすることもできます。</para>
<note>
<para><literal>bpf</literal> 疑似デバイスは、&man.dhclient.8;
がデフォルトルータ (ゲートウェイ) の IP アドレスなどを取得する
ためにも使われています。DHCP を使っているなら、これはコメント
アウトしないでください。</para>
</note>
<programlisting># USB support
#device uhci # UHCI PCI-&gt;USB interface
#device ohci # OHCI PCI-&gt;USB interface
@ -1070,7 +1278,14 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
<title>デバイスノードを作る</title>
<indexterm><primary>デバイス ノード</primary></indexterm>
<indexterm><primary>MAKEDEV</primary></indexterm>
<indexterm>
<primary><command>MAKEDEV</command></primary>
</indexterm>
<note><para>FreeBSD&nbsp;5.0 以降を動かしているなら、
この節を飛ばして構いません。そのバージョンでは &man.devfs.5;
を用いて、ユーザに意識させずにデバイスノードを割り当てています。</para></note>
<para>カーネル内のほとんどすべてのデバイスは対応する
<quote>node</quote> エントリが <filename>/dev</filename>
ディレクトリにあります。これらのノードは普
@ -1101,7 +1316,9 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
<filename>/dev</filename>
ディレクトリに移動して次のようにタイプします。</para>
<indexterm><primary>MAKEDEV</primary></indexterm>
<indexterm>
<primary><command>MAKEDEV</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen>
<para>スクリプトの実行が終ったら <filename>/dev</filename>に
@ -1140,23 +1357,24 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
<title>問題が起きた場合には</title>
<para>カスタムカーネルを作る場合に起きるトラブルは、
次の 4 種類に分けられます。</para>
次の 5 種類に分けられます。</para>
<variablelist>
<varlistentry><term><command>config</command> コマンドの失敗</term>
<varlistentry>
<term><command>config</command> コマンドの失敗</term>
<listitem>
<para>カーネルコンフィグレーションファイルに設定を行なってから
<command>config</command> コマンドが失敗したのであれば、
&man.config.8; コマンドが失敗したのであれば、
おそらくファイルのどこかに単純な間違いがあります。
さいわい、
<command>config</command>
さいわい、&man.config.8;
はトラブルの起きた行番号を出力しますので
<command>vi</command> で素早く見つけることができます。
<application>vi</application> で素早く見つけることができます。
例えば、次のように出力された場合</para>
<screen>config: line 17: syntax error</screen>
<para><command>vi</command> のコマンドモードで
<para><application>vi</application> のコマンドモードで
<command>17G</command> とタイプすれば、
問題のところへ飛ぶことができます。
<filename>GENERIC</filename> カーネルのファイルや、
@ -1167,7 +1385,7 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
<varlistentry><term><command>make</command> コマンドの失敗</term>
<listitem>
<para><command>make</command> コマンドが失敗した場合には、
カーネル設定で <command>config</command>
カーネル設定で &man.config.8;
がとらえられなかったような間違いをしていることが多いようです。
もう一度コンフィグレーションファイルを見直してください。
それでも問題を解決することができなければ、
@ -1177,16 +1395,39 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
</listitem>
</varlistentry>
<varlistentry><term>カーネルが起動しない
<anchor id="kernelconfig-noboot"></term>
<varlistentry>
<term>新しいカーネルのインストールの失敗</term>
<listitem>
<para>カーネルが無事コンパイルできたのに、インストールに失敗
(<command>make install</command> または
<command>make installkernel</command> に失敗)
したら、最初に確認すべきことは、システムがセキュアレベル 1
以上で動いていないかどうかです (&man.init.8; 参照)。
カーネルのインストール時には、カーネルから immutable
(変更不可) フラグを外して、
新しい方に変更不可フラグを設定しようとします。セキュアレベル 1
以上では、システム内のどのファイルからも変更不可フラグを外せないため、
カーネルのインストールはセキュアレベル 0
以下で行わなければなりません。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>カーネルが起動しない<anchor
id="kernelconfig-noboot"></term>
<listitem>
<para>新しいカーネルが起動しなかったり、
デバイスの認識をしない場合でもあわてないでください!
さいわい、BSDは 利用できないカーネルから復帰する
洗練されたメカニズムがあります。
それは、FreeBSD のブートローダで起動したいカーネルを選択する
(例えば <command>boot <filename>kernel.old</filename></command>)
だけです。
さいわい、FreeBSD
には利用できないカーネルから復帰する洗練されたメカニズムがあります。
それは、FreeBSD
のブートローダで起動したいカーネルを選択するだけです。
システムが 10 からカウントダウンしている時に、この機能が使えます。
<keycap>Enter</keycap> キー以外の任意のキーを押して、
<command>unload</command> と入力してから、
<command>boot <replaceable>kernel.old</replaceable></command>
か他の正常に起動するカーネルを入力してください。
カーネルの再設定をおこなう場合にはいつも、
確実に動くことが分かっているカーネルを用意しておくようにすると良いでしょう。
</para>
@ -1221,7 +1462,14 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
<screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen>
<para>です。また、
<para>です。これができないのなら、&man.securelevel.8; を 0
より大きい値にしているのかもしれません。
<filename>/etc/rc.conf</filename> の
<literal>kern_securelevel</literal> を
<literal>-1</literal> に変更して再起動してください。新し
いカーネルに満足したら、前の設定に戻してよいでしょう。</para>
<para>また、
新しい置き換えたカーネルあるいは重要ファイ
ルを動かしたり変更されないように
<quote>ロック</quote> するには 次のようにします。</para>
@ -1231,8 +1479,8 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
</listitem>
</varlistentry>
<varlistentry><term>カーネルは動くが
<command>ps</command> は動かない!</term>
<varlistentry>
<term>カーネルは動きますが &man.ps.1; は動きません!</term>
<listitem>
<para>システムユーティリティと異る