aboutsummaryrefslogblamecommitdiff
path: root/ja_JP.EUC/handbook/kernelconfig.sgml
blob: 4fc3463f43bd2f84105dcce6d00ef806fd298fa3 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244



























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                                                                                    
<!-- $Id: kernelconfig.sgml,v 1.1.1.1 1996-11-15 05:14:40 asami Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->

<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> -->
  <chapt><heading>FreeBSDカーネルのコンフィグレーション <label id="kernelconfig"></heading>

    <p><em>原作: &a.jehamby;. <newline>6 October 1995.</em>

    <p><em>訳:
	&a.tomo;,
	 &a.yoshiaki;. <newline>
	 2 November 1996. </em>
    <!-- Original revision: 1.21 -->

	この章はシステムに合わせたカーネルの再構築の基礎について
	述べたものです.  この章は, システム管理の初心者から
	Unixシステム管理に十分な経験を積んだ人までを対象としています. 

    <sect><heading>なぜカスタムカーネルを作るか?</heading>

	<p>システムに合わせたカーネルはすべての Unixシステム管理者が
	避けて通ることのできない最も重要な通過儀礼の1つです. 
	この作業は, 多くの時間を必要としますが, あなたの FreeBSD
	システムに多くの利益をもたらします. GENERICカーネルは, 
	めったに使われることのないハードウェアをサポートするとともに, 
	考えられるすべての SCSIカードやネットワークカードをサポート
	しなければなりませんが, システムに合わせたカーネルは
	<em>あなたの</em> PC のハードウェアのみをサポートします. 
	これは, 次にあげるような利益をもたらします. 

	<itemize>

	  <item>あなたが持っていないハードウェアについては検出をおこなわな
		いので,	ブートにかかる時間が短くなります. 		

	  <item>システムに合わせたカーネルは多くの場合メモリ使用量が
		減ります. カーネルはいつもメモリ上に存在するので, 
		不必要なコードがあると本来プログラムが利用できるはずの
		RAM (実メモリ) を占めてしまいますのでこれは重要なことだ
		といえます. 
		したがって, メモリが少ないシステムでは, 
		カーネルの再構築は大変重要です. 

	  <item>必要に応じていくつかのカーネルオプションは調整すること
		ができ, またサウンドカードのような GENERICカーネルには
		<em>ない</em>デバイスドライバをカーネルに含めることが
		できます. 

	</itemize></p>

    <sect><heading>カスタムカーネルの構築とインストール<label id="kernelconfig:building"></heading>

      <p>まず, カーネル再構築に必要なディレクトリをざっと見てみましょう. 
	ここではディレクトリはすべて <tt>/usr/src/sys</tt>以下の相対位
	置で示します. また, <tt>/sys</tt>からもアクセス可能です. 
	ここには, カーネルの各部分を構成するサブディレクトリが
	いくつもあります. しかし, 私たちの目的では
	最も重要なのは <tt>i386/conf</tt>です. ここで, あなたの
	システムに合わせてカーネル コンフィグレーションを編集します. 
	それから <tt>compile</tt>ディレクトリ, ここはカーネルが作られる
        場所です. サポートされているデバイスやファイルシステムのディレ
        クトリツリーがオプション毎にサブディレクトリに分かれている論理
        的構成に注意してください. また, <tt>i386</tt>のディレクトリは 
        PCのハードウェアのみを扱い, <tt>i386</tt>以外のディレクトリは 
        FreeBSDが他のプラットフォームに移植される際には共有されるコー
	ドです. 

	<quote><em/注:/ もし, あなたのシステムに<tt>/usr/src/sys</tt>
	以下のディレクトリが<em>なければ</em>, カーネルのソースが
	インストールされていません. パッケージのインストール手順にしたがっ
	て, システムにインストールしてください. </quote>

	つぎに, <tt>i386/conf</tt>に移動して, GENERIC
	コンフィグレーションファイルをカーネルに与えたい名前に
	コピーしてください. たとえば:
<tscreen><verb>
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
</verb></tscreen>
	慣習として, この名前はすべて大文字でつづられます. もし, 
	いくつかの異なるハードウェアの FreeBSDマシンを扱うなら, 
	この名前にホスト名を含めるとよいでしょう. 
	ここでは, 例として MYKERNEL と呼ぶことにします. 
	
	<quote><em/注:/ この作業は root権限でおこなう必要があります. 
	そうでなければ, ``permission denied''というエラーが出ます. 
	</quote>

	では, MYKERNELをあなたの好きなエディタで編集してください. 
	もし, システムをインストールしたばかりならば, 利用できる
	エディタは <tt>vi</tt>だけかもしれません. ここでは使い方
	の説明はしませんが, <ref id="bibliography" 
	name="参考図書">にあるような多くの本で詳しく説明
	されていますので, そちらを参照してください. 
	まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ
	レーションに合せて変更した点などを記述して GENERICと区別がつく
	ようにしておきましょう.

	もし SunOSや他の BSDオペレーティングシステムでカーネルの
	再構築をしたことがあれば, このファイルはとても親しみ
	やすいでしょう. しかし, DOSのようなその他の
	オペレーティングシステムしか知らない人から見れば, 
	GENERICコンフィグレーションファイルはとても
	なじみにくいものかもしれません. そのような場合は, <ref
	id="kernelconfig:config" name="コンフィグレーションファイル">
	の節をゆっくりと注意深く読んでください. 

	<quote><em/注:/ 古いバージョンの FreeBSDからアップグレードを
	おこなう場合, 新しいカーネルソースを得た場所より新しいバージョンの
	<tt>config(8)</tt>を取ってくる必要があるかもしれません.  これは
        <tt>/usr/src/usr. sbin</tt>にあります. したがってこれらのソースをダ
        ウンロードする必要があります. 次のコマンドを実行する前に
        (configを)作りインストールをしておいてください. </quote>

	編集し終ったら, 次のコマンドによってコンパイル, インストール
	を行ってください. 
