質問: 変更されたdmesg出力を確認するにはどうすればよいですか? エラーメッセージをring buffer dmesg出力に出力するデバイスドライバを書いています。 dmesgの出力の変化を確認したい。これどうやってするの?
回答: カーネルのログメッセージを取得するには、dmesgを使用します。カーネル自体がリングバッファにログインします。つまり、メモリ内だけです。これでdmesgは、リングバッファの内容を出力するだけです。 dmesg -cを実行すると、後でリングバッファも削除されます。したがって、while true; do dmesg -c; sleep 1; doneのようなことを実行して、機能しないdmesg|tailのようなものを作成できます。ただし、これによりリングバッファが削除されるため、ルート権限が必要になります。もう1つの方法は、ファイル/proc/kmsgであり、これによりリングバッファを表示できます。 tail -f /proc/kmsgを実行することもできますが、これは1つのプロセスに対してのみ許可され、これは通常、ロギングデーモンです。 -これは、メッセージを読み取って実際のファイル(通常は/ var/log内)に書き込むことで、メッセージを読み取ることができるようにすることです。すべてのメッセージを1つのファイルに出力するか、さまざまな部分をさまざまなファイルに出力するように構成できます。 (ただし、設定はシステムのロギングデーモンに依存します。)したがって、ニーズに合ったファイルがある場合は/var/logを確認し、そうでない場合はロギングデーモンを構成してください。