ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
ドライバを使用する前に、ドライバが存在することをシステムに通知する必要があります。add_drv(1M) ユーティリティーを使用して、デバイスドライバを正しくインストールする必要があります。ドライバがインストールされたら、add_drv コマンドを使用せずに、メモリーからそのドライバをロードおよびアンロードできます。
デバイスドライバモジュールのパスは次の 3 つの条件によって決まります。
ドライバが実行されるプラットフォーム
ドライバがコンパイルされる対象のアーキテクチャー
ブート時にパスが必要かどうか
デバイスドライバは次の場所に置かれます。
特定の SPARC ベースのプラットフォームでのみ実行される 64 ビットドライバが格納されます。
特定の x86 ベースのプラットフォームでのみ実行される 64 ビットドライバが格納されます。
特定ファミリのプラットフォームでのみ実行される 32 ビットドライバが格納されます。
特定ファミリの SPARC ベースのプラットフォームでのみ実行される 64 ビットドライバが格納されます。
特定ファミリの x86 ベースのプラットフォームでのみ実行される 64 ビットドライバが格納されます。
プラットフォームに依存しない 32 ビットドライバが格納されます。
プラットフォームに依存しない、SPARC ベースのシステムの 64 ビットドライバが格納されます。
プラットフォームに依存しない、x86 ベースのシステムの 64 ビットドライバが格納されます。
32 ビットドライバをインストールするには、モジュールパスの drv ディレクトリにドライバと構成ファイルをコピーする必要があります。たとえば、ドライバを /usr/kernel/drv にコピーするには、次のように入力します。
$ su # cp xx /usr/kernel/drv # cp xx.conf /usr/kernel/drv
SPARC ドライバをインストールするには、モジュールパスの drv/sparcv9 ディレクトリにドライバをコピーします。ドライバ構成ファイルは、モジュールパスの drv ディレクトリにコピーします。たとえば、ドライバを /usr/kernel/drv にコピーするには、次のように入力します。
$ su # cp xx /usr/kernel/drv/sparcv9 # cp xx.conf /usr/kernel/drv
64 ビット x86 ドライバをインストールするには、モジュールパスの drv/amd64 ディレクトリにドライバをコピーします。ドライバ構成ファイルは、モジュールパスの drv ディレクトリにコピーします。たとえば、ドライバを /usr/kernel/drv にコピーするには、次のように入力します。
$ su # cp xx /usr/kernel/drv/amd64 # cp xx.conf /usr/kernel/drv
注 - すべてのドライバ構成ファイル (.conf ファイル) はモジュールパスの drv ディレクトリに入れる必要があります。.conf ファイルを drv ディレクトリのサブディレクトリ内に入れることはできません。
ドライバをシステムにインストールするには、add_drv(1M) コマンドを使用します。ドライバが正しくインストールされると、 add_drv が devfsadm(1M) を実行し、/dev ディレクトリ内に論理名が作成されます。
# add_drv xx
この場合、デバイスが自身を xx だと識別します。デバイスの特殊ファイルにはデフォルトの所有権とアクセス権があります (0600 root sys)。add_drv コマンドでは、デバイスの追加の名前 (別名) を指定することもできます。別名を追加すること、およびファイルのアクセス許可を明示的に設定することについては、add_drv(1M) のマニュアルページを参照してください。
ドライバが、ディスク、テープ、ポートなどの端末デバイスを表さないマイナーノードを作成する場合、devfsadm が /dev 内に論理デバイス名を作成するように /etc/devlink.tab を変更できます。別の方法として、ドライバのインストール時に実行されるプログラムで論理名を作成できます。
インストールされているデバイスドライバに対する変更をシステムに通知するには、update_drv(1M) コマンドを使用します。デフォルトでは、システムはドライバ構成ファイルを再度読み込み、ドライバのバイナリモジュールを再ロードます。
ドライバをシステムから削除するには、rem_drv(1M) コマンドを使用し、次にモジュールパスから、ドライバモジュールと構成ファイルを削除します。add_drv(1M) を使用してドライバを再インストールするまで、ドライバを再度使用することはできません。SCSI HBA ドライバの削除を有効にするにはリブートする必要があります。