【问题标题】:How to I partition eMMC ?如何对 eMMC 进行分区?
【发布时间】:2017-11-25 03:30:23
【问题描述】:

我们有一个开发板,已经运行了 Yocto 系统。我们想让它运行android系统,我们已经用带有android补丁的Yocto内核编译了android镜像。

由于Yocto系统分区与android系统不同,我们不知道如何将android镜像(如system.img boot.img和recovery.img等)刷到开发板上。

我们可以使用 fastboot 工具将 Yocto 系统刷入 EVB。我们想知道:

  1. 如何对 eMMC 进行分区,我们可以使用 fastboot 工具来刷机 android 系统。我们需要修改 Little Kernel 代码吗?以及如何在 Yocto 系统中修改。

  2. 我们如何启动安卓系统?

如果您提供任何有用的信息,我们将不胜感激。

谢谢

【问题讨论】:

  • 这不是太清楚Do we need to modify Little Kernel code ? 。你能详细说明什么是小内核吗?
  • 您需要告诉我们您使用的是什么 EVB 以及涉及哪些引导加载程序。例如,“Little Kernel”听起来就像您在一个 qualcomm 平台上,并且可能根本没有使用 U-Boot。
  • 嗨,sob,平台在加载linux内核之前可能会加载lk代码,看起来可以加载linux内核。
  • 嗨,Tom,平台启动流程是从 bootrom 到小内核,然后加载 linux 内核。它不使用 u-boot。

标签: android yocto partition u-boot


【解决方案1】:

如何分区eMMC,我们可以使用fastboot工具刷android系统。

您需要一个可以对 eMMC 进行分区的工具。考虑到您使用的是 yocto,最好的选择是 gptfdisk 包。 gptfdisk 配方位于路径 poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.0.bb。 gptfdisk 提供以下文本模式分区工具

  • gdisk,
  • cgdisk,
  • sgdisk,
  • 修复部分

您可以使用其中一种工具在分区表中重新创建分区。

以及如何在 Yocto 系统中修改。

在 conf 文件中执行 IMAGE_INSTALL_append = " gptfdisk " 以使该软件包的工具成为您图像的一部分。

我们如何启动安卓系统?

你需要 3 个分区

  • system.img - 进入名为 system 的分区
  • boot.img - 进入名为 boot 的系统
  • 和 recovery.img - 进入名为 recovery 的系统

每个工具在 Linux 上都有一个手册页。您可以使用man sgdiskman gdiskman cgdiskman fixparts 阅读手册。 sgdisk的一些示例用法

  • sgdisk -p </dev/sda> - 打印磁盘上的所有分区
  • sgdisk --delete=partnum </dev/sda> - 删除一个分区。此操作会从分区表中删除条目

【讨论】:

  • 感谢您提供信息,您能否提供更多详细信息?我如何使用这些工具,这些工具是否有文档可供参考。
  • @Jam_Hu,我更新了答案。手册页非常详尽
【解决方案2】:

对 eMMC 进行分区的方法有很多,这取决于您的系统:通过 USB、sdcard、nfs、uboot...

我想你可以看看meta-variscite,尤其是在脚本文件夹中。他们有 Yocto poky 图像和 android 图像(在同一块板上)的 flash 脚本。它们从 SD 卡闪存到 eMMC。

我移植了这些脚本用于 uboot:我运行命令 ums mmc 0 通过 USB OTG 启动大容量存储模式,并在我的 PC 上运行安装脚本,使用 dd 擦除分区,使用 fdisk 创建分区, mkfs 来格式化我通过 USB 连接的设备。

你也可以在uboot中使用mmc part,但是我没有测试过这个选项。

【讨论】:

  • 感谢您的快速回复,很有用的资料,我试试看。
猜你喜欢
  • 2014-08-31
  • 2021-07-23
  • 1970-01-01
  • 2011-01-26
  • 2018-12-16
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多