ユーザーアプリケーションを介して動的モジュールにアクセスする方法

ユーザーアプリケーションを介して動的モジュールにアクセスする方法

簡単な動的モジュール(.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/ebbchardevice_create()

関連情報