doc/ja_JP.eucJP/FAQ/kernelconfig.sgml
Masafumi Max NAKANE 8668df5d70 Initial import of the Japanese translated version of the FAQ.
This translation is based on FAQ.sgml 1.94 and revision 1.1 of other
files.
Submitted by:	the FreeBSD Japanese Documentation Project
1997-11-17 15:49:00 +00:00

163 lines
6.9 KiB
Text

<!-- $Id: kernelconfig.sgml,v 1.1.1.1 1997-11-17 15:48:59 max Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.1 -->
<sect>
<heading>カーネルコンフィグレーション<label id="kernelconfig"></heading>
<p><em>訳: &a.kiroh;.<newline>10 November 1997.</em>
<sect1>
<heading>
カーネルをカスタマイズしたいんですが, 難しいですか?
<label id="make-kernel">
</heading>
<p>全然難しくありません. 最低 <tt/kerndist/ がシステムに
インストールされていることが必要です. もちろん完全な
<tt/srcdist/ をインストールしてあっても構いません. <tt/kerndist/
がインストールしてあれば, カーネルを構築するのに必要なソースは
すべて揃っています. 多くの商用 UNIX ベンダとは違い,
バイナリオブジェクトでのカーネルは提供して<bf/いません/.
<p>ソースコードで提供すると多少ディスクスペースを多く消費します.
しかし, 何か問題があった場合や, 動作を確認したい場合など,
<bf/実際に/カーネルのソースを参照できます.
<p><tt/kerndist/ または <tt/srcdist/ がインストールされたら,
root で以下の操作をおこなってください.
<enum>
<item> <tt>cd /usr/src/sys/i386/conf</tt>
<item> <tt/cp GENERIC MYKERNEL/
<item> <tt/vi MYKERNEL/
<item> <tt/config MYKERNEL/
<item> <tt>cd ../../compile/MYKERNEL</tt>
<item> <tt/make depend/
<item> <tt/make all/
<item> <tt/make install/
<item> <tt/reboot/
</enum>
<p>以前のリリース (FreeBSD 2.X) でのカーネルコンフィグファイルが
既にある場合は, ステップ 2 は必要ないかもしれません.
以前のファイルをコピーして, 書式が変更されてたり,
廃止されたドライバがないか, 注意深く確認してください.
<p>カーネルコンフィグファイル <tt/LINT/ には,
すべての利用可能なカーネルオプションが適切な説明とともに
含まれており, 大変参考になります.
<p><tt/GENERIC/ カーネルコンフィグファイル は, 最も一般的と
思われる構成が含まれいます. (アップグレードを行っていない限り)
あなたが最初に使ったカーネルは, おそらくこのファイルにより
構築されたものです. カーネルコンフィグファイルを書く場合,
このファイルを出発点にするとよいでしょう.
<p><tt/GENERIC/ に変更する必要がない場合は, ステップ 3
も省略できます. このステップでは, カーネルを必要な構成に
カスタマイズします. ステップ 8 は, ステップ 6 と 7 が
うまく完了してから実行してください. ステップ 8 では,
新しいカーネルイメージが <tt>/kernel</tt> にコピーされ,
古い <tt>/kernel</tt> は, <tt>/kernel.old</tt> に
<bf/バックアップ/されます! 新しいカーネルがうまく動作しなかった
場合, ブートプロンプトから指定して<tt>/kernel.old</tt> から
ブートすることも可能ですので, 必ず覚えておいてください.
リブートすると, デフォルトでは新しいカーネルでブートします.
<p>何らかの理由でステップ 7 のコンパイルが失敗したら, ステップ 4
にもどって, <tt/MYKERNEL/ の代わりに <tt/GENERIC/ で試してみて
ください. <tt/GENERIC/ でうまくカーネルが生成できた場合は,
コンフィグファイルがどこか間違っているのでしょう (バグ発見!
の可能性もありますが). <tt/GENERIC/ カーネルの生成にも失敗した
場合は, おそらくソースコードが壊れています.
<p>最後になりますが, 新しいカーネルが使用しているハードウェアに
うまく適合しているかどうか調べるために元のブートメッセージを
調べる必要がある場合は, <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?dmesg" name="dmesg">
コマンドを使ってみてください. このコマンドは, 古いカーネルの
ブート時のメッセージをすべて表示します. メッセージの中には,
新しいカーネルを設定するのに, 非常に有用な情報が含まれます.
<p><bf/注:/ うまく動作するカーネルができたら, 日付入りのカーネル
のスナップショットを <tt/kernel.YYMMDD/ のように作成することを
おすすめします. こうしておけば, 次にカーネルの構築をやってうまく
いかなくなってしまっても, <tt/kernel.GENERIC/ にわざわざ戻る
必要がなくなります. これは, GENERIC kernel でサポートされない
デバイスからブートしている場合は, 特に重要です
(経験者は語るってやつです).
<sect1>
<heading>
<tt/&lowbar;hw&lowbar;float/ が無いので, カーネルのコンパイルがうまくいきません.
</heading>
<p>推測ですけど, 数値演算コプロセッサを持ってないからと思って,
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?npx(4)"
name="npx0"> をカーネルコンフィグファイルから削除しちゃったんじゃ
ないですか? <tt/npx0/ は<bf/必須/です. コプロセッサがなくても,
<tt/npx0/ デバイスは削除してはいけません.
<sect1>
<heading>マルチポートシリアル関連のコードでの, 割り込みの競合</heading>
<p><bf/Q./ マルチポートシリアルをサポートするコードを含んだ
カーネルをコンパイルしようとすると, 最初のポートだけ検出され,
残りのポートは割り込みの競合のためスキップされたと言われます.
どうやったらいいでしょうか?
<p><bf/A./ ここでの問題は, FreeBSD にはハードウェアまたは
ソフトウェアの競合によってカーネルがクラッシュするのを防ぐ
コードが含まれているという点です. 解決するには, 最初のポート
にだけ IRQ の設定を書き, 残りは IRQ の設定を削除します.
以下に例を示します.
<verb>
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
</verb>
<sect1>
<heading>QIC-40/80 ドライブのサポートを有効にするには? </heading>
<p><tt/GENERIC/ コンフィグファイルの以下の行のコメントを外して
ください (もしくは使用するコンフィグファイルに追加してください).
そして <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdc(4)"
name="fdc"> の行に, ``<tt/flags 0x1/'' を追加してください.
<verb>
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
disk fd0 at fdc0 drive 0 ^^^^^^^^^
disk fd1 at fdc0 drive 1
#tape ft0 at fdc0 drive 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
</verb>
<p>次に, <tt>/dev/ft0</tt> デバイスを作成します. <tt>/dev/</tt>
に移動して, 以下のコマンドを実行します.
<verb>
sh ./MAKEDEV ft0
</verb>
<p>これは, 1 番目のドライブの例です. 2 番目には <tt/ft1/ を使い,
以降は同様にしてください.
<p><tt>/dev/ft0</tt> デバイスは, ``<tt/ft/'' と呼ばれる特別な
コマンドを使用して書き込みをおこなえます. 詳細については
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?ft" name="ft">
のマニュアルページを参照してください.
<p><tt/-current/ 以前のバージョンの <tt/ft/ には,
不良テープメディアの扱いに問題があります. <tt/ft/
がテープの同じ部分を行ったり来たりしているようであれば,
<tt/-current/ の <tt>/usr/src/sbin/ft</tt> から最新の <tt/ft/
を取得して試してみてください.
</sect>