Solaris のシステム管理 (第 1 巻)

第 19 章 デバイス管理の概要と手順

この章では、Solaris 環境の周辺デバイスを管理する方法の概要を示します。

この章の概要は次のとおりです。

この章で説明する手順は次のとおりです。

デバイスへのアクセスについては、第 20 章「デバイスへのアクセス」を参照してください。

Solaris 環境のデバイス管理には、通常、システムでの周辺デバイスの追加と削除、デバイスをサポートするためのサードパーティデバイスドライバの追加、システム設定情報の表示が含まれます。

デバイス管理における新機能

この節では、Solaris 7 のデバイス管理における新機能について説明します。

動的再構成

動的再構成は、一部の SPARC サーバー上で使用できる機能です。この機能を使用することにより、サービスプロバイダは、システムを稼動したまま、ホットプラグ対応のシステム入出力ボードの取り外しや交換が行え、システムをリブートする手間と時間が省けます。また、交換すべきボードがすぐに入手できない場合でも、システム管理者は動的再構成を使用して、故障したボードだけをシャットダウンし、システムの稼動を継続できます。

使用しているサーバーが動的再構成をサポートしているかどうかを調べるには、ハードウェアのマニュアルを参照してください。

x86: SCSI ディスクドライバ (sd)

以前の Solaris リリースでは、x86 プラットフォーム上での SCSI ディスクのサポートは cmdk ドライバが処理していました。Solaris 7 では、sd ドライバが処理します。sd ドライバは、Solaris SPARC プラットフォームの SCSI ディスクドライバと似ています (SPARC プラットフォームのドライバも sd と呼ばれます) 。

これらのデバイスの管理方法に変更はありません。システム管理者は、format ユーティリティと同様に、prtconfsysdef、および dmesg コマンドの出力で、cmdk の代わりに sd を参照します。

sd の機能は cmdk が提供する機能のスーパーセットであるため、(/dev/dsk で論理ディスク名を使用する) アプリケーションは、ドライバの変更による影響を受けません。IDE デバイスを持つ x86 システムは、引きつづき cmdk ドライバを使用します。

デバイス管理作業の参照先

表 19-1 に、プリンタやモデムなどのシリアルデバイスと、ディスク、CD-ROM、テープドライブなどの周辺デバイスをシステムに追加するための手順を説明している参照先を示します。

表 19-1 デバイスを追加する場合の参照先

作業内容 

参照先 

ディスクの追加 

第 23 章「SPARC: ディスク追加の手順」または第 24 章「x86: ディスク追加の手順」

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 で提供されるユーティリティと互換性を持たないので、保守および管理用のユーティリティが必要になる場合があります。

詳細については、デバイスのご購入先にお問い合わせください。

システムへ周辺デバイスを追加する

新しい周辺デバイスを追加する場合、通常、次の作業が必要になります。

次のデバイスをシステムに追加するには、以下で説明する手順に従ってください。

場合によっては、新しいデバイスをサポートするために、サードパーティのデバイスドライバを追加しなければなりません。

周辺デバイスを追加する方法

  1. スーパーユーザーになります。

  2. デバイスをサポートするためにデバイスドライバを追加する必要がある場合は、「デバイスドライバを追加する方法」の手順 2 と 3 に従います。

  3. /reconfigure ファイルを作成します。


    # touch /reconfigure
    

    Solaris ソフトウェアは、次にシステムに電源を入れたときまたはブートしたときに、新しくインストールされたデバイスがないかどうかをこの /reconfigure ファイルによってチェックします。

  4. システムをシャットダウンします。


    # shutdown -i0 -g30 -y
    

    -i0

    システムを 0 の init 状態に戻す。システムの電源を落としてデバイスの追加、削除を行うのに適した状態になる。 

    -g30

    システムを 30 秒以内にシャットダウンする。デフォルト値は 60 秒。 

    -y

    ユーザーの介入なしに、システムのシャットダウンを続ける。このオプションを指定しないと、シャットダウンプロセスを続けるかどうか、プロンプトでたずねられる。 

  5. システムがシャットダウンされたら、電源を落とします。

    SPARC システムの場合 

    x86 システムの場合 

    ok または > プロンプトが表示されたら、電源を落としても安全。

    Type any key to continue プロンプトが表示されたら、電源を落としても安全。

    電源スイッチの位置については、各システムに添付のハードウェアマニュアルを参照してください。

  6. すべての外部デバイスの電源を落とします。

    周辺デバイスの電源スイッチの位置については、各自の周辺デバイスに添付のハードウェアマニュアルを参照してください。

  7. 周辺デバイスをインストールして、追加するデバイスのターゲット番号がシステム上の他のデバイスとは異なることを確認します。

    ディスクの裏側に小さいスイッチがあるはずです。

    デバイスの設置と接続については、周辺デバイスに添付のハードウェアマニュアルを参照してください。

  8. システムの電源を入れます。

    システムがブートされてマルチユーザーモードになり、ログインプロンプトが表示されます。

  9. 周辺デバイスにアクセスし、そのデバイスが追加されたことを確認してください。デバイスにアクセスする方法については、第 20 章「デバイスへのアクセス」を参照してください。

デバイスドライバを追加する方法

この手順では、デバイスがすでにシステムに追加されていることを前提としています。追加されていない場合は、「周辺デバイスを追加する方法」を参照してください。

  1. スーパーユーザーになります。

  2. テープ、フロッピーディスク、または CD-ROM をドライブに入れます。

  3. pkgadd コマンドを使用して、ドライバをインストールします。


    # pkgadd -d device package-name
    

    -d device

    デバイスのパス名を指定する。 

    package-name

    デバイスドライバを含むパッケージ名を指定する。 

  4. 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)

最後のリブート以降にシステムに接続されたデバイスのリストと、システム診断情報を表示します。 

システム上のデバイスを識別するために使用されるデバイス名については、「デバイス名の命名規則」を参照してください。

driver not attached メッセージ

次のドライバ関連メッセージが、prtconf コマンドと sysdef コマンドによって表示されることがあります。

device, instance #number (driver not attached)

このメッセージは、ノードにデバイスがないか、あるいはデバイスが使用中ではないために、デバイスインスタンスに「現在」接続されているドライバがないことを示します。ドライバは、デバイスがアクセスされると自動的にロードされ、デバイスが使用されなくなると自動的にアンロードされます。

システムデバイスの識別

prtconf コマンドと sysdef コマンドを使用すると、デバイスインスタンスの次に示される「driver not attached」メッセージを確認することによって、システムに接続されたディスク、テープ、CD-ROM デバイスを識別できます。これらのデバイスは、何らかのシステムプロセスによって常に監視されているため、「driver not attached」メッセージは通常、そのデバイスインスタンスにデバイスがないことを示す良い標識になります。

たとえば、次の prtconf 出力は、instance #3instance #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
.
.
.