0

カーネルモジュールを作成し、以下のコードを使用して/ dev/mytimerエントリを作成しようとしました。

#define DEVICE_NAME "mytimer"
#define MAJOR_NUM 61
static struct class *fc;


fc = class_create(THIS_MODULE, DEVICE_NAME);
device_create(fc, NULL, MAJOR_NUM, "%s", DEVICE_NAME);

/dev内のモジュールが/dev/ mytimerとして表示されません...しかし、lsmod表示すると、リストにエントリmytimerとして表示されます。

モジュールはどこでどのように見つけることができますか?とにかくそれを/devに入れることはありますか?

ありがとう!

4

1 に答える 1

2

デバイスノードの自動作成は、開発者が担当したものでした。ただし、カーネルにデバイス命名ポリシーを実装することに関する懸念から、最終的には削除されました。デバイスノードを作成する最新の方法は、sysデバイスイベントに応答してデバイスノードをオンデマンドで作成できるudevを使用することです。

それ以外の場合は、静的ファイルシステムでmknodを使用してデバイスノードを手動で作成することもできます。

于 2010-02-18T13:27:55.053 に答える