カスタムカーネルモジュールがコンパイルされていません。

カスタムカーネルモジュールがコンパイルされていません。

私はLinuxカーネルで遊んでいくつかのモジュールを書こうとしています。 /drivers/my_module/my_module.cの下のLinuxソースコードに追加しました。 (私はカーネル4.9を使用しており、Debian 9では4.1を作成します)

ここにいる:

#include <linux/module.h>

__init static int my_module_init(void)
{
    pr_info("Hello World!\n");
    return 0;
}

__exit static void my_module_exit(void)
{
    return;
}

module_init(my_module_init);
module_exit(my_module_exit);

私は単純なKconfigとMakefileを書きました:Makefile: obj-$(CONFIG_MY_MODULE) += my_module.o Kconfig:

menu "My first module"

config MY_MODULE
        bool "My module"
        help
        The dumbest kernel module you could find on the market !

endmenu

/driversのKconfigとMakefileにこれを追加しました。

カーネル構成:source "drivers/my_module/Kconfig"

ファイル生成:obj-$(CONFIG_MY_MODULE) += my_module/

これまではとても良いと思いましたが、CONFIG_MY_MODULE=yLinux用の.configファイルに私のファイルを追加したときにmakeを実行したときにコンパイルされませんでした(コンパイル出力やカーネルの起動時にトレースに表示されませんでした)。表示されます) なぜそうなのかわかりません。私はこれがドライバ/ Makefileで定義されていない変数に関連していると思いますが、他のモジュールが同じ戦略を使用してカーネルでコンパイルされるようです。

だから何か欠けているようですが、実際に何であるかはわかりません。

ベストアンサー1

おすすめ記事