私は Solaris を学んでいて、単純なドライバーを書いています。現在、基本的なエントリ ポイント、つまり_init
、_info
、_finit
、*attach
を実装してい*detach
ます。それは問題なくコンパイルおよびリンクされ、次にコピーして/usr/kernel/drv/amd64/
呼び出します。
% add_drv mydrv
Jul 7 22:54:16 ezhost mydrv: NOTICE: mydrv: _info called
devfsadm: driver failed to attach: mydrv
Warning: Driver (mydrv) successfully added to system but failed to attach
Jul 7 22:54:16 ezhost mydrv: NOTICE: mydrv: _init called
現在、私の _attach ルーチンで行っていることは次のとおりです。
ddi_get_instance ddi_soft_state_zalloc ddi_get_soft_state
DDI_SUCCESS を返す
それほど多くはありませんが、おそらくドライバーがメモリにロードされると、システム (devfsadm) は devfs にいくつかのエントリを作成することを期待していますが、私のドライバーはキャラクター デバイス ノードを登録せず、結果として失敗しますか?