找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5286

积分

0

好友

732

主题
发表于 2 小时前 | 查看: 3| 回复: 0

eMMC 作为一种嵌入式存储芯片,其基本操作思路与 SD 卡有相似之处,但在物理形态和操作方式上存在显著差异。SD 卡可以方便地插入电脑,直接在 Ubuntu 等系统下完成分区和数据拷贝。然而,eMMC 是直接焊接在 ZYNQ 板卡上的,无法像 SD 卡那样随意插拔。那么,我们该如何对它进行分区和文件写入呢?正确的思路是“借道而行”:首先让 ZYNQ 通过 SD 卡启动,进入板载的嵌入式 Linux 系统,然后在这个系统环境中完成对 eMMC 的全部分区和文件拷贝操作。操作完成后,将板卡断电,把启动模式切换为 eMMC,再重新上电即可。简单来说,eMMC 需要借助 SD 卡来完成分区和文件拷贝

一、eMMC 分区

让 ZYNQ 板卡通过 SD 卡启动并进入 Linux 系统后,我们可以先用 ls /dev/mmcblk* 命令来查看系统中的块设备。此时,你通常能看到代表 SD 卡和 eMMC 的设备节点。请注意,根据具体的硬件设计和配置,设备节点的对应关系可能有所不同。在本文的示例环境中,/dev/mmcblk0p1/dev/mmcblk0p2 正是我们 eMMC 的两个分区。你可以通过 df 命令来查看它们当前的挂载情况。

终端界面截图,显示Linux系统中查看eMMC设备节点与挂载情况的命令与结果

在进行任何分区操作之前,务必确保目标分区处于卸载状态。请执行卸载命令:
umount /dev/mmcblk0p1umount /dev/mmcblk0p2

接下来,输入 fdisk /dev/mmcblk0 进入磁盘分区管理工具,整个操作过程与为 SD 卡分区非常相似。

终端界面显示fdisk磁盘分区工具的交互菜单及其操作帮助列表

进入 fdisk 交互界面后,按下 p 键可以打印当前分区表,查看已有的分区信息。如果磁盘上存在旧分区,可以输入 d 键进行删除。

终端界面截图,显示通过fdisk工具执行打印分区表和删除分区操作的过程

清空旧分区后,我们开始创建新分区。输入 n 创建分区,根据提示:

  1. 选择分区类型,输入 p 选择主分区。
  2. 设置分区大小时,输入 +1G(大小可根据你的实际需求自定义)。
  3. 创建后,输入 t,再输入 L 可以列出所有支持的分区类型代码,用于修改分区类型。

终端界面截图,显示使用fdisk工具创建新Linux分区并设置大小的过程

eMMC 的第一个分区类型应该为 FAT32。因此,在选择类型码时,我们需要输入 c,代表 W95 FAT32 (LBA)

终端界面红框标注将分区类型改为W95 FAT32指令及打印分区信息确认的过程

第二个分区的创建步骤与上述类似。不同的是,第二个分区的类型保持默认的 Linux 即可,无需修改。所有操作完成后,输入 w 保存所有更改并退出 fdisk

终端界面截图,展示创建第二个Linux类型分区并确认分区表,执行写入操作的过程

二、格式化和手动挂载

分区创建完成,接下来的步骤是格式化它们。请使用以下命令:

  • 对第一个分区格式化为 FAT32:mkfs.vfat /dev/mmcblk0p1
  • 对第二个分区格式化为 EXT4:mkfs.ext4 /dev/mmcblk0p2

格式完成后,我们需要将它们挂载到指定目录,以便后续文件拷贝。首先创建挂载点目录:

  • mkdir /run/media/emmc_mmcblk0p1
  • mkdir /run/media/emmc_mmcblk0p2

然后,将两个分区分别挂载到刚创建的目录上:

  • mount /dev/mmcblk0p1 /run/media/mmcblk0p1/
  • mount /dev/mmcblk0p2 /run/media/mmcblk0p2/

三、拷贝文件与 eMMC 启动

eMMC 的分区和挂载全部就绪后,最后一步就是部署启动所需的固件和文件系统。你可以将 Petalinux 编译生成的 BOOT.bin 和 image.ub 文件拷贝到第一个分区(FAT32分区);将 rootfs.tar.gz 压缩包解压到第二个分区(EXT4分区)。完成之后,将 ZYNQ 板卡断电,将启动模式拨码开关调到 eMMC 启动位,最后重新上电,系统就应当能从 eMMC 成功启动了。

至此,我们就完成了 eMMC 从初始化分区到系统启动的全部步骤。在实际的嵌入式项目开发中,这种操作流程是非常关键的。对于追求更高稳定性和效率的开发者而言,掌握这些基础运维技能,对构建可靠的嵌入式系统至关重要。如果你在云栈社区经常和同好交流,会发现很多稳定性和软件质量(Quality Assurance)方面的问题,其根源往往可以追溯到这些看似基础的烧录与部署环节。多动手实践,并编写一些自动化脚本来规范流程,能让你的开发效率事半功倍。




上一篇:Ubuntu 20.04 手动部署 Hermes Agent 全流程指南
下一篇:hping3 泛洪攻击实战:Land、SYN、UDP、ICMP 及畸形包防御测试
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-1 20:57 , Processed in 0.809356 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表