30分でわかるシステムの再構築

$Date: 2002/02/09 16:13:20 $

もくじ


1. カーネルの再構築
2. config ファイルの中身
 2.1. 必須のキーワード
 2.2. 機種に依存しないオプション
 2.3. ファイルシステムに関連するオプション
 2.4. 基本的なコントローラとデバイスに関連するオプション
 2.5. SCSI デバイス
 2.6. コンソール、マウス、X サーバに関連するオプション
 2.7. シリアルポートに関連するオプション
 2.8. パラレルポートに関連するオプション
 2.9. ネットワーク
 2.10. サウンドカードに関連するオプション
 2.11. 疑似デバイス
 2.12. EPSON 機に特有のオプション
 2.13. 互換 CPU に関するオプション
 2.14. USB サポート
 2.15. その他のオプション
3. SCSI サブシステムと bs ドライバについて
 3.1. 指定方法
 3.2. 運用時の注意事項
4. 補足
 4.1. 割り込みレベルと割り込み番号
 4.2. ネットワークボード別の注意事項
5. ブートブロックの変更


1. カーネルの再構築
-------------------
 まず、カーネルの再構築の方法を説明します。

 まず、/sys/pc98/conf にカーネルの設定内容を書いたファイル (ここでは、 SARU としておきます) を作成
 します。とりあえずは、GENERIC98 をコピーし、
後で述べる内容に従って書き換えます。(ゼロから書くとよ
 く間違えることが
ありますので、GENERIC98 をコピーして使用することをお勧めします。)

 # cd /sys/pc98/conf
 # cp GENERIC98 SARU
 # vi SARU

 つぎに、config(8) を使用します。

 # config SARU<CR>
 Don't forget to do a ``make depend''
 Kernel build directory is ../../compile/SARU

 つぎにカーネルを作るディレクトリに移動します。

 # cd ../../compile/SARU

 または

 # cd /sys/compile/SARU

 ここで、compile の次のディレクトリ名は config ファイルの名前になります。

 次にファイルの依存性を設定します。

 # make depend

 いよいよコンパイル。

 # make

 エラーがなければ成功です。エラーがあった場合はとりあえず config ファイ ルの中身を疑ってみて下さい。

 最後に恐怖のインストールです。

 # make install

  古いカーネルは kernel.old として保存されます。これで、リブートすれば新 しいカーネルが動きます。

  # reboot

 不幸にも動かない場合はリブートできればリブートし、ハングアップした時は リセットして下さい。そして、ブ
 ート時の・・・・・


 Hit [Enter] to boot immediately, or any other key for command prompt.

 と表示されている時に、リターンキー以外 (例えばスペースキー) を押すとプ ロンプトが表示されます。

 ok

 新しいカーネルをアンロードした後、古いカーネルをロードしてブートさせま す。

 unload<CR>
 ok
 load kernel.old<CR>
 ok
 boot<CR>

 これで古いカーネルでブートします。

 注意!
 使用する make は FreeBSD に付属の ucb make です。GNU make ではコン パイルできないので注意して
 下さい。



2. config ファイルの中身
------------------------

 config ファイルにはカーネルの動作を決める重要な記述がつまっています。
 この中には絶対に消してはいけないものや自分の環境に応じて書き換える必要 があるものそして、あると
 嬉しいものなどいろいろなものがあります。それら
を一つ一つ見ていきます。config(8) は、'#' 以降をコメン
 トとして扱います。

 ソースを展開している場合、/usr/src/sys/i386/conf/LINT というファイルが 存在する可能性があります。
 このファイルには、さまざまなオプションの説明
があるので、必要に応じて参考にして下さい。ただし、LINT
に書かれている
のは、IBM-PC 用の説明であり、PC98 では使用できないものも含まれているの で注意し
 て下さい。さらに、LINT には、システムや、ネットワークに対して
重大な障害を与える可能性のある "危険
 な" オプションも記載されているので、
十分注意して下さい。LINT を参考にする場合は、必ずすみからすみ
 まで読ん
で下さい。

 2.1. 必須のキーワード

  以下のキーワードは必須です。

  machine pc98
  config(8) に PC98 アーキテクチャのカーネルを作成することを指示しま す。書き換えないで下さい。

  cpu cpu_type
   使用するCPUを指定します。

  cpu_type の部分には以下のいずれかが指定できます。

  I386_CPU
   i386DX/SXおよびそれらの互換プロセッサを使用する場合に指定します。

  I486_CPU
   486DX/SX/DX2/DX4/ODP およびそれらの互換プロセッサを使用する場 合に指定します。

   I586_CPU
   Pentium プロセッサおよびその互換プロセッサを使用する場合に指定 します。

   I686_CPU
   Pentium Pro プロセッサおよびその互換プロセッサを使用する場合に 指定します。

  複数の CPU を指定することも可能です。

  ident SARU
   config ファイルの名前と同じものを記述します。

  maxusers 32
   カーネル内のいくつかのテーブルの大きさを決定するために使用されます。
   "最大ユーザ" となっていますが、この数を越えるユーザがログインして も使用できます。この値が小さい
   とファイルが作成できなくなったり、新
たなプロセスが起動できなくなる可能性があります。

  options PC98
   機種依存のソースコードに対し、PC98 アーキテクチャのコードを使用す るように指示します。必ず指定
   して下さい。これがないと動きません。


  device npx0 at nexus? port IO_NPX irq 8
   コプロセッサデバイスです。数値演算コプロセッサの有無にかかかわらず 消さないで下さい。


 2.2. 機種に依存しないオプション

  以下はカーネルの提供する機能を選択するオプションです。

  options MATH_EMULATE
   数値演算コプロセッサがない場合は指定して下さい。ソフトウェアでエミ ュレートします。ただし、動作が
   完全ではないことと速度が遅いことを覚