<tscreen><verb>
# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install
</verb></tscreen>
	新しいカーネルはルートディレクトリに <tt>/kernel</tt>という
	名前でコピーされ, 今までのカーネルは <tt>/kernel.old</tt>
	という名前へ変更されます. では, システムをシャットダウン, リブー
	トして新しいカーネルを使ってください. うまく行かない場合は, 
	この章の終りの
	<ref id="kernelconfig:trouble" name= "問題が起きた場合には">
	を参照してください. この章の新しい
	<ref id="kernelconfig:noboot" name="カーネルがブートしない">
	場合のリカバリの方法を注意深く読んでおいてください. 

	<quote><em/注:/ (サウンドカードのような)新しいデバイスを
		追加した場合は, 使う前に <tt>/dev</tt>ディレクトリで
		デバイスノードを追加しなければならないかもしれません. 
		詳しくは, <ref id="kernelconfig:nodes" 
		name="デバイスノード">を読んでください. </quote>

    <sect><heading>コンフィグレーション ファイル<label id="kernelconfig:config"></heading>
	<p>コンフィグレーション ファイルの一般的なフォーマット
	はとてもシンプルです. 各行は1つのキーワードと1つ以上の
	引数を含んでいます. 見やすくするために, ほとんどのキーワードは
	引数を1つしか書いてありません.
	<tt>#</tt>に続くものはすべてコメントとして扱われ, 
	無視されます. ここでは, それぞれのキーワードについて
	だいたい GENERICに出てくる順番で説明します. しかし, 
	お互いに関係のあるキーワードは, 実際には GENERICファイル上に
	バラバラに現れていても, (ネットワーキングのように)1つにまとめ
        てあります. おびただしい数のオプションの一覧が GENERICと同じディ
	レクトリの LINTコンフィグレーションファイルにあります. 
	もし, ある行の目的や必要性に疑問を持ったら最初に LINTをチェック
	してください. 

       <p>カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ
       うとしています. 従来は, 各々のオプションは単純にカーネルの
       Makefile中の <tt>CFLAGS</tt>行の <tt>-D</tt>スイッチに変換されて
       いました.  自然とオプションは際限なく増えて行きます. だれも実際に
       はどのオプションがどのファイルで参照されているかは知りません.

       <p>新しい方法では、すべてのオプション依存の <tt> #ifdef</tt>は当該オプショ
        ンを <tt>opt_<em>foo</em>.h</tt> (これらのファイルはconfigによって compileディレ
        クトリに作られます) から読み込むように変わりました.
        <tt>config</tt> の有効なオプションのリストは2つのファイルにお
        かれます. アーキテクチャに依存しないオプションは 
        <tt>/sys/conf/options</tt>に置かれ, アーキテクチャ依存のオプショ
        ンは<tt>/sys/<em>arch</em>/conf/options</tt>に置かれま
        す. <em>arch</em>の部分は例えば <tt>i386</tt>となります.


      <sect1><heading>必須キーワード</heading>

	<p>ここにあるキーワードはカーネルの構築に必要不可欠です. 

	  <descrip>

	    <tag>machine ``i386''</tag>

	    <p>最初のキーワードは <tt>machine</tt>です. 
		FreeBSDは Intelの 386とその互換チップ上でしか
		動かないので, i386を指定します. 

	      <quote><em>注:</em> 数字を含むキーワードはすべて
		クォーテーションマークで囲む必要があります. 
		そうしないと, <tt>config</tt>は混乱し, 
		386を実際の数値として扱ってしまいます. </quote>

	    <tag>cpu ``<em>cpu_type</em>''</tag>
	      
	    <p>次のキーワードは <tt>cpu</tt>です. 
		FreeBSDでサポートしている CPUの中から記述します. 
		<tt><em>cpu_type</em></tt>として指定可能な値は
		次の通りです. 
	      <itemize>
		<item>I386_CPU
		<item>I486_CPU 
		<item>I586_CPU
		<item>I686_CPU
	      </itemize>
		GENERICカーネルのように <tt>cpu</tt>の行の
		<tt><em>cpu_type</em></tt>が異なった値を持つものが
		複数あってもかまいません. カスタムカーネルでは,
		 あなたが持っている cpuを1つだけ指定するのが
		一番です. 例えば, もし Intelの Pentiumを持っていれば, 
		 <tt><em>cpu_type</em></tt>には, <tt>I586_CPU</tt>
		を使ってください. 

	    <tag>ident <em>machine_name</em></tag>

	    <p>次は, カーネルの識別名となる<tt>ident</tt>です. 
		GENERICからあなたがカーネルに与えたい名前に
		変えてください. ここでは, MYKERNELとします. 
		<tt>ident</tt>に与えた名前はカーネルの
		ブート時に表示されるので, 普段のカーネルとは別に
		カーネルに違う名前を与えたいとき(例えば, 
		実験用のカーネルを作りたい時など), 便利でしょう. 
		数字を含む名前にしたい場合は <tt>machine</tt><tt>cpu</tt>の時と同じようにクォーテーションマークで
		囲む必要があります. 

		Cコンパイラに <tt>-D</tt>スイッチで渡されるので, 
		<tt>DEBUG</tt>のような名前にしたり, <tt>vax</tt>
		といった他のCPUの名前など紛らわしい名前にしないで
		ください. 

	    <tag>maxusers <em>number</em></tag>
	     
	    <p>これは, 重要なシステムテーブルのサイズを決めます. ここ
               で与えられる数字はマシンに同時にログインすると考えられ
               るおよそのユーザ数です. しかし, 通常の使用環境であれば, 
               特に X Window System を立ち上げたり, ソフトウェアを 
               コンパイルするような使用であれば <tt>maxusers</tt>には少
               なくとも4以上を指定したほうがいいでしょう. その理由は,
               <tt>maxusers</tt>で決るテーブルで最も重要なものはプロセス
		の最大数であるからです. プロセス最大数は <bf><tt>20 +
               16 * maxusers</tt></bf>で与えられ, <tt>maxusers</tt>1
               にすると36プロセスしか同時には持てません. この中にはブー
               ト時にシステムによって起動する18個ぐらいのプロセス, Xを
               起動する時の15程度のプロセスも含みます.
		<tt>man</tt>ページを読むという1つのタスクでさえ, フィ
		ルタやファイル伸長や表示のために9つのプロセスを起動し
		ます. <tt>maxusers</tt>4にすれば, 同時に84個のプロセ
		スを持つことができるのでどんな人でも十分な数だといえる
		でしょう. 
		それでも他のプログラムを起動した場合に, あるいは, 
		(Walnut Creek CDROMのFTPサイトのように) 同時に多くの
		ユーザを抱えるサーバを走らせた場合に ``proc table
		full''というおぞましいエラーが起きる場合はこの値を増や
		し, カーネルを再構築してください. 

	      <quote><em/注:/ <tt>maxuser</tt>はあなたのマシン
		にログインできるユーザの数を制限するものでは
		<em>ありません</em>. 単に, あなたのシステムに
		ログインするユーザ数の最大値と各々のユーザが
		いくつのプロセスを走らせるかを考慮することに
		よってさまざまなテーブルの値を適切な値に設定
		するだけです. これに対し, <ref 
		id="kernelconfig:ptys" name="pseudo-device pty
		16"><em>remote logins</em>というキーワードは
		同時にリモートログインできるユーザ数を制限
		<em>します</em>. </quote>

	    <tag>config <em>kernel_name</em> root on <em>root_device</em></tag>

	    <p>これはカーネルの位置と名前を特定します. 
		伝統的にカーネルは <tt>vmunix</tt>と呼ばれますが, 
		FreeBSDでは <tt>kernel</tt>とふさわしい名前になりました. 
		<em>kernel_name</em>にはいつも <tt>kernel</tt>を
		使ってください. 名前を変えると多くのシステム
		ユーティリティが使えなくなります. 2番目の部分は
		ルートファイルシステムとカーネルのあるディスクと
		パーティションを指定してください. 
		SCSIドライブでなければ, <tt>wd0</tt>を,
		SCSIドライブならば <tt>sd0</tt>です. 
	  </descrip>

      <sect1><heading>一般的なオプション</heading>

	<p>以下はカーネルのサポートするさまざまなファイルシステムおよ
	びその他のオプションです. 

	  <descrip>

	      <label id="kernelconfig:mathemu">

	    <tag>options MATH_EMULATE</tag> 

	      <p>これは, 数値演算コプロセッサがない
		コンピュータ (386486SX) で数値演算コプロセッサ
		のエミュレーションを可能にします. もし, Pentiumや
		486DX, あるいは387487があれば, コメントアウト
		できます. 

	      <quote><em>注:</em> FreeBSD付属の数値演算
		コプロセッサエミュレータはあまり正確では
		<em>ありません</em>. 非常に正確な計算をおこないたい
		ならば, より優れた GNUのエミュレータである
		<tt>GPL_MATH_EMULATE</tt>に変えることを
		おすすめします. これはライセンスの関係でデフォルトでは
		含まれていません. </quote>

	    <tag>options ``COMPAT_43''</tag> 

	    <p>4.3BSDとの互換性のためのオプションです. 
		そのままにしておいてください. コメントアウトすると, 
		いくつかのプログラムで動作がおかしくなります. 

	    <tag>options BOUNCE_BUFFERS</tag>

	    <p>ISAデバイスやISA互換モードで動作する EISAデバイス
		では DMA (Direct Memory Access) は16MB以下のメモリに対し
		てのみ動作します. このオプションによりメモリが16MB以上
		のシステムでDMAを使うデバイスを動作させることができます. 

	    <tag>options UCONSOLE</tag>

	    <p>ユーザがコンソールを横取り (grab) できるようにします. 
		これは X Window System 上で便利です. 例えば, コ
		ンソール xtermを <tt>xterm -C</tt>とタイプして作ると, 
		そこに `write', `talk'などのメッセージがカーネルからコ
		ンソールへ送られるメッセージと同じように表示されます. 

	    <tag>options SYSVSHM</tag> 

	    <p>このオプションは System V の共有メモリを提供します. 
		最もよく利用されるのは X Window System の XSHM拡張
		です. これは多くのグラフィックを多用したプログラム
		(movie player の Xanimや Linux DOOMなど) では自動的に高速
		になるという利点があります. 
		X Window System を利用するのであればこれは間違いな
		く含めたくなるでしょう. 

	    <tag>options SYSVSEM</tag> 

	    <p>System V のセマフォをサポートします. 一般的に利用される
		ことは少ないですがカーネルサイズの増加は数百バイトだ
		けです. 
	    <tag>options SYSVMSG</tag> 

	    <p>System V のメッセージをサポートします. これを指定した場
		合もカーネルサイズの増加は数百バイトだけです. 

	      <quote><em/注:/  <tt>ipcs(1)</tt> コマンドは
		これらの System V の機構を利用しているプロセスを表示し
		ます. 
		</quote>
	      <quote><em>訳注: </em>共有メモリ, セマフォ, メッセージ(メッ
		セージキュー)  は System V系 で一般的なプロセス間通信の機
		構です. くわしくは System Vのプロセス間通信に関する文
		献, 「詳解 UNIXプログラミング」 (ソフトバンク) , 「UNIXネッ
		トワークプログラミング」 (トッパン) などを参照してくださ
		い. 
		</quote>

	  </descrip>

      <sect1><heading>ファイルシステムオプション</heading>

	<p>これらのオプションはさまざまなファイルシステムへのサポート
	を追加します. 少なくともブートするためのデバイスのサポートを含
	める必要があります. 標準的にはハードディスクからブートするので
	あれば <tt>FFS</tt> , ディスクレスワークステーションとしてイー
	サネットからブートするのであれば <tt>NFS</tt>です. 
	一般的に利用される他のファイルシステムをカーネルに含め, あまり
	利用しないファイルシステム (多分 MS-DOSファイルシステム?) のサポー
	トをコメントアウトすることができます. これは Loadable Kernel
	Module ディレクトリ <tt>/lkm</tt> から, 最初にそのタイプのファイ
	ルシステムがマウントされる時に動的にドライバがロードされるからです. 

	  <descrip>

	    <tag>options FFS</tag> 

	    <p>基本的なハードドライブ ファイルシステムです. ハードディ
		スクからブートする場合は残しておいてください. 

	    <tag>options NFS</tag> 

	    <p>ネットワーク ファイルシステムです. Ethernet経由で Unixファ
		イルサーバからパーティションをマウントする予定がない場
		合はコメントアウトすることができます. 

	    <tag>options MSDOSFS</tag>

	    <p>MS-DOS ファイルシステムです. ブート時に DOSフォーマット
		のハード ドライブをマウントする予定のない場合はコメン
		トアウトしても安全です. 先に示したように, DOSパーティ
		ションをマウントする時に自動的にロードされます. また 
		 (ports コレクションにある) <tt>mtools</tt> という素晴
		らしいソフトウェアにより mount , unmountなしで DOSフロッ
		ピーにアクセスすることができます (これは MSDOSFSも必要
		ありません). 

	    <tag>options ``CD9660''</tag> 

	    <p> CD-ROMのための ISO 9660 ファイルシステムです. CD-ROMを
		持っていないか, 時々 データ CDをマウントするだけならコ
		メントアウトしましょう (データ CDを最初にマウントする
		時に動的にロードされます). オーディオ CDはこのファイル
		システムは必要ありません. 

	    <tag>options PROCFS</tag>

	    <p>プロセス ファイルシステムです. これは疑似的なファイルシ
               ステムで /procにマウントされ, <tt>ps(1)</tt>などのプロ
               グラムがプロセスに関してより詳しい情報を与えてくれるよ
               うになります.

	    <tag>options MFS</tag> 

	    <p>メモリマップド ファイルシステムです. これは基本的に一時
		ファイルを記憶するための高速な RAMディスクで, 大きな
		swap領域がある場合に有効です.  MFSパーティションをマウ
		ントするに適した場所は多くのプログラムが一時ファイルを
		置く <tt>/tmp</tt>です. MFS RAMディスクを <tt>/tmp</tt>
		にマウントするには以下の内容を <tt>/etc/fstab</tt>に追
		加してリブートするか <tt>mount /tmp</tt>とタイプします. 

