一連の質問に対する回答を以下で見つけてください。
古いアジアのメカニズムとはどのようなものでしたか?大まかに言えば、これはどのように機能したのですか?
これは、Android でメッセージ ロギングに使用されるメカニズムです。NAND の mtd パーティションの特定のオフセットにログ メッセージを書き込みます。カーネル モジュールは、「apanic」という名前のファイルを「debugfs」にエクスポートします。以下のコマンドを使用して、debugfs を特定のディレクトリにマウントできます。" mount -t debugfs none /sys/kernel/debug" には、Linux カーネルで debugfs 構成を有効にする必要があります。詳細については、以下のリンクのソース コードを参照してください。
https://android.googlesource.com/kernel/msm.git/+/android-msm-2.6.35/drivers/misc/apanic.c
ram_console/persistent_ram メカニズムを支持して、apanic メカニズムが非推奨になったのはなぜですか?
この apanic ドライバーは、Linux カーネルの一部ではありません。アンドロイド特有です。Androidの最新バージョンでは非推奨です。その理由は、カーネル opps が発生したときに nand パーティションへの書き込みが適切ではない可能性があるためです。nand_write は遅く、書き込みサイクルが限られているためです。これは私の意見です。しかし、実際の理由はわかりません。
新しい ram_console/persistent_ram メカニズムはどのような利点をもたらしますか?
これは、Android がコンソール メッセージのロギングに使用するロギング メカニズムでもあります。ここでログメッセージは RAM 領域に入ります。persistent_ram の場合、ログ メッセージは RAM の永続メモリ領域 (保持されます) に送信されます。このドライバー モジュールは、proc ディレクトリに「last_kmsg」という名前のファイルを作成します。このメッセージは、カーネルが oops してブートを停止した場合に、次回のブートで読み取ることができます。詳細については、以下のリンクにあるソース コードを参照してください。
https://android.googlesource.com/kernel/common.git/+/android-3.4/drivers/staging/android/ram_console.c
ram_console/persistent_ram はどのように機能的に古い apanic アプローチと異なるのですか?
前者は ram ベースで、後者は mtd ベースです。
最新の実験的な Android ソースでは、両方のソースが見つかりません。理由がわからない。
https://android.googlesource.com/kernel/common.git/+/experimental/android-3.10-rc5/drivers/staging/android/
質問が明確になったことを願っています。
よろしく、
Yuvaraj.A