悟する必要があります。

  options GPL_MATH_EMULATE
   Linux から持ってきた賢くて速い浮動小数点エミュレータです。このオプ ションを指定した場合は options
    MATH_EMULATE をコメントアウトして下
さい。

  注意!
      このオプションを指定して作成したカーネルには、GPL が適用されま す。再配布等の際は注意し
      て下さい。


  options COMPAT_43
   4.3BSD のシステムコールをサポートします。必ず指定して下さい。

   options SYSVSHM
   SysV 形式の共有メモリをサポートします。X を使う場合は指定しておく と効果があります。

  options SYSVSEM
    SysV 形式のセマフォをサポートします。

  options SYSVMSG
   SysV 形式のメッセージをサポートします。


  2.3. ファイルシステムに関連するオプション

  サポートするファイルシステムを選択するオプションです。ローカルディスク からブートするなら FFS、ネッ
  トワークディスクからブートするディスクレ
スとするなら NFS となります。

  options FFS
   バークレーのファーストファイルシステムをサポートします。

  options NFS
   このオプションを指定すると NFS が使えるようになります。NFS を使わ ない時はコメントアウトしてもか
   まいません。(外せばカーネルがだいぶ
小さくなります。)

  options MFS
    メモリーファイルシステム (MFS) をサポートします。MFS を使わない時 はコメントアウトしてもかまいませ
   ん。


  options MSDOSFS
   MSDOS のファイルシステムをサポートします。かつての PCFS にあたる機 能です。省略しない方が便
   利です。


  options QUOTA
   quota チェックを有効にしたいときは指定して下さい。

  options PROCFS
    "プロセスファイルシステム" をサポートします。

  options CD9660
   ISO-9660 形式の CD-ROM をサポートします。CD-ROM を使用しない時は省 略してもかまいません。


 2.4. 基本的なコントローラとデバイスに関連するオプション

   基本的なディスクに関するオプションです。「SCSI デバイス」、「ネットワ ーク」についてはそれぞれの節を
  参照して下さい。


  device isa
    PC-98 標準バス (C-BUS) を使うことを宣言します。変更しないで下さい。

  device pci
   PCI バスを使うことを宣言します。PCI バス搭載機種では指定しておくと 幸せになれます。

  device fdc0 at isa? port IO_FD1 irq 11 drq 2
`   fdc' ドライバーは内蔵フロッピーディスクコントローラをサポートしま す。

  disk fd0 at fdc0 drive 0
  disk fd1 at fdc0 drive 1
  disk fd2 at fdc0 drive 2
  disk fd3 at fdc0 drive 3
  disk ft0 at fdc0 drive 4

  `fd' サブドライバーはフロッピーディスクをサポートします。フロッピ ーディスクを使用する場合は必ず指定
  して下さい。(普通は省略しません。)

  `ft' サブドライバーは、外部フロッピーディスクコネクタに接続するタ イプのテープデバイスをサポートしま
  す。


  device wdc0 at isa? port IO_WD1 irq 9
   `wdc' ドライバーは IDE インターフェースをサポートします。

  device wd0 at wdc0 drive 0
    `wd' サブドライバーは、IDE ハードディスクをサポートします。IDE ハー ドディスクを使用する場合は必ず
  指定して下さい。


  device wcd
    IDE CD-ROM をサポートします。options ATAPI も指定して下さい。まだ充 分にはテストされていません。


 2.5. SCSI デバイス

  サポートしている SCSI インターフェース、デバイスについて説明します。

  SCSI コントローラ
  以下の SCSI コントローラがサポートされています。

  device bs0 at isa? port IO_SCSI irq 5 drq 3 flags 0
  `bs' ドライバは,WD33C98 用 (PC-9801-55 ボード互換用) のSCSI ドライバーです。このデバイスドライ
  バーは,NetBSD/pc98 core
team によって作成されたものを FreeBSD(98) に移植したものです。

  flags には使用するボードの種類を表す以下の数字のいずれか一つを
  記述します。

  flags ボードの種類
   0x00000 NEC PC-9801-92 互換ボード (DMA 転送)
   0x10000 IO DATA SC98II (バスマスタ転送)
   0x20000 TEXA HA-55-BS2 以降 (バスマスタ転送)
    0x30000 ELECOM バスマスタタイプのボード (バスマスタ転送)
   0x40000 各社 SMIT 転送のボード (SMIT 転送)
   0x50000 Logitec LHA-20x シリーズ

   SMIT 転送を用いる場合は iomem に BIOS ROM ベースアドレス(通常 は 0xdc000) を指定し iosiz は
   0x1000 を指定して下さい。他のボ
ードでは iomem および iosiz を書く必要はありません。

  bs ドライバ関連の詳しい設定については「SCSI サブシステムと bs ドライバについて」を参照して下さい。

  options BS_TARG_SAFEMODE
   `bs' ドライバにおいてハードディスク以外に対する同期転送を禁止 します。

  device ahc
   `ahc' ドライバーは Adaptec 274x/284x/294x をサポートします。

   device ncr
    `ncr' ドライバーは NCR 53C810/53C825 を用いた SCSI ボードをサ ポートします。

  device sym
   `sym' ドライバーは NCR/Symbios 53C810A/53C825A/53C860/53C87x/53C885/53C895 を用いた
    SCSI ボー
