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

$Date: 2005/01/27 16:07:55 $

もくじ

  1. カーネルの再構築
  2. config ファイルの中身
    1. 必須のキーワード
    2. 機種に依存しないオプション
    3. ファイルシステムに関連するオプション
    4. 基本的なコントローラとデバイスに関連するオプション
    5. SCSI デバイス
    6. コンソール、マウス、X サーバに関連するオプション
    7. シリアルポートに関連するオプション
    8. パラレルポートに関連するオプション
    9. ネットワーク
    10. サウンドカードに関連するオプション
    11. 疑似デバイス
    12. EPSON 機に特有のオプション
    13. 互換 CPU に関するオプション
    14. USB/FireWire サポート
    15. その他のオプション
  3. SCSI サブシステムと bs ドライバについて
    1. 指定方法
    2. 運用時の注意事項
  4. 補足
    1. 割り込みレベルと割り込み番号
    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 として保存されます。これで、リブートすれば新 しいカーネルが動きます。


# shutdown -r now

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


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

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

I586_CPU

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

I686_CPU

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

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

ident            SARU

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

maxusers         32

カーネル内のいくつかのテーブルの大きさを決定するために使用されます。 "最大ユーザ" となっていますが、この数を越えるユーザがログインしても使用できます。 この値が小さいとファイルが作成できなくなったり、新たなプロセスが起動できなくなる可能性があります。
特別な値 `0' を指定すると、物理メモリ量に比例して自動決定されます。

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 のファイルシステム (FAT) をサポートします。省略しない方が便 利です。

options         QUOTA

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

options         PROCFS

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

options         CD9660

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

options         SOFTUPDATES

FFS でのソフトアップデートサポートを有効にします。このオプションを 指定したカーネルでファイルシステムにソフトアップデートフラグを付け ると、書込性能が大幅に向上しかつ不慮の電源断時にもファイルシステム の整合性が保たれるようになるかもしれません。

options         UFS_DIRHASH

いくらか余分にメモリを消費しますが、巨大なディレクトリでの パフォーマンスを向上させます。

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' ドライバーは内蔵フロッピーディスクコントローラをサポートします。

device          fd0      at fdc0 drive 0
device          fd1      at fdc0 drive 1
device          fd2      at fdc0 drive 2
device          fd3      at fdc0 drive 3

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

device          wdc0 at isa? port IO_WD1 irq 9

`wdc' ドライバーは IDE インターフェースをサポートします。

device          wd0 at wdc0 drive 0

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

device          wcd

ATAPI CD-ROM をサポートします。options ATAPI も指定して下さい。

device          wfd

ATAPI ZIP/MO をサポートします。options ATAPI も指定して下さい。

device          nac0 at isa? port IO_WD1 irq 9
device          ata

`ata' ドライバは `wdc' に代わる新しい IDE ドライバです。 内蔵 IDE インターフェースを使用する場合には `nac' ドライバと併用し ます。

device          atadisk

`ata' ドライバ上で IDE ハードディスクをサポートします。

device          atapicd

`ata' ドライバ上で ATAPI CD-ROM をサポートします。

device          atapifd

`ata' ドライバ上で ATAPI ZIP/MO をサポートします。

2.5. SCSI デバイス

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

SCSI コントローラ

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

device          bs0 at isa? port IO_SCSI irq 5 drq 3 flags 0

`bs' ドライバは、WD33C93 用 (PC-9801-55 ボード互換用) のSCSI ドライバーです。このデバイスドライバーは、NetBSD/pc98 core team によって作成されたものを FreeBSD(98) に移植したものです。

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

flagsボードの種類
0x00000NEC PC-9801-92 互換ボード (DMA 転送)
0x10000IO DATA SC98II (バスマスタ転送)
0x20000TEXA HA-55-BS2 以降 (バスマスタ転送)
0x30000ELECOM バスマスタタイプのボード (バスマスタ転送)
0x40000各社 SMIT 転送のボード (SMIT 転送)
0x50000Logitec LHA-20x シリーズ

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

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

options          BS_TARG_SAFEMODE

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

device          ct0 at isa? port IO_SCSI irq 5 drq 3 flags 0

`ct' ドライバは、`bs' ドライバに代わる新しい SCSI ドライバです。 このデバイスドライバも、NetBSD/pc98 core team によって作成され たものを FreeBSD(98) に移植したものです。 PnP モードにも対応しています。

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 インターフェイスに接続された装置を直 接取り扱う時に使用します。

device          ch

`ch' サブドライバーは SCSI メディアチェンジャをサポートします。

device          pt

`pt' サブドライバーは SCSI プロセッサデバイスをサポートします。

device          ses

`ses' サブドライバーは SCSI Enclosure Services(SES)をサポートします。

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

としてください。port はボードで設定した値を記述して下さい。irq は自動的に設定されます。

options COM_MULTIPORT

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

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

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

options          DEVICE_POLLING

一部のネットワークデバイスドライバで割り込み/ポーリング混在モード をサポートします。このモードでは、カーネルのネットワーク処理と他処 理間で正確な CPU 時間の割り当てが可能になるとともに、負荷耐性や応 答性でも有利になります。
sysctl 変数 "kern.polling.enable" により、ポーリングモードの有効/ 無効を動的に切り替えることが出来ます(デフォルトでは無効)。なお、ス ムーズな動作のために HZ=1000 もしくは 2000 での利用を強くお勧めし ます。
現時点では、一部のデバイスドライバでのみサポートされています。 詳細は polling(4) を参照して下さい。

イーサネットカード

以下のイーサネットカードをサポートしています。なお、ボード固有 の注意事項は「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をサポートします。
0x910000
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 をサポートします。

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

共有メモリを用いる 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          de

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

device          fxp

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

device          em

`em' ドライバーは Intel PRO/1000 をサポートします。

