モジュールはカーネルログの印刷を遅らせます。

モジュールはカーネルログの印刷を遅らせます。

以下を実行する基本的なLinuxカーネルモジュールを作成しました。

static __init int init(void)
{
  printk(KERN_DEBUG "Banana");
  return 0;
}

そしてもちろん:

module_init(init);

奇妙なことは、次のようにモジュールを挿入した後に「Banana」文字列が見つからないことです。

insmod banana_module.ko

注文する

dmesg -k | grep Banana

何も返しません。

ところで、モジュールを抜いて再び差し込んでみると見つけることができましたね。それから発見されたバナナは、以前のバナナと現在挿入されているバナナの2つでした。フラッシュの問題のためですか?私はこの動作が少し奇妙だと思っており、インターネット上で同様の質問を見つけることができません。

ところで、この問題は、VMがある(VMなし)デスクトップとラップトップの両方で発生します。

それでは、なぜカーネルはバナナが好きではないのですか?

ベストアンサー1

問題がどこにあるのか調べました。

カーネルメッセージの末尾に終了文字\ nが指定されていません。無視すると、上記のように動作します。これは、カーネルメッセージが完了時にのみ印刷されるレコードとして扱われるためです。詳細については、次を参照してください。printk問題に関する記事

おすすめ記事