ドをサポートします。

   device adv
   `adv' ドライバーは AdvanSys コントローラーを用いた Narrow SCSI ボードをサポートします。

  device amd
   `amd' ドライバーは AMD 53C974 を用いた SCSI ボードをサポートと します。

  device isp
    `isp' ドライバーは Qlogic ISP ファミリの SCSI ボードをサポート します。

  device scbus
   `scbus' ドライバーは、SCSI サブシステムの中核部分を形成します。
   SCSI デバイスを使用する時は必ず指定して下さい。

  device da
    `da' サブドライバーは SCSI インターフェースに接続されたハードディ スクドライブおよび MO ドライブを
  サポートします。SCSI ハードディス
クを使用する時は必ず指定して下さい。

  device sa
   `sa' サブドライバーは SCSI インターフェイスに接続されたテープデバ イス (DAT を含む) をサポートし
   ます。SCSI テープデバイスを使用する
時は指定して下さい。

  device cd
   `cd' サブドライバーは SCSI インターフェイスに接続された CD-ROM ド ライブをサポートします。SCSI
    CD-ROM を使用する時は指定して下さい。


  device pass
   `pass' サブドライバーは SCSI インターフェイスに接続された装置を直 接取り扱う時に使用します。


 2.6. コンソール、マウス、X サーバに関連するオプション

  コンソールデバイスの指定です。X Window System を使うのであればマウスに ついても指定して下さい。

  device sc0 at isa?
   コンソールデバイスです。消さないで下さい。

  device gdc0 at isa?
    ビデオカードインターフェイスです。消さないで下さい。

  device pckbd0 at isa? port IO_KBD irq 1
   キーボードデバイスです。消さないで下さい。

  options UCONSOLE
   X Window System をサポートしたコンソールを作成します。指定する方が 無難です。X を使う場合は必
   ず指定して下さい。


  options LINE30
    FreeBSD(98) で 30 行モード (DOS の 30 行 BIOS のようなこと) を使用 する場合は、このオプションを
   指定して下さい。30 行モードについては
「FreeBSD(98) 30 行モード」を参照して下さい。

  pseudo-device splash
   起動時に画像を表示する場合に必要です。

  device mse0 at isa? port IO_MSE irq 13
   バスマウスを使用する時は指定して下さい。


 2.7. シリアルポートに関連するオプション

  シリアルポートに関連するオプションです。

  device sio0 at isa? port IO_COM1 irq 4
    内蔵 RS-232C ドライバーです。内蔵 RS-232C ポートを使用する場合はこのよ うに指定して下さい。

  device sio1 at isa? port 0xd2 irq 5 flags 0x14000101
   マイクロコアのMC16550/MC16550II/MC-RS98を使用する場合は、このように指 定してして下さい。
    ``flags''の後の数字によってボードの種類を指定します。


   ``flags''に指定する値は以下の通りです。
    0x00000000 内蔵 RS-232C インターフェース
   0x02000000 NEC PC-9861K, PC-9801-101, 緑電子 MDC-926Rs
   0x10000000 I-O DATA RSA-98II (NS16550 互換モード)
   0x11000000 NEC PC-9801-120, 125
   0x12000000 内蔵 COM2 (2nd CCU)
   0x14000000 マイクロコア MC-16550II, MC-RS98
     0x15000000 Media Intelligent RSB-2000, RSB-3000, AIWA B98-02
   0x16000000 Media Intelligent RSB-384
   0x18000000 I-O DATA RSA-98III
   0x19000000 MidoriHayes ESP98

  2つ目のチャンネルは以下のように指定します。

  device sio2 at isa? port 0x8d2 flags 0x14000101

   このとき、後述の options COM_MULTIPORT を指定しておいて下さい。portお よびirqはボードで設定し
   た値を記述して下さい。MC-RS98では、d? の部分を
b? や e?に変更することによりI/Oアドレスを変更
   することが可能ですが、
/sys/pc98/pc98/sio.c を変更する必要があります。
   flagsは、上位バイトが
マスターsio番号で、下位バイトのb0がマルチポートデバイスのフラグです。
   内蔵RS-232Cインターフェースを使用せず、sio0からMC16550を使用する場合は、

  device sio0 at isa? port 0xd? irq 5 flags 0x14000001
  device sio1 at isa? port 0x8d? flags 0x14000001

   のようにflagsを変更して下さい。また、AIWAのB98-01を使用する場合は、

   device sio1 at isa? port 0x00d1 irq ? flags 0x15000101
  device sio2 at isa? port 0x00d5 irq ? flags 0x15000101

    としてください。同時に前述の ``options B98_01'' を指定しておいて下さい。
   portはボードで設定した値を記述して下さい。irqは自動的に設定されます。

  options COM_MULTIPORT

   マイクロコアのMC16550/MC16550II/MC-RS-98を使用する場合は指定して下さい。

  options B98_01

   AIWAのB98-01を使用する場合は指定して下さい。

 2.8. パラレルポートに関連するオプション

  パラレルポートに関連するオプションです。

  device ppc0 at isa? irq 14
   内蔵のパラレルポートを双方向バスインターフェイスとして使用する時は 指定して下さい。``device
    ppbus'' を指定しておいて下さい。


  device ppbus
   パラレルポートバスの中核部分を形成します。パラレルポートバスを利用 する場合は必ず指定して下さ
   い。


  device lpt
   パラレルポートバス上のプリンタを使用する時は指定して下さい。

  device plip
   TCP/IP over parallel を使用する時は指定して下さい。

   device olpt0 at isa? port "IO_LPT" tty
   内蔵のパラレルポートが双方向バスインターフェイスとして利用できない  (ppc デバイスが利用できない)
    機種でプリンタを使用する時は指定して
下さい。


 2.9. ネットワーク

  多くの Unix 同様 FreeBSD もネットワーク機能を強力にサポートしています。

  options INET
   インターネットプロトコルをサポートします。必ず指定して下さい。

  options MROUTING
   マルチキャストルーティングをサポートします。

   options IPFIREWALL
   ファイアウォールとして動作させる場合は指定して下さい。

  イーサネットカード
   以下のイーサネットカードをサポートしています。なお、ボード固有 の注意事項は「4.2. ネットワークボー
   ド別の注意事項」を参照して