<tscreen><verb>
/dev/wd1s2b   /tmp mfs rw 0 0 
</verb></tscreen>

	      <quote><em/注:/ <tt>/dev/wd1s2b</tt>をあなたが使用して
		いるswap パーティションに置き換えてください. これは以
		下のように <tt>/etc/fstab</tt>に書かれているでしょう. 
<tscreen><verb>
/dev/wd1s2b none swap sw 0 0
</verb></tscreen>
	      </quote>

	      <quote><em/注:/ <!-- MFS は現在のところ少しの制限があ
		ります (例えば, 2つのプログラムが同時に <tt>/tmp</tt>デ
		バイスにアクセスすることはできません). そのためいまの
		ところは使わない方が無難です. --> また, <tt>MFS</tt>ファ 
		イルシステムは動的にロードすることは<em>できません
		</em>. したがって使いたい場合はコンパイル時に
		カーネルに<em>含める必要があります</em>. 
		</quote>

	    <tag>options QUOTA</tag> 

	    <p>ディスククォータを有効にします. アクセスが公開されてい
		るシステムで (一人のユーザが) <tt>/home</tt>パーティショ
		ン (全体) をあふれさせることができないようにそれぞれのユーザ
		にディスククォータを発行することができます. 
		このコードはいくらかバグがありますので必要のない場合は
		使わないでください. ディスククォータについての詳しい内
		容はマニュアルページの <tt>quota(1)</tt>を見てください. 
	  </descrip>

      <sect1><heading>基本的なコントローラとデバイス</heading>

	<p>この節では FreeBSDでサポートされているディスク, テー
	プ, CD-ROMコントローラについて示します. 
	 <ref id="kernelconfig:scsi" name="SCSI"> コントローラと <ref
	  id="kernelconfig:network" name="ネットワーク"> カードについ
	ては別の節になっています. 

	  <descrip>

	    <tag>controller isa0</tag> 
	    <p> FreeBSDのサポートするすべての PCで必要です. IBM PS/2 (マイ
		クロチャネルアーキテクチャ) では現時点では FreeBSDは動
		きません. 

	    <tag>controller pci0</tag> 

	    <p>PCIバスを持つマザーボードの場合は含めます. これにより
		PCIカードの自動認識と PCIから ISAバスへのゲートウェイが
		可能になります. 

	    <tag>controller fdc0</tag>

	    <p>フロッピードライブコントローラです. 
	      <tt>fd0</tt> は ``A:'' ドライブで
	      <tt>fd1</tt> は ``B:'' ドライブです.   <tt>ft0</tt> は
	      フロッピーコントローラに接続する QIC-80 テープドライブで
		す. 対応するデバイスがない場合はそれぞれの行をコメント
		アウトしてください. 

	      <quote><em/注:/QIC-80テープのサポートは別に 
		<tt>ft(8)</tt>というフィルタプログラムが必要です. 詳し
		くはマニュアルページを見てください. </quote>

	    <tag>controller wdc0</tag> 

	    <p>プライマリIDEコントローラです. <tt>wd0</tt><tt>wd1</tt>はそれぞれマスタ, スレーブドライブで
               す. <tt>wdc1</tt> は セカンダリの IDEコントローラで3台
               目, 4台目のハードディスクまたは IDE CD-ROMのある場合に
               使います. 利用しない行はコメントアウトしてください (例え
               ば, SCSIハードディスクのみを使う場合は6行全部をコメント
               アウトしてもよいかもしれません).

	    <tag>device wcd0<label id="kernelconfig:atapi"></tag>

	      <p>このデバイスは IDE CD-ROMのサポートをします.
	      <tt>wdc0</tt>を有効にしておく必要があり, もし 2つ以上の IDE
	      コントローラがあり, そのうちの 2つ目のカードに CD-ROMを接
	      続する場合 <tt/wdc1/ も必要です.
	      また <tt>options ATAPI</tt>を書いておく必要もあります. 

	    <tag>device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr</tag>

	    <p><tt>npx0</tt>はFreeBSDハードウェアコプロセッサとソフト
		ウェアエミュレータ両方の浮動小数点演算ユニットへのインタ
		フェースです.  これは <em/不可欠/ です. 

	    <tag>device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr</tag>

	    <p>Wangtek と Archive の
	      QIC-02/QIC-36 テープドライブのサポートです. 

	    <tag>Proprietary CD-ROM support</tag>

	    <p>以下のようなドライブを <em>proprietary</em>(独自の)
		CD-ROMドライブと呼ぶことにします. これらのドライブは専
		用のコントローラを持つか, サウンドブラスタ16などのサウ
		ンドカードに接続します. これらは IDEでも SCSIでも<em>あ
		りません</em>. 多くの標準速や2倍速の古い CD-ROMはこれら
		のインタフェースを持っていますが, より新しい四倍速の
		ものは <ref id="kernelconfig:atapi" name="IDE"><ref
	      id="kernelconfig:scsi" name="SCSI">でしょう. 


	      <descrip>

		<tag>device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr</tag>

		<p>ミツミ製 CD-ROM (LU002, 
		  LU005, FX001D)です. 

		<tag>device scd0 at isa? port 0x230 bio</tag>
		
		  <p>ソニー製 CD-ROM (CDU31,CDU33A)です. 

		<tag>controller matcd0 at isa? port ? bio</tag>

		<p>松下/パナソニック製 CD-ROM (サウンドブラスタ用
		クリエィティブ ラボ製として販売されていました) です. 

	      </descrip>

	  </descrip>

      <sect1><heading>SCSI デバイスのサポート<label id="kernelconfig:scsi"></heading>

	<p>この節では FreeBSDのサポートするいろいろな SCSIコント
	ローラとデバイスのサポートについて書きます. 

	  <descrip>

	    <tag>SCSI コントローラ</tag>

	    <p>以下の十数行は異る種類の SCSIコントローラのサポートです. 
		使用しているもの以外の部分はコメントアウトしてください. 

	      <descrip>

		<tag>controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr</tag>

	  <p>ほとんどの Buslogic社のコントローラです. 

	<tag>controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector uhaintr</tag>

	  <p>UltraStor 14F と 34F です. 

	<tag>controller ahc0</tag>

	  <p>Adaptec 274x/284x/294x です. 

	<tag>controller ahb0    at isa? bio irq ? vector ahbintr</tag>

	  <p>Adaptec 174x です. 

	<tag>controller aha0    at isa? port ``IO_AHA0'' bio irq ? drq 5 vector ahaintr</tag>

	  <p>Adaptec 154x です. 

	<tag>controller aic0    at isa? port 0x340 bio irq 11 vector aicintr
