doc/ja_JP.eucJP/FAQ/kernelconfig.sgml
1999-09-06 06:53:43 +00:00

99 lines
3.8 KiB
Text

<!-- $FreeBSD$ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.2 -->
<sect>
<heading>カーネルコンフィグレーション<label id="kernelconfig"></heading>
<p><em>訳: &a.kiroh;.<newline>10 November 1997.</em>
<sect1>
<heading>
カーネルをカスタマイズしたいんですが, 難しいですか?
<label id="make-kernel">
</heading>
<p>全然難しくありません. <url url="../handbook/kernelconfig.html"
name="ハンドブックのカーネルコンフィグレーションの節">を調べてください.
<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>