下さい。

  device ed0 at isa? port 0x00d0 irq 6
   `ed' ドライバーはナショナルセミコンダクター社の DS8390 お よびその互換チップを用いたネットワーク
   ボードをサポートしま
す。

   C-BUS 以外に PCI バス及び PCMCIA に対応していますが、PCI バス及び PCMCIA については自動
   的に設定されますので、特に気
に する必要はありません。 以下の説明は、C-BUS のボードにの み適
   応されます。


   portとirq の後の数字は I/O ポートアドレスと割り込み番号で す。
   iomemとiosiz は,シェアードメモリのアドレスとサイズで
す。いずれもボードの設定と同じになるようにし
   て下さい。


   ``flags'' の後の数字によって特定のボードのみサポートする機 能が提供されています。``flags'' には使
   用するボードの種類を
表す以下の数字のいずれか一つを記述します。個別のボードの型 番と flags と
   の対応の完全なリストは「サポートしているハー
ドウェア」を参照してください。

   0x000000 IBM-PC 用のネットワークカードと同じ I/O ポートアドレス
    構成のボード(Allied Telesis LA-98-T など) を使用する場 合はこの値にする必要があります。
   □ IO-DATA PCLA/T,LA/T-98
   □ MELCO LPC-TJ/TS
   □ PLANET SMART COM CREDITCARD/2000
   □ Allied Telesis LA-98-T
   □ Corega Ether 98-T
   0x100000 PLANET SMART COM CREDITCARD/2000 MELCO LPC-TJ/LPC-TS
   や IO-DATA PCLA/T をサポートします。
   0x200000 PLANET SMART COM 98 EN-2298 や ELECOM LANEED
   LD-BDN[123]A をサポートします。
   0x300000 MELCO EGY-98 や Contec C-NET(98)E-A/L-A、CONTEC
   C-NET(98)P(E/L-A互換モード)をサポートします。
   0x400000 MELCO LGY-98、LGH-98、IND-SP、IND-SS や MACNICA NE2098
   をサポートします。
   0x500000 ICM DT-ET-25/DT-ET-T5/IF-2766ET/IF-2771ET や D-Link
   DE-298P{T,CAT}/DE-298{T,TP,CAT}、ELECOM LANEED
   LD-98P{T}、PLANEX EN-2298-T, EN-2298P-Tをサポートしま す。
   0x600000 Allied Telesis SIC-98/SIU-98(SIC モード) をサポートし ます。
   0x610000 Allied Telesis SIU-98-D をサポートします。
   0x800000 NEC PC-9801-107、108 をサポートします。
   0x900000 IO-DATA LA-98 シリーズや MACNICA ME98、Kansai
   KLA-98C/Tをサポートします。
   x910000 NEC PC-9801-77, 78 をサポートします。
   0xa00000 Contec C-NET(98) 無印、RT-1007(98)、C-NET(9N) をサポー トします。
   0xb00000 Contec C-NET(98)E/L(初期化レジスタアドレス 0xAAED)、
   C-NET(9N)L(指定した値で初期化時に自動設定します。)、
   Logitec LAN-98T をサポートします。
   0xb10000 Contec C-NET(98)E/L(初期化レジスタアドレス 0x55ED)
   0xd00000 Accton EN1644(旧モデル), EN1646(旧モデル), EN2203(旧モ デル)、Networld 98X3 をサポー
   トします。

    0xd10000 Networld EC/EP-98X をサポートします。
   0xf00000 NextCom NC5098 をサポートします。

   実際に使用するボードに合わせて値を変更して下さい。

   C-NET(98) 無印および E/L を使用する場合、初期化レジスタアドレ スの都合により、複数の `ed' ドラ
   イバユニット 間で `flags' の値
が以下の組み合わせのときはプローブ中に暴走することがあります。

o    同一値 (0xb00000 を 2 つのユニットに設定する等)
    o 0xa00000 と 0xb00000 の組み合わせ
   o 0x000000 (または flags 指定なし) かつ port 0x?3d0 にした場合

   これらのボートを使用する場合は、以下の点に注意して下さい。

   o flags 0xa00000 と 0xb0000 のユニットを同時に enable にしない
   o flags 指定なしのユニットでは port を 0x?3d0 にしない

   共有メモリを用いる SIC-98、C-NET(98) 無印、EtherEZ98 の 場 合は iomem に 共有メモリのベース
   アドレスを指定し iosiz は
共有メモリのサイズを指定して下さい。他のボードでは iomem および iosiz を
   書く必要はありません。


  device fe0 at isa? port 0x00d0 irq 6
   `fe' ドライバーは富士通のMB86960A/MB86965Aおよび互換チップ を利用したLANボードをサポートし
   ます。port には、LAN ボード
が使用する I/O アドレスを指定して下さい。C-BUS の場合はボー ドの設
   定と同じになるようにして下さい。 PCMCIA の場合は自動
