問題タブ [printk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Printkは2回印刷します:接頭辞情報を持つものを抑制する方法は?
Linux デバイスのプログラミングを試みていますが、奇妙な問題が発生します。すべての printk 行について、コンソールに常に 2 回表示されます。
たとえば、私の helloworld ドライバー プログラムは次のとおりです。
これが私のメイクファイルです:
ドライバーをロードすると、メッセージが 2 回表示されます。2 回目は、私が必要としない厄介なプレフィックス情報を常に提供します!
そして、printk の設定を変更しようとしましたが、最初のメッセージのみが抑制されます (以下を参照)。「dmesg -n 1」でも同じ結果になります。
このプレフィックス情報 (タイムスタンプ + "gumstix user.alert kernel:") が常に表示される理由を教えてください。可能であればどのように削除しますか?どうもありがとう。
以下に私の環境をまとめます。
linux-kernel - Linux カーネルの dump_stack をコンソールではなく char 配列に取得する
なので、dump_stack() を呼び出すと、printk が dmesg になります。しかし、たとえば、char配列に「印刷」して、スタックをずっと後で別の場所に表示できるようにする必要があります。
出来ますか?私が抱えている厄介なバグをデバッグするのにとても役立ちます!
android - Androidでデバイスサスペンドをデバッグするときにkmsgを表示する方法
Androidフォンの一時停止/再開プロセスをデバッグしています。電話に adb shell を使用し、 cat /proc/kmsg を実行してデバッグ メッセージを表示しています。問題は、電話がサスペンドするたびに、USB がスリープ状態になり、adb が切断されるため、kmsg が終了することです。USB を抜き差しして、別の cat /proc/kmsg を実行できます。ただし、重要なデバッグ メッセージは失われます。
だから私の質問は、電話がサスペンドとレジュームのサイクルを経ている間にどのようにkmsgをキャプチャするのですか?
ありがとうございました。
printk - prink() の先頭の数字は何を意味していますか?
prink() を使用してカーネル メッセージを出力し、コンソールで読み取ると、次のようになります。
各行の先頭の数字は何を意味していますか? タイムスタンプの一種でしょうか?どのように解釈するのですか?
linux-kernel - printk/pr_info がまだカーネル バッファに出力されない
行った変更が正常に機能しない理由をデバッグしようとしています。このドライバーには 2 つの異なるビルド (mpt2sas と mpt3sas) が同時に実行されており、変更は両方で同一であるため、非常に奇妙です。この変更は mpt2sas では機能しますが、mpt3sas では機能しません。私はその理由を理解しなければなりません。最初に考えたのは、ドライバーが実際に検査しているものを出力することです。
そのために、私はここから何かを読み、スタックオーバーフローから同様の問題に関するいくつかのリンクを参照しました(たとえば、この回答とこの質問)。私の現在のprintkレベル:
それでも、次のようなことをしても出力が表示されません。
/proc/kmsg を介してカーネル バッファーが利用可能になるという別のリンクを見つけました。だから、私はやった
…まだダイスしない。プログラムを実行しましたが、printks が表示されません。上で提供したリンクの 1 つは、「... printk を pr_info に変更するとうまくいきました ...」のようなものでした。さて、私もそれを試しました。
いいえ、それもうまくいきませんでした。DEBUG レベルから INFO レベルに変更して優先度を上げました。いいえ、うまくいきませんでした。
質問は非常に単純です。何が欠けているのでしょうか?
編集 言及するのを忘れていましたが、関連性があるかどうかさえわかりませんが、これはCentOS 6.5です。
ありがとう、
アンディ
linux - Linux カーネル: 特定のファイルへのログ記録
Linuxカーネルを編集しようとしています。デバッグ プロセスの一環として、いくつかの情報をファイルに書き出す必要があります。printk 関数について読みました。しかし、特定のファイル (デバッグ ログを保持するデフォルト ファイル以外のファイル) にテキストを追加したいと考えています。手短に言えば、printk関数で「宛先」を指定したいと思います(または少なくともいくつかの回避策)
どうすればこれを達成できますか?fwrite/fopen は機能しますか?
他にどのようなオプションがありますか?