</tag>

	  <p>Adaptec 152x や サウンドカードなどに使われている Adaptec
	AIC-6360 チップです.  (slow!)

	<tag>controller nca0    at isa? port 0x1f88 bio irq 10 vector ncaintr
</tag>

	  <p>NCR 5380を使っている ProAudioSpectrum や Trantor T130 で
	す. 

	<tag>controller sea0    at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr</tag>

	  <p>Seagate ST01/02 8 ビットコントローラです.  (slow!)

	<tag>controller wds0    at isa? port 0x350 bio irq 15 drq 6 vector wdsintr</tag>

	  <p>Western Digital WD7000コントローラです. 

	<tag>controller ncr0</tag>

	<p>NCR 53C810, 53C815, 53C825, 53C860, 53C875 チップを使った 
	PCI SCSI コントローラです.  

	      </descrip>

	    <tag>options ``SCSI_DELAY=15''</tag>

	    <p> このオプションによりカーネルはそれぞれの SCSIデバイスを
		プローブする前に 15秒間待ちます. IDEドライブのみを使用
		している場合は無視して構いません. ブートを速くするため
		にこの数値を 5秒ぐらいまで小さくしたいでしょう. そうし
		た場合, FreeBSDが SCSIデバイスを認識しにくくなるかもし
		れません. その時は、もちろんこのオプションの値は元に戻
		さないといけません.


	    <tag>controller scbus0</tag> 

	      <p>SCSIコントローラがある場合, この行で SCSI全般のサポー
		トを与えます. SCSIのない場合, この行と以下の3つの行をコメ
		ントにすることができます. 

	    <tag>device sd0</tag> 

	    <p>SCSIハードディスクのサポートです. 

	    <tag>device st0</tag> 

	    <p>SCSIテープドライブのサポートです. 

	    <tag>device cd0</tag> 

	    <p>SCSI CD-ROM のサポートです. 

	    <p> 上のエントリについている <bf>0</bf>はいくらか誤解を招き
		やすいかもしれません. これらのデバイスはすべてカーネルが
		見つけた時に割り当てがおこなわれ, SCSIバスに何台つながってい
		るか, ターゲット IDが何番であるかはここの記述とは関係あ
		りません. 

		明示的に「固定的な」ターゲット IDの特定のデバイスへの
		割り当てをおこないたい場合は LINT カーネルコンフィグレーションファイルの
		該当する部分の説明を参照してください.

	  </descrip>

      <sect1><heading>コンソール, バスマウス, Xサーバのサポート</heading>

	<p>2つのタイプのコンソールのから1つを選ぶ必要があります. また
	X Window System を利用する場合, XSERVERオプションを有効にし
	ます. またバスマウスとPS/2マウスのオプションもあります. 
	
	  <descrip>

	    <tag>device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr</tag>

	    <p><tt>sc0</tt> はデフォルトのコンソールドライバで SCOコン
		ソールに似ています. このデバイス, あるいは VT220コンパ
		チブルドライバの <tt>vt0</tt>いずれを使う場合もほとんど
		のフルスクリーンプログラムは <em>termcap</em>などのターミ
		ナルデータベースライブラリを通してアクセスしますので, 
		あまり違いはないでしょう. 
		このコンソールを使う場合でフルスクリーンプログラムでト
		ラブルが起きる場合にはログインした時に TERM変数の値を
		``scoansi''にしてください. 

	    <tag>device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint</tag>

	    <p>これはVT-220コンパチブルコンソールドライバで VT100/102の
		上位互換です. これは <tt>sc0</tt>の使えない種類のラッ
		プトップ機でもうまく動きます. ログイン時に TERM変数の値
		を``vt100'' か ``vt220''にしてください. また, このドラ
		イバはネットワークを介して多くの異るマシンから接続する
		場合も便利です. <tt>sc0</tt>デバイスのための
		<em>termcap</em><em>terminfo</em>エントリは必ずしも
		利用できるわけではありませんが -- ``vt100''はいずれの 
		 プラットフォームでも利用可能でしょう. 

	      <descrip>

		<tag>options ``PCVT_FREEBSD=210''</tag> 

		  <p><tt>vt0</tt> コンソールドライバを使う場合に必要で
			す. 

		<tag>options XSERVER</tag> 

		<p> これは <tt>XFree86</tt> X サーバを動かすのに必要な
		コードを含めます. 
	   
	      </descrip>

	    <tag>device mse0 at isa? port 0x23c tty irq 5 vector ms</tag>

	    <p> Logitech や ATIのバスマウス入力カードを利用する場合のデ
		バイスです. 

	      <quote><em/注:/ シリアルマウスを使う場合にはこれら2つ
		の行(バスマウスとPS/2マウスに関する行)
		は無視して, 代わりに <ref id="kernelconfig:serial"
		name="シリアル"> ポート(おそらくはCOM1)を有効にしてくだ
		さい. </quote>

	    <tag>device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector psmintr</tag> 

	    <p>このデバイスは PS/2マウスポートにマウスを接続する場合に
		使います. 

	  </descrip>

      <sect1><heading>シリアル, パラレルポート</heading>

	<p>ほとんどすべてのシステムにこれらはあります. プリンタを接続す
	る場合は <ref id="printing" name="プリンタの利用">の章が非常
	に役に立つでしょう. モデムを使う場合は <ref id="dialup"
	  name="ダイヤルアップ アクセス"> に非常に詳しいシリアルポートの設定とデ
	バイスの使い方があります. 

	  <descrip>

	    <tag>device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr<label id="kernelconfig:serial"></tag>

	    <p><tt>sio0</tt>から<tt>sio3</tt>は MS-DOSにおける COM1から
		COM4に相当する4本のシリアルポートです. 
		COM4に内蔵モデムがあり COM2を使う場合, FreeBSDからアク
		セスするためにはモデムのIRQを2へ変更する必要があるとい
		うことを注意しておきます (技術的な理由より IRQ 2 = IRQ
		9となります). 
		マルチポートシリアルカードを使う場合にマニュアルページ
		の<tt>sio(4)</tt>にはこのオプションで使う値などのよ
		り多くの情報があります. ビデオカードの中には (特に S3
		チップベースのものには) IOアドレスの <tt>0x*2e8</tt>から
		を利用するものがあり, また多くの安価なシリアルカードは
		IOアドレス空間を16-bitフルデコードしていませんので, こ
		れらのカードは衝突します. この場合 COM4ポートは実質上
		利用できません. 

		それぞれのシリアルポートは (割込みの共有をサポートした
		マルチポートカードを利用していないのであれば) 別々の IRQ
		を割り当てる必要がありますので COM3と COM4のデフォルトの 
		IRQは利用できません. 

	    <tag>device lpt0 at isa? port? tty irq 7 vector lptintr</tag> 

	    <p><tt>lpt0</tt> から <tt>lpt2</tt>は利用可能な3本のプリン
		タポートです. 多くの場合は1本のみですので他の2本はない
		のであればコメントアウトして構いません. 

	  </descrip>

      <sect1><heading>ネットワーク<label id="kernelconfig:network"></heading>

	<p> FreeBSDでは他の一般的な Unixと同様にネットワークが<em>
	非常に</em> 重視されています. イーサネットカードが
	なくても必須のオプションとダイヤルアップ ネットワークのサポー
	トに注意してください. 

    <descrip>

	<tag>options INET</tag>
	ネットワーキングのサポートです. ネットワークに接続する予定がな
	くても残しておいてください. 多くのプログラムは少なくともループ
	バックネットワーキングが必要です(つまり, PCの中でネットワーク
	コネクションをおこないます). したがってこのオプションは本質的
	に不可欠です. 

	    <tag>Ethernet cards</tag>

	    <p>以下にさまざまなイーサネットカードを有効にするオプショ
		ンを示します. ネットワークカードがなければこれらすべてを
		コメントアウトすることができます. そうでなければ利用す
		る特定のイーサネットカードをサポートするオプションを残
		しておきます. 

	      <descrip>

		<tag>device de0</tag>

		<p>DECの DC21040, DC21041, DC21140チップを使った PCIイー
		サネットアダプタです.  


		<tag>device          fxp0

		<p>Intel EtherExpress Pro/100B 高速イーサネットカード
		です.

		<tag>device vx0

		<p>3Com の 3C590, 3C595です (いくらか bugがあります).

		<tag>device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr</tag>

		<p>Cronyx/Sigma の マルチポート同期/非同期カードです. 
		  (with Cisco or PPP framing)

		<tag>device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr</tag>

		<p>Western Digital と SMC の 80xx, 8216 Elite Ultra ; 
		ノベル NE1000, NE2000; 3Com の 3C503; HPの PC Lan Plus 
		(HP27247B とHP27252A) です. 

		<tag>device el0 at isa? port 0x300 net irq 9 vector elintr</tag>

		<p>3Com の 3C501 です. (slow!)

		<tag>device eg0 at isa? port 0x310 net irq 5 vector egintr</tag> 

		<p>3Com の 3C505です. 

		<tag>device ep0 at isa? port 0x300 net irq 10 vector epintr</tag>

		<p>3Com の 3C509 です(バグがあります). 

		<tag>device fe0 at isa? port 0x240 net irq ? vector feintr</tag> 

		<p>富士通 MB86960A/MB86965A ベースのイーサネットカード
		です. 

		<tag>device fea0 at isa? net irq ? vector feaintr</tag>

		<p>DEC DEFEA EISA FDDI アダプタです. 

		<tag>device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr</tag>

		<p>AT&amp;T StarLAN 10 と EN100; 3Com の 3C507;
		   NI5210 です. 

		<tag>device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr</tag>

		  <p>Intel の EtherExpress 16です. 

		<tag>device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr</tag> 

		<p>DEC の EtherWorks 2 and EtherWorks
		  3 (DEPCA, DE100, DE101, DE200, DE201, DE202, 
		  DE203, DE204, DE205, DE422)です. 

		<tag>device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr</tag>

		<p>Lance/PCnet カード (Isolan, Novell NE2100, 
		  NE32-VL)です. 

		<tag>device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr</tag>

		<p>IBM/ナショナルセミコンダクタの PCMCIA イーサネット
		コントローラです. 

		<tag>device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr</tag> 

		  <p>3Com の PCMCIA Etherlink III です. 

	      </descrip>

	      <quote><em/注:/ いくつかのカードでは (特に NE2000では) 
		「標準値」がありませんので IOポートやIRQの値を変更す
		る必要がある場合があります. </quote>

	    <tag>pseudo-device loop</tag> 

	    <p><tt>loop</tt> は TCP/IPの一般的なループバックデバイスで
		す.  telnet や FTPを <em>localhost</em> (<tt>127.0.0.1</tt>)
		に対してかけるとこの疑似デバイスを通して帰ってきます. 
		不可欠です. 

	    <tag>pseudo-device ether</tag> 

	    <p><tt>ether</tt>はイーサネットカードがある場合のみ必要で
		一般的なイーサネットプロトコルを含めます. 

	    <tag>pseudo-device sl <em>number</em></tag>

	    <p><tt>sl</tt> は SLIP (Serial Line Internet Protocol) をサポー
		トします. これはほとんど完全に, より簡単に設定ができ, モ
		デム to モデム接続に適した, よりパワフルな PPPに取って代
		わられています. <tt>sl</tt>の後の <em>number</em> は同
		時にいくつの SLIPセッションをサポートするかを示します. 
		SLIPの設定のより詳しい情報はこのハンドブックの
		「PPPとSLIP」の章の 
		<ref id="slipc" name="SLIPクライアントのセットアップ"><ref id="slips" name="SLIPサーバのセットアップ方法
                ">について書かれた節にあります。

	    <tag>pseudo-device ppp <em>number</em></tag>

	    <p><tt>ppp</tt>はダイヤルアップ インターネット接続のための
		カーネルモード PPP (Point-to-Point Protocol) をサポート
		します. ユーザアプリケーションとして <tt>tun</tt> を
		利用する PPPの実装もあり, こちらはより柔軟性がありデマ
		ンドダイアリング(プログラムが接続要求を出した時に自動
		的にダイヤルをおこなう)などの機能もあります. それでもこ
		の PPPドライバを利用したい場合は <ref id="ppp"
		name="カーネル PPPの設定"> の節を読んでください. 
		<tt>sl</tt>デバイスと同じように <em>number</em>は同時
		に PPP接続できる数を示します. 

	    <tag>pseudo-device tun <em>number</em></tag>

	    <p><tt>tun</tt> はユーザモード PPPソフトウェアが利用しま
		す. このプログラムは設定が簡単で非常に高速です. 
		また自動ダイヤル オン デマンドなどの機能を持ちます. 
		 <tt>tun</tt>の後のnumber は同時におこなうことのできる 
		PPPセッションの数を示します.  <ref id="userppp"
	      name="ユーザ PPP のセットアップ"> の節により多くの情報があ
		ります. 

	    <tag>pseudo-device bpfilter <em>number</em></tag>

	    <p>バークレイ パケットフィルタです. この疑似デバイスはネッ
              トワークインタフェースを無差別 (promiscuous) モードにし
              てネットワーク (例えば単一のイーサネット) にブロードキャス
              トされるすべてのパケットを取り入れることを可能にします. こ
              れらのパケットはディスクに取り入れられたり
              <tt>tcpdump(1)</tt> によって検査されます. この機能の実現
              はネットワーク全体のセキュリティとの微妙な妥協点であるこ
              とに注意してください. 
		bpffilter の後の <em>number</em>は同時に検査することの
		できるインタフェースの数を示します. 
		危険の可能性について十分解っている場合を除いてこのオプ
		ションは奨めません. すべてのネットワークカードでこの機能
		をサポートをしてはいません. 

	  </descrip>

      <sect1><heading>サウンドカード</heading>

	<p>ここは GENERICカーネルに含まれていない最初のセクションです. 
	サウンドカードのサポートをするためには LINTコンフィグレーショ
	ンファイル(これには<em>すべての</em>デバイスが含まれています)か
	ら以下のような適切な行をコピーする必要があります. 

	  <descrip>

	    <tag>controller snd0</tag>

	    <p>サウンドドライバ一般のコードです. 
		 <tt>pca</tt>を除く以下のすべてのサウンドカードで必要で
		す. 

	    <tag>device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr</tag>

	    <p>ProAudioSpectrum のオーディオ と MIDI です. 

	    <tag>device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr</tag>

	    <p>SoundBlaster です. 

	      <quote><em/注:/ SoundBlaster の IRQが標準と異る値, 
		例えば 5になっている場合, <tt>irq 7</tt><tt>irq
		5</tt>に書き換え, キーワード <tt>conflicts</tt>を削除し
		てください. さらに <tt>options ``SBC_IRQ=5''</tt>の行を
		加える必要があります. </quote>

	    <tag>device sbxvi0 at isa? drq 5</tag>

	    <p>SoundBlaster 1616-bit オーディオです. 

	      <quote><em/注:/ SB16の DMAチャネルが標準と異っている(
		例えば 67)キーワード <tt>drq 5</tt>を適切な値に書き直
		して, (DMA 6の場合) <tt>options "SB16_DMA=6"</tt>を付け
		加えてください. </quote>

	    <tag>device sbmidi0 at isa? port 0x330</tag>

	    <p>SoundBlaster 16 の MIDI インタフェースです. 
		SoundBlaster 16を使う場合必ずこの行を含めてコンパイル
		してください. 

	    <tag>device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr</tag>

	    <p>Gravis Ultrasound です. 

	    <tag>device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr</tag>

	    <p>Microsoft Sound System です. 

	    <tag>device opl0 at isa? port 0x388 conflicts</tag>

	    <p>AdLib FMシンセサイザオーディオです.   
	      AdLib, SoundBlaster, ProAudioSpectrum を使い 
		<tt>playmidi</tt> (ports にあります) などのプログラムで
		MIDIの演奏をしたい場合にこの行を含めます. 

	    <tag>device mpu0 at isa? port 0x330 irq 6 drq 0</tag>

	    <p>Roland MPU-401 カードです. 

	    <tag>device uart0 at isa? port 0x330 irq 5 vector ``m6850intr''</tag>

	    <p>MIDIインタフェースの 6850 UART です. 

	    <tag>device pca0 at isa? port ``IO_TIMER1'' tty<label id="kernelconfig:pcaudio"></tag>

	    <p>PC のスピーカーを使ったオーディオです. これは非常に品質
		が悪く, CPUの性能, 負荷に強く依存します, と言っておき
		ます (サウンドカードは必要ありませんが). 

	  </descrip>

	  <quote><em/注:/ 追加のドキュメントが 
	    <tt>/usr/src/sys/i386/isa/sound/sound.doc</tt>にあります. 
		また, これらのデバイスを追加する場合は, サウンド<ref
	id="kernelconfig:nodes" name="デバイスノード">を作る必要があり
		ます. </quote>

      <sect1><heading>疑似デバイス</heading>

        <p>疑似デバイスドライバはデバイスドライバと同様に働きますがマ
	シン上に対応する実際のハードウェアがないカーネルの部分です. 
	 <ref id="kernelconfig:network" name="ネットワーク">関連の
	疑似デバイスはそちらのセクションに示しました. ここでは残りにつ
	いて示します. 

	  <descrip>

	    <tag>pseudo-device gzip</tag>

	    <p><tt>gzip</tt><tt>gzip</tt>によって圧縮された FreeBSDの
		プログラムを実行できるようにします. /standにあるプログ
		ラムは圧縮されているのでカーネルにこのオプションをつけ
		ておくのはいい考えでしょう.

	    <tag>pseudo-device log</tag>

	    <p><tt>log</tt> はカーネルエラーのログを取るのに使います. 
		不可欠です. 

	    <tag>pseudo-device pty <em>number</em><label id="kernelconfig:ptys"></tag>

	    <p><tt>pty</tt> は「仮想ターミナル」や仮想ログインポート
		です. 外部からの <bf>telnet</bf><bf>rlogin</bf>セッ
		ション, xterm, emacsなどのアプリケーションが使います. 
		 <em>number</em>は作ることのできる <tt>pty</tt>の数を示
		します. 
		GENERICのデフォルトは16で, 同時の xtermウィンドウやリモー
		トログインのために増やす場合は最大で 64までです. 

	    <tag>pseudo-device snp <em>number</em></tag>

	    <p>スヌープデバイスです. この疑似デバイスはあるターミナル
		セッションが <tt>watch(8)</tt> commandによって他のター
		ミナルを監視することを可能にします. この機能の実現はセ
		キュリティとプライバシに対して極めて微妙な関係があり
		ます. snpの後の <em>number</em>は同時におこなうことのでき
		るスヌープセッションの総数です. 選択可能です. 

	    <tag>pseudo-device vn</tag>

	    <p>Vノードドライバです. ファイルを <tt>vnconfig(8)</tt>コマ
		ンドによってデバイスとして取り扱うことを可能にします. 
		このドライバによりフロッピーディスクイメージを操作したりファ
		イルをスワップデバイスとして (MS Windowsのスワッ
		プファイルなどを)用いることができます. 選択可能です. 


           <tag>pseudo-device ccd <em>number</em></tag>

	  <p>ccd (concatenated disk)デバイスはいくつかのディスクパーティ
          ションを融合して大きなディスクのように見せることができます.
          ccdの後の <em>number</em>は同時に作ることのできる疑似ディスクの数です.
          (詳しいことは <tt>ccd(4)</tt><tt>ccdconfig(8)</tt>のマニュ
	  アルを参照してください.) 選択可能です.

	  </descrip>

      <sect1><heading>ジョイスティック, スピーカー, その他</heading>

	<p>この節は FreeBSDのここまでに示した以外のハードウェア
	デバイスへのサポートについて示します. これらは GENERICカーネル
	には含まれませんのでこのハンドブックや LINT (このファイルには
	<em>すべての</em>デバイスのサポートが含まれます) からコピーする必
	要があります. 

	  <descrip>

	    <tag>device joy0 at isa? port ``IO_GAME''</tag>

	    <p>PC のジョイスティックです. 

	    <tag>pseudo-device speaker</tag>

	    <p> IBM BASIC スタイルの PC内蔵スピーカーのサポートです. 
		シェルスクリプトで簡単な演奏をする
		<tt>/usr/sbin/spkrtest</tt> やキーボードを使って単純なピ
		アノのように演奏することができる
		<tt>/usr/games/piano</tt> (<em>games</em>パッケージをイ
		ンストールした場合にはあります) のようないくつかのプロ
		グラムで使われます. また素晴らしいテキストロールプレイ
		ングゲームである NetHack (ports コレクションにあります)
		はゲーム中の楽器の演奏でこのデバイスを使うように設定を
		することができます (訳注:日本語化されたJNetHackもportsに
		あります). 

	    <p><ref id="kernelconfig:pcaudio" name="pca0"> デバイスの
		項も参照してください. 

	  </descrip>

    <sect><heading>デバイスノードを作る<label id="kernelconfig:nodes"></heading>

      <p>カーネル内のほとんどすべてのデバイスは対応する ``node'' エント
	リが <tt>/dev</tt> ディレクトリにあります. これらのノードは普
	通のファイルのように見えますが, 実際にはプログラムがデバイスに
	アクセスするのに用いるカーネル内への特別なエントリです. 
	シェルスクリプトである <tt>/dev/MAKEDEV</tt>はオペレーティング
	システムを最初にインストールする時に実行され, サポートされてい
	る大部分のデバイスのノードを作ります. 
	しかし, <em>すべての</em>ノードが作られるわけではありませんので
	新しいデバイスのサポートを加える時は対応するエントリがこのディ
	レクトリにあるかどうか確認してもしなければ, 作ってください. 
	以下に例を示します. 

	IDE CD-ROMのサポートをカーネルに加えるとします. 次の行
	を加えます. 

