8

カーネルモジュールを作成していますが、を使用してロードするときに、コンソール出力に何かを出力できるようにしたいと考えていますinsmod module.ko

使ってみました

printk(KERN_EMERG "test kernel emergency\n");

しかし、コンソールには何も表示されません。ただし、には表示されませんdmesg

追加情報:
Linux-3.0.0でIntelx8632ビットを使用しています

そしてcat /proc/sys/kernel/printk与える4 4 1 7

4

3 に答える 3

8

1-フルターミナルモードになっていることを確認します(Alt + Ctrl + f1を押します)

2-printk(KERN_EMERG "test kernel emergency\n"); 試す代わりに

printk(KERN_ALERT "test kernel alert\n");

于 2012-04-13T11:12:39.490 に答える
3

イェンス、

printk出力はカーネルに送信され、syslogdデーモンによって収集されます。dmesgは、syslogdデーモンによって収集されたデータをエコーし​​ます。

グラフィカルバージョンのLinuxを使用している場合、このメッセージは(insmodを呼び出した場所から)コンソールで出力されない場合があります。私はこれをubuntuで試しましたが、ログレベルがALERTまたはEMERGENCYであってもprintkメッセージを出力しません。

于 2012-07-02T06:26:53.530 に答える
0

緊急カーネルメッセージをコンソール(または特定のユーザーまたはtty)に出力するには、syslogを変更する必要があります。

多くのsyslogデーモンがあります。使用するデーモンを制御せず、rootでない場合、運が悪いことになります。使用するものを制御する場合、syslog-ngは非常に優れており、これを行う方法の例がマニュアルに記載されています。

于 2012-02-22T12:47:20.737 に答える