0

MLO の実行中に変数を作成し、その値を Android のユーザー空間アプリケーションにアクセスできるようにします。これはどのように達成できますか?

1 つの方法は、変数の内容を外部メモリに書き込み、それをユーザー空間プロセスで読み取らせることです。ただし、ブート中に他のプロセスがアドレスを上書きしていないことを確認する必要があります。

他の方法、ATAG を知っていますか? ATAG を使用できる場合、どのようにこれを行いますか? カーネルモジュールの開発は必要ですか?

乾杯

4

1 に答える 1

0

Linux ユーザー空間から、「fw_printenv」アプリケーションを使用して U-Boot 環境変数から情報を取得できます。U-Boot の実行中に、「setenv variablename value」を実行してから、saveenv を実行します。

env コマンドを有効にするには、U-Boot MLO で CONFIG オプションを設定する必要があります。MLO は通常、小さなコード フットプリントを必要とし (そして必要とします)、env コマンドはコード フットプリントを大きくするため、障害になる可能性があります。

Linux 側では、特定のターゲットのメモリ用に「fw_printenv」を構成する必要があります。これは実行時に行うことができます。fw_env.config を参照してください。u-boot/tools/env/ にビルドされたターゲット実行可能ファイルを取得できます。これは、Android がこの領域の Linux メカニズムを引き継いでいることを前提としています。私は Android プラットフォームの詳細に精通していません。

于 2015-02-03T14:52:37.150 に答える