簡単な動的モジュール(.ko)を作成しました。ユーザーアプリケーションがカーネルスペースからドライバにアクセスする方法。動的にロードされたモジュールのメジャー番号とマイナー番号を取得する方法。
答え1
他の人が正しく回答できるように、この質問に多くの情報を省略しました。いくつかの仮定をして短い答えをします。
まず、私はあなたがLinuxに言及していて、モジュールをカーネルに挿入し、それが正しくインストールされ実行されていることを確認したとします。また、あなたのドライバが/ devディレクトリにデバイスノードを作成すると仮定します。
メジャー番号とマイナー番号を取得するには、ls -l /dev/<yourdevnode>
たとえば/dev/fuseに対して次のようにします。
$ ls -l /dev/fuse
crw-rw-rw- 1 root root 10, 229 Jan 3 09:08 /dev/fuse
ここで、10と229はそれぞれ週番号と次数です。
答え2
あなたはそのようなデバイスドライバですかhello world
?
その場合、/ devディレクトリにノードは作成されません。
mknodコマンドを使用して/ dev / nodeを生成することもできます。
しかし、あなたのデバイスドライバが何をしているのかわかりません(ドライバによってはデバイスノードが必要ないかもしれません)。
ドライバソースがないので推測します。
通常、デバイスドライバはカーネル機能を使用してデバイスノードを作成します。
おすすめしたいhttp://derekmolloy.ie/writing-a-linux-kernel-module-part-2-a-character-device/
上記のリンクでは、ebbchar_init()
関数を介して関数が生成されます。もちろん、ソースコードで主要項目と補助項目を見つけることもできます。ドライバが上記の機能を使用していることを確認してください。そして、エラーがないか確認してください。 /dev/ebbchar
device_create()