JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
デバイスドライバの記述     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

パート I Oracle Solaris プラットフォーム用デバイスドライバの設計

1.  Oracle Solaris デバイスドライバの概要

2.  Oracle Solaris カーネルとデバイスツリー

3.  マルチスレッド

4.  プロパティー

5.  イベントの管理とタスクのキュー

6.  ドライバの自動構成

7.  デバイスアクセス: プログラム式入出力

8.  割り込みハンドラ

9.  ダイレクトメモリーアクセス (DMA)

10.  デバイスメモリーおよびカーネルメモリーのマッピング

11.  デバイスコンテキスト管理

12.  電源管理

13.  Oracle Solaris ドライバの強化

14.  階層化ドライバインタフェース (LDI)

パート II 特定の種類のデバイスドライバの設計

15.  文字デバイスのドライバ

16.  ブロックデバイスのドライバ

17.  SCSI ターゲットドライバ

18.  SCSI ホストバスアダプタドライバ

19.  ネットワークデバイスのドライバ

20.  USB ドライバ

21.  SR-IOV ドライバ

パート III デバイスドライバの構築

22.  ドライバのコンパイル、ロード、パッケージ化、およびテスト

ドライバ開発のサマリー

ドライバコードの配置

ヘッダーファイル

ソースファイル

構成ファイル

ドライバインストールの準備

ドライバのコンパイルとリンク

モジュールの依存関係

ハードウェア構成ファイルの記述

ドライバのインストール、更新、および削除

モジュールディレクトリへのドライバのコピー

add_drv を使用したドライバのインストール

ドライバ情報の更新

ドライバの削除

ドライバのロードとアンロード

ドライバのパッケージ化

デバイステストの条件

構成のテスト

機能テスト

エラー処理

ロードとアンロードのテスト

ストレス、パフォーマンス、および相互運用性のテスト

DDI/DKI コンプライアンスのテスト

インストールとパッケージ化のテスト

特定の種類のドライバのテスト

テープドライバのテスト

ディスクドライバのテスト

非同期通信ドライバ

ネットワークドライバのテスト

SR-IOV ドライバのテスト

23.  デバイスドライバのデバッグ、テスト、およびチューニング

24.  推奨されるコーティング方法

パート IV 付録

A.  ハードウェアの概要

B.  Oracle Solaris DDI/DKI サービスのサマリー

C.  64 ビットデバイスドライバの準備

D.  コンソールフレームバッファードライバ

E.  pci.conf ファイル

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

ドライバのロードとアンロード

デバイスドライバに関連付けられている特殊ファイルを開く (デバイスにアクセスする) と、そのドライバがロードされます。modload(1M) コマンドを使用するとドライバをメモリーにロードできますが、モジュール内のルーチンは modload では呼び出されません。推奨されるのはデバイスを開く方法です。

通常、デバイスが使用されなくなると、システムがデバイスドライバを自動的にアンロードします。開発時には、modunload(1M) を使用してドライバを明示的にアンロードする場合があります。modunload が正しく機能するには、デバイスドライバがアクティブでない必要があります。open(2)mmap(2) などを通して、デバイスに対する未処理の参照が存在していてはいけません。

modunload コマンドは引数として、ランタイム依存の module_id を受け取ります。module_id を見つけるには、grep を使用して、modinfo(1M) の出力で目的のドライバ名を検索します。最初の列を確認します。

# modunload -i module-id

現在ロードできないモジュールをすべてアンロードするには、モジュール ID として 0 を指定します。

# modunload -i 0

detach(9E) が成功するには、ドライバがアクティブでないことに加えて、ドライバで _fini(9E) ルーチンと modunload(1M) ルーチンが動作している必要があります。