在i.mx53上移植Android

时间:2015-04-15 18:38:08

标签: android linux-kernel

我正在尝试在i.mx53主板上移植Android。我已准备好SD卡并下载了所有相关图像(u-boot.bin / uImage / uramdisk,system.img,recovery.img)。在此之后我陷入困境,我不知道如何将我的电路板连接到我的ubuntu电脑,以及如何在我的设备上启动u-boot以便我可以看到u-boot控制台。 谢谢!!

1 个答案:

答案 0 :(得分:0)

我不知道它应该在您的特定电路板上完成的确切程度,但对于所有基于ARM的Android设备而言,整个过程非常普遍。所以我要描述一些广泛的工作过程。

您的主板与PC之间的连接

通常您需要使用2根USB电缆连接电路板(目标)和PC(主机):

  1. OTG USB电缆(用于flashing(上传)固件到您的设备)。

    对于实际闪烁,您需要在PC上使用fastboot工具。您的设备应处于快速启动模式(u-boot的特殊模式,您可以通过在u-boot shell中发出fastboot命令来访问它。

  2. serial console的USB线(有时称为"终端")。有些电路板没有集成RS-232 to USB芯片;在这种情况下,您需要使用外部RS-232 to USB converter

    您应该在PC上使用某些串行通讯程序(例如minicom)与您的设备通讯。

  3. 从SD卡启动设备

    如果你的主板上没有任何预加载的软件(特别是bootloader,你的情况下是u-boot),你只能从SD卡启动。这是因为您需要在设备上以fastboot模式运行u-boot以通过OTG USB闪存任何图像(使用PC上的fastboot工具)。例外情况是ROM code能够与某些特殊PC工具通信的设备,因此您可以将图像上传到eMMC(或设备上使用的任何其他存储设备),而无需使用u-boot。< / p>

    以下是从SD卡启动所需的步骤。

    1. SD卡应该准备好。实际的过程是特定于SoC的,通常可以在Technical Reference Manual或类似的SoC技术文档中找到。

      例如,这里是基于OMAP的设备的SD卡配置:

      • 第一个分区应为FAT32
      • 第一个分区应该有boot flag
      • 第一个分区标签通常是boot
      • 第一个分区应该有下一个文件:
        • 文件名为MLO(代表&#34; Memory Loader&#34;),这是第一阶段的引导加载程序;它通常是 u-boot SPL x-loader
        • u-boot.img(第二阶段引导程序)
        • uImage(u-boot格式的Linux内核映像)
        • 设备树文件(*.dtb),以防内核使用device tree
        • u-boot environment档案
      • 第二个分区应该是ext4 FS
      • 第二个分区应包含Android rootfs文件(或任何其他rootfs,如BusyBox rootfs)

      如果您只需要从SD运行u-boot并进入快速启动模式,则只需要首先使用MLOu-boot.img文件进行分区。

    2. 选择SD卡作为主板上的启动源。通常可以切换一些DIP switch,通常称为启动模式 SYSBOOT 。它将通过所谓的eFUSE告诉您的SoC从所选设备(在您的情况下为SD卡)启动。有关详细信息,请参阅您的电路板文档。

    3. 之后只需执行重置,您将看到u-boot正在运行。按&#34;输入&#34;在你的串口控制台(minicom)中输入u-boot shell。在u-boot shell中执行fastboot命令。一旦您的设备处于快速启动模式,您就可以使用PC上的fastboot工具将所有图像闪存到eMMC(或您的主板使用的任何其他存储设备)。通常,您的Android版本中会有fastboot.sh脚本,可以将所有图像闪存到设备中。