ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
デバイスドライバに関連付けられている特殊ファイルを開く (デバイスにアクセスする) と、そのドライバがロードされます。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) ルーチンが動作している必要があります。