3

初めての Linux char ドライバーの作成を学んでいますが、期待どおりに動作しないようです。

ドライバー モジュールの init および exit 関数のコードは次のとおりです。

static int __init one_init(void)
{
    int result;
    printk(KERN_DEBUG "In ones init call");
    result = alloc_chrdev_region(&onedev, 0, 4, "one");
    printk("Allocated device major: %d, first minor: %d",MAJOR(onedev),MINOR(onedev));
    return 0;
}

static void __exit one_exit(void)
{
    unregister_chrdev_region(onedev,4);
    printk(KERN_DEBUG "In ones exit call");
}

/proc/devicesドライバーをアンロードした後もデバイスが表示され、その終了関数は を呼び出しますunregister_chrdev_region

dmesgコマンド出力は、ドライバーの init および exit 呼び出しが行われたことを示しています。

関連する質問をいくつか見ましたが、答えは一見単純な問題を解決しませんでした。

私は何をしているのか、間違っていると予想していますか?

4

1 に答える 1

-1

ターミナルで「rmmod modulename」を使用します。これにより、モジュールがアンロードされ、関連付けが削除されます。

于 2013-02-24T06:22:34.087 に答える