<tscreen><verb>
controller wcd0
</verb></tscreen>

	これにしたがって, <tt>/dev</tt>ディレクトリに <tt>wcd0</tt>で始ま
	るエントリを捜してください. 1文字が後ろにつくかもしれません. 後
	ろについた文字が `c'であるか先に `r'のつくエントリは `raw'デバ
	イスを示します. 
	それらのファイルがないことが明らかになったとします. そこで
	<tt>/dev</tt> ディレクトリに移動して次のようにタイプします. 


<tscreen><verb>
# sh MAKEDEV wcd0
</verb></tscreen>

	スクリプトの実行が終ったら <tt>/dev</tt><tt>wcd0c</tt><tt>rwcd0c</tt> エントリがあることを確認してください. これによ
	り正しく実行されたことがわかります. 


	サウンドカードの場合のコマンドは次の通りです. 
<tscreen><verb>
# sh MAKEDEV snd0
</verb></tscreen>

	これにより対応するエントリが作られます. 以上の簡単な手順を
	エントリのない GENERICに含まれないデバイスではおこなうことになり
	ます. 
	
	<quote><em/注:/ すべての SCSIコントローラは同じ <tt>/dev</tt>の
	エントリを使用しますのでノードを作る必要はありません. またネッ
	トワークカードと SLIP/PPP疑似デバイスは <tt>/dev</tt>にはエント
	リがありませんのでこれらについても作る必要がありません. 
	 </quote>