的に設定されますので、特に気にする必要
   はありません。


   以下のボードでの動作が確認されています。
   □ Allied Telesis RE1000, RE1000Plus, ME1500 (110pin)
   □ Contec C-NET(98)P2, C-NET(9N)E (110pin), C-NET(9N)C(ExtCard)
   □ Ungermann-Bass Access/PC N98C+(PC85152), Access/NOTE, N98(PC86132) (110pin)
   □ TDK LAC-98012, LAC-98013, LAC-98025, LAC-9N011 (110pin)

  options FE_8BIT_SUPPORT
   `fe'ドライバで TDK LAC-98 シリーズをサポートする場合に指定 して下さい。

  device ep0
    `ep' ドライバーは 3COM 社の 3C569 / 3C589 をサポートします。
   C-BUS 及び PCMCIA に対応しており、port や irq は自動的に設 定されますので、何も書かないでくだ
   さい(port や irq を書く
と誤認識してしまいます)。

  device de0
   de' ドライバは DEC DC21x4x を用いたネットワークボードをサポー トします。

   device fxp0
   `fxp' ドライバーは Intel EtherExpress Pro/100B をサポートしま す。

  device lnc0 at isa? port 0x03d0 irq 6
    `lnc'ドライバはAMD 社の AM7990(LANCE) 及びその互換チップを 用いたネットワークボードをサポート
   します。


    port とirq の後の数字は I/O ポートアドレスと割り込み番号で す。 C-BUS の場合はボードの設定と同じ
   になるようにして下さ
い。 PCI バスの場合は自動的に設定されますので、特に気にす る必要はありま
   せん。


   なお、AT 互換機では drq を指定する必要がありますが、PC-98 では不要です。

  device rl0
   `rl'ドライバはRealTek 8129/8139, Accton MPX 5030/5038ベースの LAN ボードをサポートします。

  device vr0
   `vr'ドライバはVIA VT3043/VT86C100A(Rhine I/II) ベースの LAN ボー ドをサポートします。

   device vx0
   `vx' ドライバーは 3Com 3C590/3C595 をサポートします。

  device sis0
   `sis' ドライバーは SiS 900/SiS 7016, NatSemi DP83815 を用いた ボードをサポートします。例えば
    @Nifty FNECHARD IFC-USUP-TX,
