ほとんどの場合,デバイス管理は自動で行われます。システムに追加したデバイスは,第 3 章
で説明したように認識され,マップされ,追加されます。しかし,自動的に検出してシステムに追加できないデバイスを手動で追加しなければならないこともあります。このようなデバイスには型の古いものや,新しいプロトタイプがあります。また,サポートしている標準 (SCSI など) に厳密に準拠していないものもあります。このような場合,この章で説明する
ddr_config
コマンドを用いて,デバイスとそのドライバをカーネル内に手作業で構成しなければなりません。
この章では,次の項目について説明します。
カーネル再構成の手順の概要 (4.1 節)
動的な方法を用いたカーネルの再構成 (4.2 節)
DDR データベースの手作業による変更 (4.3 節)
カスタマイズされた CAM (共通アクセスメソッド) データの変換 (4.4 節)
リモート・ログインを可能にする端末擬似デバイスである擬似端末 (ptys) の作成方法 (4.5 節)
カーネルの再構成と再構築を行う方法には,次の 2 種類があります。
動的な方法では,ddr
コマンドを使用してカーネルを再構築することによって,ディスク構成の変更を確定します。この方法では,オペレーティング・システムをシャットダウンする必要がありません。
静的な方法では,MAKEDEV
および
config
コマンドを使用する必要があります。カーネルを再構築してその変更を確定するためには,システムをシャットダウンして再起動する必要もあります。
dsfmgr
コマンドの代わりに
MAKEDEV
コマンドまたは
mknod
コマンドを使って,デバイス特殊ファイルを作成します。他社製のカーネル・レイヤード・プロダクトについては,kmknod
コマンドを使って,デバイス特殊ファイルを作成します。詳細は,リファレンス・ページの
MAKEDEV
(8)mknod
(8)kmknod
(8)
ロード可能ドライバについては,sysconfig
コマンドを使って,デバイス特殊ファイルを作成します。その際,データベース・ファイル
/etc/sysconfigtab
のスタンザ・エントリで指定された情報が用いられます。
以降の項では,ddr_config
コマンドを使用してシステムの DDR (動的デバイス認識) データベースを管理する方法を説明します。これらの項では,DDR の概要を説明した後,ddr_config
コマンドを用いて行う次のタスクについて説明します。
DDR は,SCSI デバイスの特性および操作パラメータを SCSI CAM I/O サブシステムに対して記述するためのフレームワークです。DDR を使用することによって,オペレーティング・システムをリブートせずに,新規の SCSI デバイスや変更した SCSI デバイスを,システムに追加できます。これにより,静的なデバイス認識による方法では避けられないユーザ・サービスやプロセスの中断を防ぐことができます。
DDR は SCSI デバイス認識の静的な方法に取って代わるものです。現在の静的な方法では,/sys/data/cam_data.c
データ・ファイルを編集して SCSI デバイス情報をカスタマイズし,カーネルを再構成したのち,オペレーティング・システムをシャットダウンしてリブートします。
注意
SCSI デバイス認識の静的な方法は,将来のリリースではサポートされなくなる予定です。
同じシステムで両方の方法を使用することができますが,各方法で記述されているデバイスは,その方法に限定されます (二重に定義することはできません)。
DDR が SCSI デバイスに関して提供する情報は,SCSI ドライバが必要とするものです。ユーザは,新しい SCSI デバイスをシステムに追加するときに,DDR を使用してこの情報を提供することができます。そうでない場合は,/sys/data/cam_data.c
データ・ファイルと静的構成方法を使用することができます。DDR が提供する情報は,cam_data.c
ファイルが提供する情報と同じ目的を持っています。SCSI デバイスに関する情報を静的な方法で提供する場合と比較すると,DDR では,デバイス・ドライバまたはサブシステムがオペレーティング・システムに対して提供する情報量を最小にして,デバイス自体が提供する情報または DDR データベースで指定されている省略時の設定で提供される情報量を最大にします。
4.2.1.1 標準に対する準拠
システムに追加するデバイスは,少なくともSCSI-2, Small Computer System Interface-2 (X3.131-1994)
に規定されている SCSI-2 標準に準拠していることが推奨されます。デバイスが標準に準拠していない場合,または標準に対して例外が必要な場合には,これらの相違に関する情報を DDR データベースに格納しておきます。デバイスが SCSI-2 標準に準拠している場合には,データベースを変更する必要はありません。このようなデバイスは,システムによって自動的に認識され,hwmgr
コマンドを使ってこれらのデバイスを構成することができます。
4.2.1.2 DDR メッセージ
次のリストに,最も一般的な DDR メッセージのカテゴリと,メッセージに対する対応策 (ある場合) を示します。
ブート処理の間,コンソール・メッセージが表示される。これらのメッセージは,ほとんどの場合,カーネルが DDR データベースを読み取れないことを示しています。このエラーは,システムのファームウェアのリビジョン・レベルが適切でない場合に起こります。適切なファームウェア・リビジョン・レベルにアップグレードしてください。
データベース内の壊れたエントリに関して,コンソール・メッセージで警告が表示される。データベースを再コンパイルして再作成してください。
実行時メッセージは,通常,ddr_config
コンパイラによって生成される構文エラーを示している。ddr_config
コマンドに対し
-c
オプションを指定してコンパイラを実行すると,構文エラーがすべて修正されるまで,出力データベースが作成されません。
ddr_config
コマンドに
-h
オプションを指定すると,コマンド・オプションに関するヘルプが表示されます。
4.2.2 データベース・エントリの例
この節では,サード・パーティ製の製品をサポートする
/etc/ddr.dbase
ファイルにおける 2 つの典型的なエントリの例を示します。この情報は,サポートされているデバイスのベンダによって提供されます。インストールされている HP Tru64 UNIX のバージョンに対応する正しいパラメータの設定に関する重要な情報については,ベンダのドキュメントを参照してください。
警告
この節で示すエントリ例は使用しないでください。デバイスのベンダに問い合わせて,最新の構成設定を入手してください。HP では,システムの省略時の
/etc/ddr.dbase
ファイルにリストされているものを除き,サード・パーティ製デバイスの構成情報は提供しません。
4.2.2.1 DDR エントリの例,StorageTek 9840
次の DDR エントリ例は,StorageTek 9840
磁気テープ・デバイスをサポートします。パラメータ,モードの選択,密度,属性の各フィールドの詳細については,
ddr.dbase
(4)
# Please note that this entry is not supported by HP # It is supplied by StorageTek as a means of enabling # their tape drive to work in HP Tru64 UNIX. # If you experience problems when using this drive # contact StorageTek Technical Support. SCSIDEVICE # # STK 9840 # Type = tape Name = "STK" "9840" # PARAMETERS: TypeSubClass = 3480 MaxTransferSize = 0x40000 #256k SyncTransfers = enabled WideTransfers = enabled Disconnects = enabled CmdReordering = disabled TaggedQueuing = disabled TagQueueDepth = 0 WCE_Capable = false PwrMgmt_Capable = false LongTimeoutRetry = disabled ReadyTimeSeconds = 240 DisperseQueue = false CMD_PreventAllow = supported CMD_ExtReserveRelease = supported DENSITY: # # /dev/tape/tapeX_d0, _d4 # DensityNumber = 0,4 DensityCode = density_code_42 CompressionCode = 0 Buffered = 0x1 # DENSITY: # # /dev/tape/tapeX_d1, _d5 # DensityNumber = 1,5 DensityCode = density_code_42 CompressionCode = 1 Buffered = 0x1 # # # /dev/tape/tapeX_d2, _d6 # DENSITY: DensityNumber = 2,6 DensityCode = density_code_43 CompressionCode = 0 Buffered = 0x1 # # # /dev/tape/tapeX_d3, _d7 # DENSITY: DensityNumber = 3,7 DensityCode = density_code_43 CompressionCode = 1 Buffered = 0x1 Buffered = 0x1 DENSITY: # DensityNumber = 1 DensityCode = default CompressionCode = 0x1 Buffered = 0x1
4.2.2.2 DDR エントリ例,EMC Symmetrix
次の DDR エントリ例は,EMC Symmetrix ディスク・ストレージ・デバイスとファイバ・チャネル・デバイスをサポートします。
パラメータ,モードの選択,密度,属性の各フィールドの詳細については,
ddr.dbase
(4)
サードパーティ製デバイスに付属のハードウェア・ドキュメントに属性の設定についての情報が記載されています。この例では,ATTRIBUTE
設定には
ubyte[0]
属性に対して設定し得る値を示すコメントが含まれています。これらの設定については,デバイスのハードウェア・ドキュメントを参照するか,ベンダに問い合わせてください。
SCSIDEVICE # # SAMPLE Entry for Symmetrix SCSI devices (DO NOT USE, CONSULT EMC) # Type = disk Name = "EMC" "SYMMETRIX" PARAMETERS: TypeSubClass = hard_disk, raid BlockSize = 512 BadBlockRecovery = disabled DynamicGeometry = true LongTimeoutRetry = enabled DisperseQueue = false TagQueueDepth = 20 ReadyTimeSeconds = 45 InquiryLength = 160 RequestSenseLength = 160 PwrMgmt_Capable = false ATTRIBUTE: # ubyte[0] = 8 Disable AWRE/ARRE only, PR enabled # ubyte[0] = 25 Disable PR & AWRE/ARRE, Enable I/O Barrier Patch resets AttributeName = "DSBLflags" Length = 4 ubyte[0] = 8 SCSIDEVICE # # Entry for Symmetrix Fibre Channel devices # Type = disk Stype = 2 Name = "EMC" "SYMMETRIX" PARAMETERS: TypeSubClass = hard_disk, raid BlockSize = 512 BadBlockRecovery = disabled DynamicGeometry = true LongTimeoutRetry = enabled DisperseQueue = false TagQueueDepth = 20 ReadyTimeSeconds = 45 InquiryLength = 160 RequestSenseLength = 160 PwrMgmt_Capable = false ATTRIBUTE: AttributeName = "DSBLflags" Length = 4 ubyte[0] = 8
SCSI デバイスの操作パラメータまたは特性を変更した場合には,/etc/ddr.dbase
ファイルにその変更を記述する必要があります。ddr_config -c
コマンドを使用して,その変更をコンパイルします。
変更を行う一般的な理由は次の 2 つです。
使用しているデバイスが SCSI 標準からはずれているか,または SCSI 標準とは異なると報告された。
デバイスの省略時の設定,ほとんどの場合,TagQueueDepth
パラメータ (そのデバイスがサポートするアクティブなタグ付き要求の最大数を指定する) を最適化する。
ddr_config -c
コマンドを使用して
/etc/ddr.dbase
ファイルをコンパイルし,バイナリのデータベース・ファイル
/etc/ddr.db
を作成します。カーネルは,ファイル状態の変更を認識すると,新しい
/etc/ddr.dbase
ファイルをロードします。
このように,SCSI CAM I/O サブシステムは,/etc/ddr.dbase
ファイルに対して行われた変更に基づいて動的に更新され,ディスク上のデータベースの内容が,メモリ内のデータベースの内容と同期化されます。
次の手順に従って,/etc/ddr.dbase
データベースをコンパイルします。
root としてログインするか,またはスーパユーザになります。
ddr_config -c
コマンドを入力します。たとえば,次のように入力します。
# /sbin/ddr_config -c
正常に完了したことを確認するメッセージは表示されません。プロンプトが表示されると,コンパイルが終了します。構文エラーがあるとエラーが標準出力に出力され,コンパイル済みの出力ファイルは生成されません。
4.4 カスタマイズ済みの cam_data.c 情報の変換
次の手順を使用して,SCSI デバイスに関するカスタマイズ済み情報を,/sys/data/cam_data.c
ファイルから
/etc/ddr.dbase
テキスト・データベースに転送します。この例では,MACHINE
は使用しているマシンのシステム構成ファイル名です。
root としてログインするか,またはスーパユーザになります。
/etc/ddr.dbase
ファイルに対して行われた追加および変更の要約を作成するために,ddr_config -x
コマンドを実行します。たとえば次のようにします。
# /sbin/ddr_config -x MACHINE > output.file
このコマンドは,システム構成ファイルを入力として使用します (構成ファイルは,現在実行中のカーネルを構築したときに指定したファイルです)。この手順はマルチユーザ・モードで実行され,開始後に入力を行う必要はありません。出力をファイルにリダイレクトして,要約情報を保存しておくようにしてください。コンパイル・エラーは標準エラーに報告され,エラーが報告されるとコマンドは直ちに終了します。警告メッセージは標準エラーに出力され,コマンドは終了しません。
出力ファイルにリストされた特性を,/etc/ddr.dbase
ファイルの構文に従って,そのファイル内に編集します。/etc/ddr.dbase
データベースの編集方法については,
ddr.dbase
(4)
ddr_config -c
コマンドを入力して,変更をコンパイルします。
詳細は,4.3 節を参照してください。
以降の項で説明する手順に従うと (DDR を使用せずに) 擬似端末,ディスク,およびテープ・デバイスを静的に追加することができます。
4.5 DDR を使用せずに擬似端末とデバイスを追加する
特に指定しなくても System V Release 4 (SVR4) の擬似端末 (ptys) はインプリメントされており,次のように定義されています。
/dev/pts/N
変数 N は,0 〜 9999 の数値です。
この機能により,BSD の pty (tty[a-zA-Z][0-9a-zA-Z]) より高いスケーラビリティが得られます。ベース・システムのコマンドおよびユーティリティは,SVR4 と BSD の pty をサポートしています。元の省略時の設定に戻るには,MAKEDEV
コマンドを用いて BSD ptys
を作成します。
SYSV_PTY
(8)pty
(7)MAKEDEV
(8)4.5.1 擬似端末の追加
擬似端末を使用することによって,ネットワーク経由でシステムにアクセスすることができます。擬似端末は,システムへのハードウェア端末の接続をエミュレートする 1 組のキャラクタ・デバイスです。ハードウェアの代わりに,マスタ・デバイスとスレーブ・デバイスが存在します。擬似端末は,通常の端末と違い,対応する物理的な端末ポートがシステム上に存在しません。リモート・ログイン・セッション,ウィンドウ・ソフトウェア,およびシェルは,擬似端末を使用してシステムにアクセスします。特に指定しなければ,SRV4 のデバイス特殊ファイル (/dev/pts/
n
など) が作成されます。/dev/ttyp/
n
のような BSD の擬似端末を作成するには,/dev/MAKEDEV
を使用しなければなりません。利用できる擬似端末の種類は 2 つあります。BSD STREAMS と BSD
clist
の 2 つです。
環境によっては,pty
デバイスの省略時の数で十分な場合があります。しかし,環境が拡大し,その中で各ユーザが 1 台以上のタイムシェアリング・マシンで複数のセッションを実行しようとすると,マシンの
pty
の数が足りなくなることも考えられます。現在の値を調べるには,次のコマンドを実行します。
# sysconfig -q pts pts: nptys = 255
次のように,sysconfig
コマンドでこの値を動的に変更することもできますが,リブートするとその変更は無効になります。
# sysconfig -r pts nptys=400
変更した値をリブート後も維持するには,次の手順に従ってください。
スーパユーザ (root) としてログインします。
システム構成ファイル
/etc/sysconfigtab
で擬似デバイスを追加または編集します。省略時の設定では,カーネルは 255 個の擬似端末をサポートします。さらに多くの擬似端末をシステムに追加する場合は,システム構成ファイルを編集して,追加したい擬似端末数まで増加させます。次の例では擬似端末を 400 個増加する方法を示しています。
pts: nptys=400
clist
ベースの擬似端末に対する擬似端末エントリは,次のようになります。
pseudo-device pty 655
構成ファイルとその擬似デバイス・キーワードの詳細については,『システム管理ガイド』を参照してください。
clist
ベースの擬似端末では,さらに,新しいカーネルを再構築してブートします。新しいカーネルの再構築とブートについては,『システム管理ガイド』を参照してください。
システムを最初にインストールした際には,構成ファイルの擬似デバイスエントリに省略時の設定として 255 の擬似端末数が設定されます。この値が削除されている場合,システムの省略値の擬似端末数は最小の 80 になります。最大値は 131072 です。
BSD 端末を作成する場合は,次のように
/dev/MAKEDEV
コマンドを使用します。
root としてログインし,/dev
ディレクトリに移動します。
次のように
MAKEDEV
コマンドを使用して,デバイス特殊ファイルを作成します。
./MAKEDEV pty_#
#
(番号記号)には,作成したい擬似端末のセット数 (0〜101) を指定します。最初の 51セット (0〜50) は,各セットでそれぞれ 16 の擬似端末を作成します。残りの 51 セット (51〜101) は,各セットに対して 46
の擬似端末を作成します。大量の擬似端末を作成する手順については,
MAKEDEV
(8)
注意
省略時の設定では,インストレーション・ソフトウェアは,擬似端末の最初の 2 セット,
pty0
およびpty1
のデバイス特殊ファイルを作成します。pty0
擬似端末には,/dev/ttyp0
から/dev/ttypf
までの名前が付いた対応するデバイス特殊ファイルがあります。pty1
擬似端末には,/dev/ttyq0
から/dev/ttyqf
までの名前が付いた対応するデバイス特殊ファイルがあります。
インストレーション・ソフトウェアは
pty0
と
pty1
を設定するので,システムに擬似端末を追加する場合には,pty#
変数は
pty1
より大きくなければなりません。たとえば,擬似端末の 3 番目のセットのためのデバイス特殊ファイルを作成するには,次のコマンドを入力します。
# ./MAKEDEV pty2
MAKEDEV
コマンドは,作成したデバイス特殊ファイルのリストを表示します。たとえば次のように表示されます。
MAKEDEV: special file(s) for pty2: ptyr0 ttyr0 ptyr1 ttyr1 ptyr2 ttyr2 ptyr3 ttyr3 ptyr4 ttyr4 ptyr5 ttyr5 ptyr6 ttyr6 ptyr7 ttyr7 ptyr8 ttyr8 ptyr9 ttyr9 ptyra ttyra ptyrb ttyrb ptyrc ttyrc ptyrd ttyrd ptyre ttyre ptyrf ttyrf
すべての擬似端末で root ログインを許可する場合は,/etc/securettys
ファイルに ptys エントリを記述します。擬似端末での root ログインを許可しない場合は,/etc/securettys
ファイルの ptys エントリを削除します。たとえば,新しい tty ラインのエントリを追加し,すべての擬似端末で root ログインを許可する場合は,/etc/securettys
ファイルに次の行を追加します。
/dev/tty08 # direct tty /dev/tty09 # direct tty /dev/tty10 # direct tty /dev/tty11 # direct tty ptys
詳細については,
securettys
(4)
新しい SCSI デバイスをシステムに追加すると,システムが自動的にそれらを検出して構成します。適切な
hwmgr
コマンドと
dsfmgr
コマンドを実行して,デバイスを登録し,識別子を割り当て,デバイス特殊ファイルを作成します。しかし,他のデバイスについては,MAKEDEV
コマンドを用いて手作業でデバイス名を作成する必要があるかもしれません。間違ってシステムから削除されたデバイス特殊ファイルを再度作成しなければならないこともあります。
新しいデバイスの場合には,そのデバイスを物理的に接続して,システムにデバイスを認識させなければなりません。この方法には,静的ドライバ用とロード可能ドライバ用の 2 つの方法があります。デバイスを追加する前に,システム・プロセッサに添付されているオーナーズ・マニュアルと,デバイス自体に添付されているドキュメントを必ず読んでください。また,ドライバ・ソフトウェアの入ったディスクが必要になることもあります。
第 8 章 には,システムに PCMCIA モデムを追加する例の概要と,デバイス特殊ファイルの作成方法が示されています。
古いデバイス特殊ファイル
rz
または
tz
を
/dev
に作成する (/dev/rz5
など) だけであれば,MAKEDEV
コマンドは使う必要はありません。dsfmgr
コマンドを使えば,これらのデバイス名を作成できます。
ロード可能ドライバにデバイスを追加する方法については,デバイス・ドライバのマニュアルを参照してください。
静的ドライバ用にデバイスを追加するには,4.5.1 項を参照してください。
続いて,次の手順を実行して,そのデバイス用にデバイス特殊ファイルを作成します。
/dev
ディレクトリに移動します。
次のように
MAKEDEV
コマンドを使用して,デバイス特殊ファイルを作成します。
# ./MAKEDEV deviceN
変数 device は,追加しようとしているデバイスを示すデバイス・ニーモニックです。変数 N はデバイス番号を示します。たとえば,2 つの PCMCIA モデム・カードのデバイス特殊ファイルを作成するには,次のコマンドを入力します。
# ./MAKEDEV ace2 ace3
MAKEDEV: special file(s) for ace2: tty02 MAKEDEV: special file(s) for ace3: tty03
作成されるデバイス特殊ファイルは次のようになります。
crw-rw-rw- 1 root system 35, 2 Oct 27 14:02 tty02 crw-rw-rw- 1 root system 35, 3 Oct 27 14:02 tty03
shutdown
コマンドを使用してシステムを停止し,システムの電源を切ります。詳細については,『システム管理ガイド』と
shutdown
(8)
システムの電源を入れます。すべてのデバイスをシステムに認識させるためには,周辺装置の電源を先に入れてから,システム本体の電源を入れてください。
新しいカーネルでシステムをブートします。ブートについての詳細は,『システム管理ガイド』を参照してください。