この章では、Solaris 環境の周辺デバイスを管理する方法の概要を示します。
この章の概要は次のとおりです。
この章で説明する手順は次のとおりです。
デバイスへのアクセスについては、第 20 章「デバイスへのアクセス」を参照してください。
Solaris 環境のデバイス管理には、通常、システムでの周辺デバイスの追加と削除、デバイスをサポートするためのサードパーティデバイスドライバの追加、システム設定情報の表示が含まれます。
この節では、Solaris 7 のデバイス管理における新機能について説明します。
動的再構成は、一部の SPARC サーバー上で使用できる機能です。この機能を使用することにより、サービスプロバイダは、システムを稼動したまま、ホットプラグ対応のシステム入出力ボードの取り外しや交換が行え、システムをリブートする手間と時間が省けます。また、交換すべきボードがすぐに入手できない場合でも、システム管理者は動的再構成を使用して、故障したボードだけをシャットダウンし、システムの稼動を継続できます。
使用しているサーバーが動的再構成をサポートしているかどうかを調べるには、ハードウェアのマニュアルを参照してください。
以前の Solaris リリースでは、x86 プラットフォーム上での SCSI ディスクのサポートは cmdk ドライバが処理していました。Solaris 7 では、sd ドライバが処理します。sd ドライバは、Solaris SPARC プラットフォームの SCSI ディスクドライバと似ています (SPARC プラットフォームのドライバも sd と呼ばれます) 。
これらのデバイスの管理方法に変更はありません。システム管理者は、format ユーティリティと同様に、prtconf、sysdef、および dmesg コマンドの出力で、cmdk の代わりに sd を参照します。
sd の機能は cmdk が提供する機能のスーパーセットであるため、(/dev/dsk で論理ディスク名を使用する) アプリケーションは、ドライバの変更による影響を受けません。IDE デバイスを持つ x86 システムは、引きつづき cmdk ドライバを使用します。
表 19-1 に、プリンタやモデムなどのシリアルデバイスと、ディスク、CD-ROM、テープドライブなどの周辺デバイスをシステムに追加するための手順を説明している参照先を示します。
表 19-1 デバイスを追加する場合の参照先|
作業内容 |
参照先 |
|---|---|
|
ディスクの追加 | |
|
CD-ROM またはテープデバイスの追加 | |
|
モデムの追加 |
『Solaris のシステム管理 (第 2 巻)』の「端末とモデム管理の概要」 |
|
プリンタの追加 |
『Solaris のシステム管理 (第 2 巻)』の「印刷管理の概要」 |
コンピュータは通常、広範囲の周辺デバイスと大量記憶デバイスを使用します。たとえば、各システムには、SCSI ディスクドライブ、キーボードとマウス、磁気バックアップ媒体があるはずです。これ以外に一般に使用されるデバイスには、CD-ROM ドライブ、プリンタとプロッタ、ライトペン、タッチセンサー式画面、デジタイザー、タブレットとスタイラスのペアがあります。
Solaris ソフトウェアは、これらのデバイスと直接には通信を行いません。各タイプのデバイスに異なるデータ形式、プロトコル、および転送速度が必要になります。
「デバイスドライバ」は、オペレーティングシステムが特定のハードウェアと通信できるようにする低レベルのプログラムです。このドライバは、そのハードウェアに対するオペレーティングシステムの「インタプリタ」として機能します。
プラットフォーム固有の構成要素を備えた汎用コアと、一連のモジュールからなるカーネルは、Solaris 環境で自動的に設定されます。
カーネルモジュールとは、システムで固有の作業を実行するために使用されるハードウェアまたはソフトウェアの構成要素のことです。「ロード可能」なカーネルモジュールの例としては、デバイスのアクセス時にロードされるデバイスドライバがあげられます。
プラットフォームに依存しないカーネルは /kernel/genunix です。プラットフォーム固有の構成要素は、/platform/`uname -m`/kernel/unix です。
カーネルモジュールについては、次の表 19-2 で説明します。
表 19-2 カーネルモジュール|
ディレクトリの位置 |
内容 |
|---|---|
|
/platform/`uname -m` /kernel |
プラットフォーム固有のカーネル構成要素 |
|
/kernel |
システムのブートに必要なすべてのプラットフォームに共通のカーネル構成要素 |
|
/usr/kernel |
特定の命令セット内にあるすべてのプラットフォームに共通のカーネル構成要素 |
システムは、ブート時にどのデバイスが接続されるかを判断します。さらに、カーネルは、それ自体を動的に構成して、必要なモジュールだけをメモリーにロードします。ディスクデバイスやテープデバイスなどのデバイスが初めてアクセスされると、対応するデバイスドライバがロードされます。このプロセスは、「 自動構成」と呼ばれます。これは、すべてのカーネルモジュールが、必要に応じて自動的にロードされるためです。
/etc/system ファイルを修正することにより、カーネルモジュールがロードされる方法をカスタマイズできます。このファイルを修正する方法については、『Solaris のシステム管理 (第 2 巻)』の「カーネルパラメタの調整手順」を参照してください。
自動構成の利点は次のとおりです。
モジュールが必要に応じてロードされるため、主メモリーをより効率的に使用できる。
新しいデバイスがシステムに追加されるときに、カーネルを再構成する必要がない。
カーネルを再構成しないでドライバをロード、テストして、システムをリブートすることができる。
自動構成プロセスは、システム管理者が新しいデバイス (およびドライバ) をシステムに追加するときに使用されます。これは、再構成ブートを実行することにより行われるため、システムは新しいデバイスを認識することができます。
Solaris 環境には、各種の標準デバイスをサポートするために必要なデバイスドライバが組み込まれています。これらのドライバは、/kernel/drv および /platform/`uname -m`/kernel/drv ディレクトリにあります。
ただし Solaris で標準にサポートされていないデバイスを購入した場合は、そのメーカーから、デバイスを正しくインストール、保守、管理するために必要なソフトウェアを提供してもらう必要があります。
そのようなデバイス用ソフトウェアには、少なくともデバイスドライバとその関連設定 (.conf) ファイルが含まれます。.conf ファイルは、drv ディレクトリにもあります。 また、サポートされていないデバイスは、Solaris で提供されるユーティリティと互換性を持たないので、保守および管理用のユーティリティが必要になる場合があります。
詳細については、デバイスのご購入先にお問い合わせください。
新しい周辺デバイスを追加する場合、通常、次の作業が必要になります。
システムのシャットダウン
システムへのデバイスの接続
システムのリブート
次のデバイスをシステムに追加するには、以下で説明する手順に従ってください。
CD-ROM
ディスクドライブ
テープドライブ
SBUS カード
場合によっては、新しいデバイスをサポートするために、サードパーティのデバイスドライバを追加しなければなりません。
スーパーユーザーになります。
デバイスをサポートするためにデバイスドライバを追加する必要がある場合は、「デバイスドライバを追加する方法」の手順 2 と 3 に従います。
/reconfigure ファイルを作成します。
# touch /reconfigure |
Solaris ソフトウェアは、次にシステムに電源を入れたときまたはブートしたときに、新しくインストールされたデバイスがないかどうかをこの /reconfigure ファイルによってチェックします。
システムをシャットダウンします。
# shutdown -i0 -g30 -y |
|
-i0 |
システムを 0 の init 状態に戻す。システムの電源を落としてデバイスの追加、削除を行うのに適した状態になる。 |
|
-g30 |
システムを 30 秒以内にシャットダウンする。デフォルト値は 60 秒。 |
|
-y |
ユーザーの介入なしに、システムのシャットダウンを続ける。このオプションを指定しないと、シャットダウンプロセスを続けるかどうか、プロンプトでたずねられる。 |
システムがシャットダウンされたら、電源を落とします。
|
SPARC システムの場合 |
x86 システムの場合 |
|---|---|
|
ok または > プロンプトが表示されたら、電源を落としても安全。 |
Type any key to continue プロンプトが表示されたら、電源を落としても安全。 |
電源スイッチの位置については、各システムに添付のハードウェアマニュアルを参照してください。
すべての外部デバイスの電源を落とします。
周辺デバイスの電源スイッチの位置については、各自の周辺デバイスに添付のハードウェアマニュアルを参照してください。
周辺デバイスをインストールして、追加するデバイスのターゲット番号がシステム上の他のデバイスとは異なることを確認します。
ディスクの裏側に小さいスイッチがあるはずです。
デバイスの設置と接続については、周辺デバイスに添付のハードウェアマニュアルを参照してください。
システムの電源を入れます。
システムがブートされてマルチユーザーモードになり、ログインプロンプトが表示されます。
周辺デバイスにアクセスし、そのデバイスが追加されたことを確認してください。デバイスにアクセスする方法については、第 20 章「デバイスへのアクセス」を参照してください。
この手順では、デバイスがすでにシステムに追加されていることを前提としています。追加されていない場合は、「周辺デバイスを追加する方法」を参照してください。
スーパーユーザーになります。
テープ、フロッピーディスク、または CD-ROM をドライブに入れます。
pkgadd コマンドを使用して、ドライバをインストールします。
# pkgadd -d device package-name |
|
-d device |
デバイスのパス名を指定する。 |
|
package-name |
デバイスドライバを含むパッケージ名を指定する。 |
pkgchk コマンドを使用して、パッケージが正しく追加されていることを確認します。パッケージが正しくインストールされている場合は、何も表示されません。
# pkgchk packagename # |
次の例では、XYZdrv というパッケージをインストールして確認しています。
# pkgadd XYZdrv (ライセンスのメッセージが表示される) . . . Installing XYZ Company driver as <XYZdrv> . . . Installation of <XYZdrv> was successful. # pkgchk XYZdrv |
システムとデバイスの設定情報を表示するには、次の 3 つのコマンドを使用します。
|
prtconf(1M) |
メモリーの総量、システムのデバイス階層によって記述されたデバイス設定を含む、システム設定情報を表示します。このコマンドによる出力は、システムのタイプによって異なります。 |
|
sysdef(1M) |
システムハードウェア、疑似デバイス、ロード可能なモジュール、および指定のカーネルパラメータを含む、デバイス設定情報を表示します。 |
|
dmesg(1M) |
最後のリブート以降にシステムに接続されたデバイスのリストと、システム診断情報を表示します。 |
システム上のデバイスを識別するために使用されるデバイス名については、「デバイス名の命名規則」を参照してください。
次のドライバ関連メッセージが、prtconf コマンドと sysdef コマンドによって表示されることがあります。
device, instance #number (driver not attached)
このメッセージは、ノードにデバイスがないか、あるいはデバイスが使用中ではないために、デバイスインスタンスに「現在」接続されているドライバがないことを示します。ドライバは、デバイスがアクセスされると自動的にロードされ、デバイスが使用されなくなると自動的にアンロードされます。
prtconf コマンドと sysdef コマンドを使用すると、デバイスインスタンスの次に示される「driver not attached」メッセージを確認することによって、システムに接続されたディスク、テープ、CD-ROM デバイスを識別できます。これらのデバイスは、何らかのシステムプロセスによって常に監視されているため、「driver not attached」メッセージは通常、そのデバイスインスタンスにデバイスがないことを示す良い標識になります。
たとえば、次の prtconf 出力は、instance #3 と instance #6 のデバイスを識別しています。これは、最初の SCSI ホストアダプタ (esp、instance #0) のターゲット 3 のディスクデバイスと、ターゲット 6 の CD-ROM デバイスを示しています。
$ /usr/sbin/prtconf
.
.
.
esp, instance #0
sd (driver not attached)
st (driver not attached)
sd, instance #0 (driver not attached)
sd, instance #1 (driver not attached)
sd, instance #2 (driver not attached)
sd, instance #3
sd, instance #4 (driver not attached)
sd, instance #5 (driver not attached)
sd, instance #6
.
.
.
|
同じデバイス情報は、sysdef 出力からも得られます。
システム設定情報を表示するには、prtconf コマンドを使用してください。
# /usr/sbin/prtconf |
疑似デバイス、ロード可能なモジュール、および指定のカーネルパラメータを含むシステム設定情報を表示するには、sysdef コマンドを使用してください。
# /usr/sbin/sysdef |
次の prtconf 出力は、SPARC システム上で表示されます。
# prtconf
System Configuration: Sun Microsystems sun4c
Memory size: 32 Megabytes
System Peripherals (Software Nodes):
SUNW,Sun 4_50
packages (driver not attached)
disk-label (driver not attached)
deblocker (driver not attached)
obp-tftp (driver not attached)
options, instance #0
aliases (driver not attached)
openprom (driver not attached)
zs, instance #0
zs, instance #1
audio (driver not attached)
eeprom (driver not attached)
counter-timer (driver not attached)
memory-error (driver not attached)
interrupt-enable (driver not attached)
auxiliary-io (driver not attached)
sbus, instance #0
dma, instance #0
esp, instance #0
sd (driver not attached)
st (driver not attached)
sd, instance #0 (driver not attached)
sd, instance #1 (driver not attached)
sd, instance #2 (driver not attached)
sd, instance #3
sd, instance #4 (driver not attached)
sd, instance #5 (driver not attached)
sd, instance #6
.
.
.
|
x86 システムからは、次の sysdef 出力が表示されます。
# sysdef * Hostid * 29f10b4d * * i86pc Configuration * * * Devices * +boot (driver not attached) memory (driver not attached) aliases (driver not attached) chosen (driver not attached) i86pc-memory (driver not attached) i86pc-mmu (driver not attached) openprom (driver not attached) options, instance #0 packages (driver not attached) delayed-writes (driver not attached) itu-props (driver not attached) isa, instance #0 motherboard (driver not attached) pnpADP,1542, instance #0 asy, instance #0 asy, instance #1 lp, instance #0 (driver not attached) fdc, instance #0 fd, instance #0 fd, instance #1 (driver not attached) kd (driver not attached) kdmouse (driver not attached) . . . |
デバイス情報は、dmesg コマンドを使用して表示してください。
# /usr/sbin/dmesg |
この dmesg 出力は、システムコンソール上のメッセージとして表示され、最後のリブート以降に接続されたデバイスを表示します。
SPARC システムからは、次の dmesg 出力が表示されます。
# dmesg SunOS Release 5.7 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. pac: enabled - SuperSPARC cpu0: TI,TMS390Z50 (mid 8 impl 0x0 ver 0x0 clock 40 MHz) mem = 32768K (0x2000000) avail mem = 27803648 Ethernet address = 8:0:20:1f:33:9g root nexus = SUNW,SPARCstation-10 iommu0 at root: obio 0xe0000000 sbus0 at iommu0: obio 0xe0001000 dma0 at sbus0: SBus slot f 0x400000 dma0 is /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000 /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000 (esp0): esp-options=0x46 esp0 at dma0: SBus slot f 0x800000 sparc ipl 4 esp0 is /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000 sd1 at esp0: target 1 lun 0 sd1 is /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0 sd3 at esp0: target 3 lun 0 sd3 is /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0 root on /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0:a ... obio0 at root obio0 at obio0: obio 0x100000 sparc ipl 12 zs0 is /obio/zs@0,100000 obio1 at obio0: obio 0x0 sparc ipl 12 zs1 is /obio/zs@0,0 cpu 0 initialization complete - online ledma0 at sbus0: SBus slot f 0x400010 le0 at ledma0: SBus slot f 0xc00000 sparc ipl 6 le0 is /iommu@f,e0000000/sbus@f,e0001000/ledma@f,400010/le@f,c00000 dump on /dev/dsk/c0t3d0s1 size 200 MB # |
x86 システムからは、次の dmesg 出力が表示されます。
# dmesg SunOS Release 5.7 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. mem = 130684K (0x7f9f000) avail mem = 114970624 root nexus = i86pc isa0 at root ISA-device: asy0 asy0 is /isa/asy@1,3f8 ISA-device: asy1 asy1 is /isa/asy@1,2f8 pci0 at root: space 0 offset 0 IDE device at targ 0, lun 0 lastlun 0x0 model WDC AC31000H, stat 50, err 0 cfg 0x427a, cyl 2100, hd 16, sec/trk 63 mult1 0x8010, mult2 0x108, dwcap 0x0, cap 0xf00 piomode 0x180, dmamode 0x200, advpiomode 0x1 minpio 380, minpioflow 180 valid 0x3, dwdma 0x3, majver 0x0 ata_set_feature: (0x66,0x0) failed ISA-device: ata0 Disk0: cmdk0 at ata0 target 0 lun 0 cmdk0 is /isa/ata@1,1f0/cmdk@0,0 root on /isa/ata@1,1f0/cmdk@0,0:a fstype ufs Number of console virtual screens = 13 cpu 0 initialization complete - online Ethernet address = 2:7:1:1c:27:e5 . . . |