MELCO LGY-PCI-TXC 等があります。

  device snc0 at isa? port 0x888 irq 6 iomem 0xc0000
    `snc' ドライバはナショナルセミコンダクター社の DP83932 (SONIC-T) を用いたネットワークボード、例え
   ば、
PC-9801-83,84,103,104 と PC-9801N-25,J02,J02R をサポートし ます。

   port とirq の後の数字は I/O ポートアドレスと割り込み番号で す。また iomem の後の数字は 共有メモ
   リのベースアドレスです。

   C-BUS の場合はボードの設定と同じになるようにして下さい。
   PCMCIA の場合は自動的に設定されますので、特に気にする必要 はありません。

  pseudo-device loop
    localhost (127.0.0.1) 用の仮想デバイスです。消さないで下さい。

  pseudo-device ether
   イーサネットをサポートします。消さないで下さい。

  pseudo-device sl 1
   SLIP を使用する時は指定して下さい。

   pseudo-device ppp 1
   PPP を使用できるようにします。PPP を使用する場合は必ず指定して下さ い。IIJ-PPP のみを使用す
   る場合は不要です。


  pseudo-device tun
   ユーザプロセスからカーネルのネットワーク層にアクセスするためのトン ネルデバイスです。IIJ-PPP を
   使用する時は必ず指定して下さい。


  pseudo-device bpf
    バークレイパケットフィルタの機能を有効にします。ドライバが未対応な ために使用できないイーサネット
   カードがあります。


  IPv6 サポート
   IPv6 を使用するためには、以下のオプションも必要です。

  options INET6
   インターネットプロトコル バージョン 6 をサポートします。

  pseudo-device gif 4
   `gif' 仮想デバイスは、バージョンの違う IP 間でのトンネリング をサポートします。以下の 4 通りが実装
   されています。

    IPv6 パケットを IPv4 上でトンネリング
   IPv4 パケットを IPv6 上でトンネリング
   IPv4 パケットを IPv4 上でトンネリング
   IPv6 パケットを IPv6 上でトンネリング

  pseudo-device faith 1
   `faith' 仮想デバイスは、IPv6/IPv4 の変換をサポートします。


 2.10. サウンドカードに関連するオプション

  これ以降のオプションは GENERIC98 カーネルに含まれていません。必要に応 じて各自で加えて下さい。

   device snd
   サウンドカードを使用する場合は指定して下さい。また、使用するサウン ドカードに合わせて、以下のデ
   バイスを指定して下さい。


  device nss0 at isa? port 0xa460 irq 12
   NEC PC-9801-86/73 ボードを使用する場合は指定して下さい。irq の値は 初期化時に自動的に取得
   するので、どのような値でもかまいません。


  device mss0 at isa? port 0xf40 irq12 drq 1
   X-MATE 内蔵の PCM 音源を使用する場合は指定して下さい。

  device sb0 at isa? port 0x20d2 irq 10 drq 3
   サウンドブラスタを使用する場合は指定して下さい.

  device sbxvi0 at isa? drq 3
   サウンドブラスタ 16 を使用する場合は指定して下さい.

  device sbmidi0 at isa? port 0x80d2
   サウンドブラスタの MIDI オプションボードを使用する場合は指定して下 さい.

  device opl0 at isa? port 0x28d2
   サウンドブラスタの OPL 音源を使用する場合は指定して下さい.


  2.11. 疑似デバイス

  疑似デバイスはデバイスドライバのように動作しますが、対応するデバイスが 存在するわけではありま
  せん。「ネットワーク」でもいくつかの疑似デバイス
が出て来ましたが、残りをここで説明します。

  pseudo-device gzip
   gzip で圧縮されたファイルを実行できるようにします。

   pseudo-device pty
   仮想端末デバイスです。消さないで下さい。

  pseudo-device vn
   ファイルをデバイスとして扱うことを可能にする vnode ドライバをサポ ートします。

  pseudo-device compat_atdisk
I   BM-PC でフォーマットされたディスクをマウントできるようにします。
   ただし、SCSI ボードの設定でハードディスクが mode sense コマンドに 答えるジオメトリ情報と BIOS の
   設定するものとが一致している必要があ
ります。


 2.12. EPSON 機に特有のオプション

  一部の EPSON 機で必須となるオプションです。

   options EPSON_NOTE
   古い EPSON のノートパソコンの I/O バンク切替をサポートします。
   EPSON PC-386NOTE A/AE/W/WR を使用する場合は必ず指定して下さい。

  options EPSON_MEMWIN
   このオプションを指定すると、15-16MB にあたる領域を使用しません。ま た、I/O ポート 0x43b にアクセ
   スし、メモリウィンドウを使用できるよ
うにします。

  options EPSON_BOUNCEDMA
   0xf00000 以上の領域に対し、バウンスバッファを使用します。このオプ ションを指定する場合は、        BOUNCE_BUFFERS も一緒に指定して下さい。
   EPSON PC-486GR Super は、このオプションを指定しないと、15MB を越え るメモリーを使用すること
   ができません。


  options WB_CACHE
   EPSON PC-486HX など、セカンドキャッシュがライトバック方式の場合は 指定して下さい。このオプショ
   ンを指定しないと、CPU スイッチを High
にしたときに動作しなくなります。


 2.13. 互換 CPU に関するオプション

  CPU アクセラレータなどを使用している場合は適切に指定することでその性能 が発揮されます。

  options CPU_BLUELIGHTNING_FPU_OP_CACHE
   IBM Blue Lighting を使用している場合、このオプションを指定すると FPU のデータをキャッシュするよ
   うになります。Cyrix 製の FPU でのみ
有効です。Intel 製の FPU を利用している場合は指定しないで下
   さい。


  options CPU_BLUELIGHTNING_3X
   IBM Blue Lighting を使用している場合、このオプションを指定すると 3 倍速動作になります。指定しない
   場合は 2 倍速になります。


  options CPU_DIRECT_MAPPED_CACHE
    Cyrix486DLC を利用している場合、このオプションを指定すると 1 次キ ャッシュをダイレクトマップ方式に
   します。指定しない場合は、2 ウェイ
アソシエティブ方式です。

  options CPU_DISABLE_5X86_LSSER
   Cyrix の 5x86 を使用している場合、このオプションを指定すると、パイ プラインの効率を上げるために
   メモリアクセスの順番を変更する機能が有
効になります。この場合、メモリマップド I/O を使用するデバ
   イス (例
えば XFree86 で mmio を指定する場合) は正しく動作しない可能性があ るので注意して下さい。

  options CPU_FASTER_5X86_FPU
   Cyrix の 5x86 を使用している場合、このオプションを指定すると、FPU 例外の取り扱いが速くなります。

  options CPU_I486_ON_386
   i486 のキャッシュを有効にします。元々 i386 のマシンに i486 を付け た時に、BIOS がキャッシュを有効
   しない場合指定して下さい。


  options CPU_WT_ALLOC
   write allocation を有効にします。Cyrix 6x86/6x86MX と AMD K5/K6 の み有効です。

  options CPU_SUSP_HLT
   HLT 命令が実行された時にサスペンドモードに移行して消費電力を軽減さ せます。いまのところ Cyrix
   の 486DX/5x86/6x86 のみ有効です。他の
CPU では無効です。

   警告! この機能のテストは不十分です。

  options CYRIX_CACHE_WORKS
   Cyrix 486 を使用している場合、hold 信号でキャッシュをフラッシュす るようにります。

  options FPU_ERROR_BROKEN
   一部の 286 マシン用 CPU アクセラレータボードでは、数値演算コプロセ ッサのエラー信号を認識でき
   ません。そのような機種で数値演算コプロセ
ッサを使用する場合は、このオプションを指定して下さい。

  注意!
   このオプションを指定してもエラー信号を正しく処理できるようには なりません。
   一部のアプリケーションの演算時のエラーを使用する機
能は使用できません。


 2.14. USB サポート

   USB を使用する際には以下のドライバが必要です。

  device ohci
   OHCI(Open Host Controller Interface)対応の USB コントローラ用 ドライバです。NEC PC-9821 V200
   等内蔵 USB コントローラや
@Nifty FNECHARD IFC-USUP-TX (PCI)をサポートします。
   これらのコントローラで USB を使用する際は指定してください。

  device uhci
   UHCI(Universal Host Controller Interface)対応の USB コントロー ラ用ドライバです。TRY             CORPORATION JUS-02 等をサポートします。
   これらのコントローラで USB を使用する際は指定してください。

   device usb
   USB 関連の共通モジュールです。USB を使用する際は必ず指定して ください。

  device uhid
   USB 接続のヒューマンインタフェイスデバイス(ボタンやダイアル付) をサポートします。

  device ukbd
   USB 接続のキーボードをサポートします。

  device ulpt
   USB 接続のプリンタをサポートします。

  device umass
   USB 接続のストレージデバイス(Zip 等)をサポートします。
   scbus ドライバと da サブドライバが必要です。

  device umodem
   USB 接続のモデムをサポートします。

  device ums
   USB 接続のマウスをサポートします。

  device uscanner
    USB 接続のスキャナをサポートします。

  device aue
   ADMtek チップを使用した USB イーサネット用のドライバです。
   LinkSys USB100TX, Billionton USB100, Melco LU-ATX, D-Link DSB-650TX, SMC 2202USB をサポー
   トします。

    ADMtek AN986 Pegasus でも動くかもしれません。
   MII バスドライバが必要です。

  device cue
     CATC USB-EL1201A 用の USB イーサネットドライバです。
   CATC Netmate や Netmate II, Belkin F5U111 をサポートします。
   MII バスドライバが必要です。

  device kue
   Kawasaki LSI 用の USB イーサネットドライバです。
   LinkSys USB10T, Entrega USB-NET-E45, Peracom Ethernet Adapter,
   3Com 3c19250, ADS Technologies USB-10BT, the ATen UC10T,
   Netgear EA101, D-Link DSB-650, SMC 2102USB, 2104USB,
    Corega USB-T をサポートします。
   MII バスドライバが必要です。

  device ugen
   上記以外の USB 接続機器をサポートします。USB を使用する際は必ず 指定してください。


 2.15. その他のオプション

  その他のオプション、デバイスについて説明します。

  pseudo-device speaker
    /dev/speaker を使用する時は指定して下さい。

  device apm0 at nexus? flags 0x20
   APM を使用する時は指定して下さい。

  device card
   device pcic0 at isa? irq 0 port 0x3e0
   98NOTE で PC カード (PCMCIA) を使用する時は指定してください。


3. SCSI サブシステムと bs ドライバについて
------------------------------------------

  3.1. 指定方法

 FreeBSD(98) では 2.0.5 以降、複数の同種 SCSI デバイスに対して自動的に ユニット番号を割り付ける機
 能があります。よって一般的には以下のように指
定しておけば起動時に SCSI バスに接続されたハードデ
 ィスク、光磁気ディス
ク、テープ、CD-ROM のそれぞれの数がいくつであっても自動的に番号が振ら れて
 使用可能な状態になります。インテリジェントな SCSI I/F が主流となっ
ている AT 互換機では、SCSI 機器
 の構成を変更したりした場合にも自動的に
対応できるこの指定方式が推奨されています。

  device scbus

  device da
  device sa
  device cd

 一方、従来との互換性のために以下のように割り付けを指定して固定する事も できます。そして bs ドライ
 バでは、各 SCSI 機器に対応した転送レートを管
理するなどの、インテリジェントな SCSI I/F ではカード上
 の CPU がやって
くれることを FreeBSD カーネルが行わなければならないために、以下のよう に個々のデ
 バイスを指定して記述することを推奨します。(指定しなくても動
作に支障のない場合がほとんどですが SC
 SI 機器の性能を引き出すためには
flags の指定が重要になるからです。)

  device scbus0 at bs0 bus0

  device da0 at scbus0 target 0 unit 0 flags 0x320c000b
  device da1 at scbus0 target 2 unit 0 flags 0x320c000b
  device da2 at scbus0 target 3 unit 0 flags 0x320c000b
  device sa0 at scbus0 target 5 unit 0 flags 0x00000107
  device cd0 at scbus0 target 6 unit 0 flags 0x00000106

  `at scbus0' の部分は どの SCSI サブシステムにぶら下がるか(すなわち ど の SCSI ボードを使用する
   か) を指定します。


    `target 0' の部分は SCSI ID を指定して下さい。

   `unit 0' の部分は LUN (論理ユニット番号) を指定します。たいていの場合は 0 です。

   `flags' の部分は それぞれの機器に対してどのようなアクセス方法をとるか を指定します。
   この値は使用するデバイスごとに最適値が異なっています。


    flags では 32bit を以下のように いくつかのフィールドに区切って転送速度 などのパラメータを指定します。

MSB LSB
+---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+
|3 3 2 2 2 2 2 2|2 2 2 2 1 1 1 1|1|1 1 1 1 1| | | | | | | | |
|1 0 9 8 7 6 5 4|3 2 1 0 9 8 7 6|5|4 3 2 1 0|9|8|7 6 5|4|3|2|1|0|
+---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+
| s | F |n| r |n|n| r |q|l|w|d|s|
| y | I |o| s |o|o| s |t|i|a|i|y|
| n | F | | v | | | v |a|n|i|s|n|
| c | O |S| d |p|s| d |g|k|t|c|c|
| | |M| 2 |a|a| 1 | | | | | |
| r | s |I| |r|t| | | | | | |
| a | i |T| |i| | | | | | | |
| t | z | | |t| | | | | | | |
| e | e | | |y| | | | | | | |
+---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+

  + sync 1 で同期転送、0 で非同期転送
   + disc 1 で disconect/reselect をサポート、0 で使用しない
   - wait 1 で他のターゲットと競合するバス調停を禁止、0 で許可
   + link 1 でコマンドリンクを使用、0 なら使用しない
  qtag タグ付きキューのため予約
   rsvd1 予約
  - no sat 1 で WD33C93 のコンビネーションコマンドを使用しない、0 なら使用
  + no parity 1 でパリティラインを監視しない、0 なら監視する
  rsvd2 予約
   - no SMIT 1 で SMIT 転送を禁止、0 で許可 (ボードがサポートしてい れば)
  FIFO size 同期転送時のバッファサイズ
   sync rate 同期転送速度 (転送速度を 0.1MB 単位で表す)

  `+' をつけたオプションは 1 にすると効率向上の効果があり、
  `-' をつけたオプションは 1 にすると効率が下がります。

  sync rate については転送速度を 0.1MB 単位で表した数字になります。例え ば 5MB/sec の場合は
   5MB/sec = 50 * 0.1MB/sec なので 0x32 になります。


  flags を省略した場合はデフォルト値として 0xffff0301 が使用されます。こ れは以下の指定になります。
  * 同期転送 (offset と period はネゴシエーションによって決定)
   * disconnect は用いない
  * コマンドリンク不使用
  * コンビネーションコマンドを使用しない
  * パリティラインを監視しない

   ハードディスクについては 0x320c0003 をとりあえず用いると良いでしょう。
  また CD-ROM や MO などは 0x020c0304 あたりを指定して、そこからチューニ ングしていくと良いと思い
  ます。


 3.2. 運用時の注意事項

  bs ドライバは SCSI バスがハングアップした場合に SCSI バスのリセットを 試みます。もしハードディスク
  のアクセスランプが点灯したままカーネルがお
亡くなりになったように見えても、しばらくはそのままにして
  おいてください。

  ハングアップの原因が SCSI バス側にあるのであれば復旧する可能性がありま す。

   信頼性を求めるのであればパリティラインの監視を有効にしてください。読み 込み時にパリティエラーが
  発生した場合は完全に復旧されます。書き込時はデ
バイスに依存します。

4. 補足
-------

 4.1. 割り込みレベルと割り込み番号

   INT # の値と irq # の間には次の関係があります。

  * INT 0 は irq 3
   * INT 1 は irq 5
   * INT 2 は irq 6
  * INT 5 は irq 12

 4.2. ネットワークボード別の注意事項

  EtherEZ98
   * Addressing Mode は "I/O Mapped" にする必要があります。

  SIU-98
   * SIU-98 無印はボードを SIC モードにする必要があります。 具体的には 2 枚重ねになっている上の
   ボードを外して下さい。

  * SIU-98-D は flags 0x610000 を指定してください。

  C-NET(98)無印
  C-NET(98)E/L
  * 使用する port および irq は、ともにカーネル conf での値を元にボード 初期化 時にソフトウェア設定し
   ます。

  * 標準では初期化アドレスレジスタとして "AAED" が使用されますが、 flags の bit 0x10000 をセットするこ
  とにより "55ED" を使用します。
これにより同じボードを 2 枚まで使うことができます。
   * 初期化アドレスレジスタの都合により、複数の ed ドライバユニット間で flags 値が以下の組み合わせの
  場合はプローブ時に暴走することがありま
す。これらの組み合わせは避けてください。
  + 同一値(ともに 0xb00000 など)
   + 0xa00000 と 0xb00000 の組み合わせ
  + 0xa10000 と 0xb10000 の組み合わせ

   C-NET(98)E-A
  C-NET(98)L-A
   * C-NET(98) 無印および E/L とは別構造のボードであり EGY-98 として認識 され ます。

  LGY-98
   * EGY-98 のプローブが実行されるとフリーズするため、EGY-98 のドライバ を無効化 する必要がありま
  す。


  C-NET(98)P
  * "C-NET(98)E/L-A互換モード" に設定することにより EGY-98 として認識さ れます。

   C-NET(98)P2
   * C-NET(98)P とは別構造のボードであり fe ドライバで使用できます。

  NEC PC-9801-77
  Networld EC/EP-98X
  * 使用する irq はカーネル conf での値を元にボード初期化時にソフトウェ ア設定 します。
   * flags の bit 0x10000 をセットするのを忘れないで下さい。 セットしな くても認識されてしまいますが、irq
    のソフトウェア設定が行われない た
め使用できません。

  SB-9801
   * 使用する port および irq は、ともにカーネル conf での値を元にボード 初期化 時にソフトウェア設定し
   ます。

  * port をソフトウェア設定するためにシステムポート 0x40 を使用します。
  これは プリンタポートと同じアドレスであるため、ppcやolptとの干渉が あるかもしれま せん。
  * SB-9801 を初期化する前に SB-9801 で使用する port(0xd0 など)にアクセ スする とハングアップする
   ため、他の ed や fe など 0x??d0 をアクセス
するデバイスは 全て無効化する必要があります。
  * flags の bit 0x01 を設定することにより AUI と BNC/UTP の切り替えが できます。
   ただし SN-9801-2 の場合は無条件に flags 0xe00001 を指定
してください。

  NC5098
    * port にはボードでの設定値 +0x2000 を指定する必要があります(ボード設 定が 0xd0 なら 0x20d0)。
    * NC5098 を初期化する前に NC5098 で使用する port(0x20d0 など)にアクセ スすると ハングアップする
   ため、他の ed や fe など 0x??d0 をアクセス
するデバイスは全て 無効化する必要があります。
  * 共有メモリモードには対応していませんので、共有メモリアドレス設定の JP は 外す必要があります。
   * NC5098N は別構造のボードなので対応していません。
  * port の干渉の問題から EC/EP-98X とは併用できません。

  Allied-Telesis RE1000
  Ungermann-Bass Access/PC N98C+
   Ratoc REX-9880
  * irq は、カーネル conf での値を元にボード初期化時にソフトウェア設定 します。

  Contec C-NET(9N)E
  * port は 0x73d0 のみ、irq は 5 のみが使用できます。

  Contec C-NET(98)P2
  * irq の値は初期化時に自動的に取得するので、カーネル conf ではどのよ うな値でもかまいません。
   本体が PnP 対応の場合は port 値も自動的に取
得します。

  TDK LAC-98012
  * カーネル conf ファイルに options "FE_8BIT_SUPPORT" が必要です。
  * irq は、カーネル conf での値を元にボード初期化時にソフトウェア設定 します。

5. ブートブロックの変更
-----------------------

boot1 と boot2 は /boot の下にコピーされます。これらの内容をブートブロ ックに書き込むには、

da# の場合:
  disklabel -B -b boot1 -s boot2 da#

wd# の場合:
  disklabel -B -b boot1 -s boot2 wd#

fd# の場合:
  disklabel -B -b boot1 -s boot2 fd#

   として下さい (# は装置番号) 。なお、-b boot1 を省略した場合
  /boot/boot1、-s boot2 を省略した場合 /boot/boot2 が使われます。例えば、

 disklabel -B wd0

とした時は、wd0 に /boot/boot1, /boot/boot2 が書き込まれます。また、 自分でブートブロックを作成した
場合も同様な手順で書き込んで下さい。


(注意)
この操作は通常行なうことはないはずです。失敗すればディスクから起動
できなくなるばかりか大切なデータを失うことになるので注意して下さい。

----
FreeBSD(98) 移植チーム

[戻る]