device          lnc0 at isa? port 0x03d0 irq 6

`lnc'ドライバはAMD 社の AM7990(LANCE) 及びその互換チップを 用いたネットワークボードをサポートします。

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

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

device          rl

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

device          vr

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

device          vx

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

device          sis

`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 を使用する場合は必ず指 定して下さい。ユーザランド PPP のみを使用する場合は不要です。

pseudo-device   tun

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

pseudo-device   bpf

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

pseudo-device   gre

`gre' 仮想デバイスは、GRE や MOBILE 用の IPv4 トンネリングをサポー トします。これは、Cisco の GRE トンネリングと互換性があり、GRE ト ンネリングをサポートしたルータとして使用することができるようになり ます。

IPv6 サポート

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

options          INET6

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

pseudo-device   gif

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

  • IPv6 パケットを IPv4 上でトンネリング
  • IPv4 パケットを IPv6 上でトンネリング
  • IPv4 パケットを IPv4 上でトンネリング
  • IPv6 パケットを IPv6 上でトンネリング
pseudo-device   faith  1

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

pseudo-device   stf

`stf' 仮想デバイスは、6to4 のカプセル化をサポートします。

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          mpu0 at isa? port 0xe0d0 irq 6

MPU-401 互換の MIDI インタフェース を使用する場合は指定して下さい。

device          pcm0 at isa? port 0xf40 irq 12 drq 1 flags 0x10000

`pcm' ドライバは、`snd' ドライバに代わる新しいサウンドドライバです。 mss互換音源およびサウンドブラスタに対応しています。

サウンドブラスタを使用する場合には、下記に示すように `sbc' ブリッ ジドライバを併用して下さい。

device          pcm
device          sbc0    at isa? port 0x20d2 irq 10 drq 3

2.11. 疑似デバイス

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

pseudo-device   gzip

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

pseudo-device   pty

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

pseudo-device   vn

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

pseudo-device   compat_atdisk

IBM-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 機では、セカンドキャッシュがライトバック方式の場合、 CPU スイッチを High にすると正常に動作しなくなります。既に判明して いる PC-486HX などについてはカーネルが自動認識して対応しますが、そ れ以外の機種で動作しない場合に指定してみてください。

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/FireWire サポート

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          ufm

USB 接続の FM Radio をサポートします。

device          uhid

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

device          ukbd

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

device          ulpt

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

device          umass

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

device          umodem

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

device          ums

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

device          urio

USB 接続の Rio(MP3 Player) をサポートします。

device          uscanner

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

device          ucom
device          uplcom
device          uvscom
device          uvisor
device          uftdi

USB 接続のシリアルポート/デバイスをサポートします。

device          aue

ADMtek チップを使用した USB イーサネット用のドライバです。 LinkSys USB100TX, Billionton USB100, Melco LU-ATX, D-Link DSB-650TX, SMC 2202USB をサポートします。 ADMtek AN986 Pegasus でも動くかもしれません。
MII バスドライバが必要です。

device          rue

RealTek RTL8150 用の USB イーサネットドライバです。 Melco LUA-KTX, GREEN HOUSE GH-USB100B をサポートします。
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 を使用する際は指定 しておくと良いでしょう。

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

device          firewire

FireWire バスドライバです。

device          sbp

FireWire 上で SBP2/SCSI をサポートします。`scbus' と `da' SCSI サ ブドライバが必要です。

device          fwe

FireWire 上での Ethernet エミュレーションをサポートします。この機 能は独自仕様です。

2.15. その他のオプション

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

pseudo-device   speaker

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

device          sysres

プラグ&プレイカード用に使ってはいけないシステムリソースをあらかじ め確保するためのドライバです。
C Bus のプラグ&プレイカードを PnP モードで使用する場合には、指定 すると安全です。

device          apm0    at nexus? flags 0x20

APM を使用する時は指定して下さい。

device          pmc0    at isa? port 0x8f0

APM が使えない古い 98NOTE で "shutdown -p" による電源断を行いたい 時は指定して下さい。

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 カーネルが行わなければならないために、以下のよう に個々のデバイスを指定して記述することを推奨します。(指定しなくても動 作に支障のない場合がほとんどですが SCSI 機器の性能を引き出すためには 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 を以下のように いくつかのフィールドに区切って転送速度 などのパラメータを指定します。

MSBLSB
3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
98 76543210
s
y
n
c

r
a
t
e
F
I
F
O

s
i
z
e
n
o

S
M
I
T
r
s
v
d
2
n
o

p
a
r
i
t
y
n
o

s
a
t
r
s
v
d
1
q
t
a
g
l
i
n
k
w
a
i
t
d
i
s
k
s
y
n
c
+ 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 が使用されます。こ れは以下の指定になります。

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

3.2. 運用時の注意事項

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

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

4. 補足

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

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

INT irq
0 3
1 5
2 6
3 9
41 10
5 12
6 13

FreeBSD QandA 242に、さらに詳しい解説があります。

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

EtherEZ98

SIU-98

C-NET(98)無印
C-NET(98)E/L

C-NET(98)E-A
C-NET(98)L-A

LGY-98

C-NET(98)P

C-NET(98)P2

NEC PC-9801-77
Networld EC/EP-98X

SB-9801

NC5098

Allied-Telesis RE1000
Ungermann-Bass Access/PC N98C+
Ratoc REX-9880

Contec C-NET(9N)E

Contec C-NET(98)P2

TDK LAC-98012

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) 移植チーム
戻る
www@jp.FreeBSD.org
Copyright (C) 2000-2005 The FreeBSD Project (Japan). All rights reserved.
$Date: 2005/01/27 16:07:55 $