Chapter 4. カーネルの設定

Linux カーネルの設定は、通常カーネルソースの /usr/src/linux/.config というファイルにあります。 このファイルは直接いじるのではなく、下記のカーネル設定オプション のどれかを 利用することをお勧めします。

選択肢の説明は、それぞれのヘルプボタンで表示されます。この内容は ASCII ファイル /usr/src/linux/Documentation/Configure.help に含まれています。

詰まるところ、これらの設定ツールは .config ファイルを編集 しています。選択肢は、ドライバがカーネルに組み込まれる(「=y」)、モジュール として作成される(「=m」)、選択しない、のどれかです。 選択していない状態には、行の先頭に「#」(例えば「# CONFIG_SCSI」は未設定を表す) がある場合と、.config ファイルに関連する行が無い場合とが あります。

SCSI サブシステム(正確には SCSI の中間レベルのドライバ)の主なオプションは、 下記の 3 つのいずれかです。この中の 1 つだけが実際に .config ファイル中にあるはずです。
CONFIG_SCSI=y
CONFIG_SCSI=m
# CONFIG_SCSI is not set

その他、一般的な SCSI の設定オプションは下記の通りです。

CONFIG_BLK_DEV_SD        [ディスク(sd)ドライバ]
CONFIG_SD_EXTRA_DEVS     [追加で入れるディスク用の増設スロット]
CONFIG_BLK_DEV_SR        [SCSI CD-ROM(sr)ドライバ]
CONFIG_BLK_DEV_SR_VENDOR [CD-ROM のベンダー独自コマンドを許可]
CONFIG_SR_EXTRA_DEVS     [追加で入れる CD-ROM 用の増設スロット]
CONFIG_CHR_DEV_ST        [テープ(st)ドライバ]
CONFIG_CHR_DEV_OSST	 [OnSteam 社 テープ(osst) ドライバ]
CONFIG_CHR_DEV_SG        [SCSI 汎用ドライバ(sg)]
CONFIG_DEBUG_QUEUES      [複数のキューのデバッグ用]
CONFIG_SCSI_MULTI_LUN    [0 以上の LUN のプルーブの許可]
CONFIG_SCSI_CONSTANTS    [SCSI のエラー記号の復号]
CONFIG_SCSI_LOGGING      [実行時選択のログ収集許可]

CONFIG_SCSI_<ll_driver>  [種々の低レベルのアダプタドライバ]
CONFIG_SCSI_DEBUG        [デバッグ用低レベルドライバ]

CONFIG_SCSI_PPA          [旧式のパラレルポート zip ドライバ]
CONFIG_SCSI_IMM          [新式のパラレルポート zip ドライバ]

CONFIG_BLK_DEV_IDESCSI   [ide-scsi 擬似アダプタ]
CONFIG_I2O_SCSI		 [I2O バス経由の SCSI コマンド・セット]
CONFIG_SCSI_PCMCIA       [PCMCIA バス経由の SCSI HBA]
CONFIG_USB_STORAGE       [USB「大容量」タイプ]

CONFIG_MAGIC_SYSRQ       [緊急時の sync 用 Alt+SysRq+S]
                         [緊急時の ro 再マウント用 Alt+SyrRq+U]

ルートファイルシステムが SCSI ディスクなら、カーネルに SCSI の中間 レベルのドライバ、sd ドライバ、そのディスクがつながっている アダプタのドライバを必ず組み込んでください。たいていの場合、sr、st、sg などの ドライバはモジュールとして作成してかまいません。それらのドライバは必要になると ロードされます。スキャナーのようなデバイスが別のアダプタに接続されている なら、そのドライバはモジュールとして作成した方が良いでしょう。この場合アダプタ ・ドライバは、スキャナーが認識される前にロードしなければなりません。

Linux ディストリビューションには、SCSI サブシステムのドライバがモジュール としてたくさん入っています。理由は、すべてをカーネルに組み込むと巨大になって しまい、ブートローダーの能力を越えてしまうかもしれないからです。 これは、「鶏が先か、卵が先か」問題の原因になります。ルートファイルシステムを ロードするには SCSI ドライバが必要になりますが、ドライバをロードするには ルートファイルシステムをマウントしなければいけません。 この問題には、ロード時に 2 段階を踏む initrd デバイスで対処ができます。 (詳細は、Chapter 6を参照)。