<sect><heading>問題が起きた場合には<label id="kernelconfig:trouble"></heading>

      <p>カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま
	す. 

	<descrip>

	  <tag>Config コマンドの失敗</tag>

	  <p> カーネルにあなたの設定をおこなった場合で <tt>config</tt>コ
		マンドが失敗したのであれば, 多分どこかで単純な間違いを
		やっているのでしょう. さいわい, <tt>config</tt>はトラ
		ブルの起きた行番号を出力しますので <tt>vi</tt>で素早く
		見つけることができます. 例えばもし次のように出力されれ
		ば, 


<tscreen><verb>
config: line 17: syntax error
</verb></tscreen>

		<tt>vi</tt>のコマンドモードで ``17G''とタイプすればあな
		たは問題のところへ飛ぶことができます. GENERIC カーネル
		のファイルや他のリファレンスと比較して注意深く修正して
		ください. 


	  <tag>Make コマンドの失敗</tag>

	  <p> <tt>make</tt> コマンドが失敗した場合には, カーネル設定で
		<tt>config</tt>がとらえられなかったような間違いをして
		いることが多いようです. ふたたびコン
		フィグレーションを見直してください. それでも問題を解決
		することができなければ &a.questions
		へあなたのカーネルのコンフィグレーションをつけてメー
		ルしてください. 誰かが素早く間違いを見つけてくれるで
		しょう.

	  <tag>カーネルがブートしない<label id="kernelconfig:noboot"></tag>

	  <p>新しいカーネルがブートしなかったり, デバイスの認識をしな
		い場合でもあわてないでください! さいわい, BSDは利用で
		きないカーネルから復帰する優れたメカニズムがあります. 
		FreeBSDの bootプロンプトでリターンキーを押すかわりに
		単にブートさせたいカーネルの名前 (例えば 
		``kernel.old'') をタイプするだけです. カーネルの再設定
		をおこなう場合に現在のカーネルを利用できるように取ってお
		くのはよい考えです. 

		問題のないカーネルでブートした後にあなたのコンフィグレー
		ションファイルを調べ, 再び構築を試みてください. 
		<tt>/var/log/messages</tt> ファイルにはすべての成功した
		ブートのカーネルのメッセージやその他の記録があり, これ
		は助けになる情報の一つでしょう. また, 
		<tt>dmesg(8)</tt>コマンドは現在のブート時のカーネルメッ
		セージを出力します. 

	    <quote><em/注:/ カーネルの構築中にトラブルが起きた時に使
		うために GENERICや他のカーネルを次の構築で消されない
		ように異る名前で保存するようにしてください. 
		<tt>kernel. old</tt>は新しいカーネルをインストールする
		時に, その一つ前にインストールしたうまく動かないかもしれ
		ないカーネルで上書きされてしまいますので当てにできませ
		ん. またできる限り早く動作しているカーネルを本来の 
		``kernel''の位置に移動させてください. そうしないと
		<tt>ps(1)</tt>のようなコマンドが正しく動きません. 
		<tt>make</tt> でインストールされたカーネルのファイルを
		(別のカーネルに戻すために) 「アンロック」するための特別
		のコマンドは
<tscreen><verb>
# chflags noschg /kernel
</verb></tscreen>
		です. また, 新しい置き換えたカーネルあるいは重要ファイ
		ルを動かしたり変更されないように「ロック」するには
		次のようにします. 
<tscreen><verb>
# chflags schg /kernel
</verb></tscreen>
	    </quote>

	  <tag>カーネルは動くが <tt>ps</tt> は動かない!</tag>

	  <p>システムユーティリティと異るバージョンのカーネルをインス
	トールした場合, 例えば 実験的に ``2.2.0''のカーネルを
	2.1.0-RELEASEシステム上にインストールするような場合, 
	<tt>ps(1)</tt><tt>vmstat(8)</tt>のような多くのシ
	ステムステータスコマンドは動かなくなります. <tt>libkvm</tt> を
	再コンパイルしてこれらのユーティリティを作りなおす必要がありま
	す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ
	ンのカーネルを使うことが普通はあまりよくない理由の一つです. 

    </descrip>