1

私はAndroidカーネルのコンパイルプロセスに精通していません。でも最近問題になり、大変困りました。

問題の説明は次のとおりです。Androidに基づいて、boot.img、system.imgなどのカスタムイメージを作成します。次に、Androidホーム画面を起動するために、これらの画像を物理デバイスにフラッシュする必要があります。これらの画像ファイルをコンパイルする前に、新しいカーネルコマンドラインを設定しました。

CONFIG_CMDLINE="root=/dev/mtdblock2 rw init=/init console=ttyS0, 115200 mem=128M uard_dma android"

これらの画像をコンパイルした後、vimでboot.imgを開いて、次の文字列を確認しました。

"root=/dev/mtdblock2 rw init=/init console=ttyS0, 115200 mem=128M uard_dma android"

しかし、boot.imgをデバイスにフラッシュすると、次のような異なる出力が得られました。

**Kernel command line: console=ttyO2,115200n8 earlyprintk**

つまり、カーネルコマンドライン値を設定してboot.imgに書き込んだのですが、boot.imgをデバイスにフラッシュすると、別のカーネルコマンドライン値を取得しました。

誰かがこの問題に遭遇し、それを修正したことがありますか?
本当にあなたの助けに感謝します。
よろしくお願いします!

4

1 に答える 1

1

ブートローダーは、コマンド ラインをカーネルに渡します。
たとえば、u-boot ブートローダーが使用され
ている場合、u-boot 変数bootargsに含まれます。

これは、ブートローダー プロンプトで確認できます。
たとえば、デバイスが u-boot ブートローダーを使用している場合です。

  1. シリアル プロンプトを介してデバイスを PC に接続します。

  2. PC でシリアル エミュレーターを起動します (minicom、teraterm、ハイパーターミナル)。

  3. デバイスの電源を入れます。

  4. 任意のキーを押して、ブートローダーの段階でデバイスの起動を停止します。

  5. u-boot プロンプトで、次のコマンドを入力します。

    u-boot# printenv

  6. これにより、すべての uboot-variables が一覧表示されます。変数bootargsの値に注意してください。

  7. これは、次のコマンドを使用して変更できます。

    u-boot# setenv bootargs ''

  8. この値を再起動後も保存するには、次のコマンドを使用します。

    u-boot# saveenv

同様の機能は、他のブートローダーでも利用できます。

于 2012-09-20T11:15:43.800 に答える