私の問題は、カーネルにドライバーをビルドしようとしていることです。簡単な Hello World プログラムでコードをテストすることにしました。コードは次のようになります。
#include <linux/kernel.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/printk.h>
int __init my_init(void)
{
printk(KERN_ALERT "Hello world\n");
return 0;
}
device_initcall(my_init);
//subsys_initcall(my_init);
また、 cat /proc/sys/kernel/printk は 7 4 1 7 を示します .config ファイルから、「CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4」を見つけます
Makefile で obj-y += を使用してファイルを作成しています。「make」でモジュールをビルドできることがわかりましたが、ブート後に dmesg または /var/log/ の下に printk 出力が表示されません。
ドライバーがカーネルにまったく組み込まれていないのではないかと思っています。それを確認する方法はありますか?
ありがとう。