行った変更が正常に機能しない理由をデバッグしようとしています。このドライバーには 2 つの異なるビルド (mpt2sas と mpt3sas) が同時に実行されており、変更は両方で同一であるため、非常に奇妙です。この変更は mpt2sas では機能しますが、mpt3sas では機能しません。私はその理由を理解しなければなりません。最初に考えたのは、ドライバーが実際に検査しているものを出力することです。
そのために、私はここから何かを読み、スタックオーバーフローから同様の問題に関するいくつかのリンクを参照しました(たとえば、この回答とこの質問)。私の現在のprintkレベル:
[root@dmandylnx64 ~]# cat /proc/sys/kernel/printk
8 4 1 7
それでも、次のようなことをしても出力が表示されません。
dmesg | less # and search around for my strings
/proc/kmsg を介してカーネル バッファーが利用可能になるという別のリンクを見つけました。だから、私はやった
cat /proc/kmsg
…まだダイスしない。プログラムを実行しましたが、printks が表示されません。上で提供したリンクの 1 つは、「... printk を pr_info に変更するとうまくいきました ...」のようなものでした。さて、私もそれを試しました。
printk(KERN_DEBUG "MPT3SAS: 0x%08x\n", someIntegerData);
// became
pr_dbg("MPT3SAS: 0x%08x\n", someIntegerData);
いいえ、それもうまくいきませんでした。DEBUG レベルから INFO レベルに変更して優先度を上げました。いいえ、うまくいきませんでした。
質問は非常に単純です。何が欠けているのでしょうか?
編集 言及するのを忘れていましたが、関連性があるかどうかさえわかりませんが、これはCentOS 6.5です。
ありがとう、
アンディ