-2

我正在尝试为我的 Nexus 7 构建一个自定义内核(内核版本 3.1.10,android 4.1.2,root 和解锁),但我在加载内核时遇到了麻烦。我已经按照我在网上找到的几个方面的所有步骤进行了操作,但无法加载内核。我怀疑问题出在将内核重新打包到 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 -o 解压
  2. cat ../kernel/arch/arm/boot/zImage > 解压/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. fastboot 启动 newboot.img

我的设备只是挂起。我在我的仅限 Wifi 的摩托罗拉 Xoom 上尝试了相同的过程,它只是启动循环。有没有我错过的步骤?ramdisk中有什么我需要改变的吗?感谢您的帮助或您的任何见解。

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. 如果您发现自己陷入循环启动动画,请确保您拥有最新的稳定版本的内核。

最后一点,我尝试了提交哈希方法(使用 git log kernel 获取预构建内核的最后一次提交)来获取内核源,但发现它在编译后总是挂起。

最后我选择使用最新的内核源代码(我选择了 mr1 分支),重新打包的 boot.img 第一次在我的 4.1.2 Android 版本中运行。

希望有些帮助!

于 2012-12-06T20:35:34.207 回答