-2

Nexus 7用のカスタムカーネル(カーネルバージョン3.1.10、android 4.1.2、ルート化およびロック解除)を構築しようとしていますが、カーネルをロードする際に問題が発生しています。いくつかの分野でオンラインで見つけたすべての手順を実行しましたが、カーネルをロードできません。問題は、カーネルをboot.imgに再パッケージ化することにあると思われます。私が使用している手順は次のとおりです。

  1. Googleのサイトからカーネルソースをダウンロードします
  2. デバイスからconfig.gzをプルし、gunzipし、カーネルソースと同じディレクトリで.configに名前を変更します。

テストの目的で、menuconfigなどのカーネル構成に変更を加えていないため、.configファイルはデバイスから削除されたときとまったく同じです。Makefileのエクストラバージョンを既存のカーネルと一致するように変更しました。

カーネルを再構築します。

  1. ARCH = arm CROSS_COMPILE = / usr / bin/arm-linux-gnueabi-を作成します

boot.imgを分解します

  1. unpackbootimg -i boot.img -ounpacked
  2. cat ../kernel/arch/arm/boot/zImage> unpacked / boot.img-zImage

boot.imgを再パックします

  1. mkbootimg --kernel boot.img-zImage --ramdisk boot.img-ramdisk.gz --cmdline "no_console_suspend = 1 console = null" --base cat boot.img-base-o newboot.img

次に、再起動して、fastbootで1回...

  1. fastboot boot newboot.img

デバイスがハングします。WifiのみのMotorolaXoomで同じプロセスを試しましたが、ループが発生するだけです。私が見逃しているステップはありますか?変更する必要があるRAMディスクに何かありますか?あなたの助けまたはあなたが持っている洞察に感謝します。

4

1 に答える 1

1

私も数日間これで頭を壁にぶつけました。カーネルを起動して実行するのに役立つヒントを次に示します。

  1. split_bootimgを使用して、元のboot.imgを解凍します。ここで入手できます:http ://www.enck.org/tools.html

  2. makeを実行するときは、SUBARCH=armとARCHを設定します

  3. 必ずAndroidソースのツールチェーンを使用してください。お持ちでない場合は、https ://android.googlesource.com/platform/prebuilt/で入手できます。

  4. ループするブートアニメーションで立ち往生していることに気付いた場合は、カーネルの最新の安定バージョンを使用していることを確認してください。

最後のポイントに加えて、カーネルソースを取得するためにcommit hashメソッド(git log kernelを使用してビルド済みカーネルの最後のコミットを取得)を試しましたが、コンパイル後に常にハングすることがわかりました。

結局、代わりに最新のカーネルソースを使用することを選択し(mr1ブランチを選択しました)、再パックされたboot.imgは4.1.2Androidビルドで初めて機能しました。

これのいくつかが役立つことを願っています!

于 2012-12-06T20:35:34.207 に答える