2

これはばかげた質問かもしれませんが、printk(つまりsyslog)を使用せずにドライバー内からLinuxコンソールに書き込む方法はありますか?

たとえば、Linuxドライバーで作業している場合、イベントが発生したときに1文字を出力する必要があります。書き込みイベントの開始時に「w」を出力し、終了時に「W」を出力したいと思います。これは頻繁に発生するため、syslogを介して送信することは理想的ではありません。

理想的には、printf( "W")またはputc('W')と同等のことを実行して、それをデフォルトのコンソールから外すことができれば素晴らしいと思います。

TIAマイク

4

2 に答える 2

4

コンソールへの書き込みは、頻繁に行いたいことではありません。printkが高すぎる場合は、コンソールを試してはいけません。

しかし、あなたが主張するなら:

printkでは、コンソールへの出力は によって処理されcall_console_driversます。この関数はコンソール ( で登録register_console) を見つけ、それを呼び出してデータを出力します。実際のドライバーは、使用しているコンソールによって異なります。VGA 画面は 1 つのオプションであり、シリアル ポートは別のオプションです (ブート パラメータによって異なります)。

の関数を使用しconsole.hて、コンソールと直接対話することができます。それを機能させるのがどれほど難しいかはわかりません。

于 2012-05-22T06:38:29.053 に答える
0

残念ながらありません。カーネルには「コンソール」の概念がないためです (つまり、ユーザー空間プロセス)。他のカーネル デバッグ オプションを試すことができます

于 2012-05-21T23:43:17.033 に答える