99 lines
3.8 KiB
Text
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/_hw_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>
|
|
|