Go to main content
Oracle® Solaris 11.3 デバイスドライバの記述

印刷ビューの終了

更新: 2016 年 11 月
 
 

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

デバイスドライバに関連付けられている特殊ファイルを開く (デバイスにアクセスする) と、そのドライバがロードされます。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

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