当前位置:硬件测评 > 【U-Boot七】fastboot原理分析及uboot fastboot功能实践

【U-Boot七】fastboot原理分析及uboot fastboot功能实践

  • 发布:2023-10-04 09:20

 本文首先介绍fastboot的基本原理,然后分析fastboot在uboot中的实现,最后从实际测试fastboot协议和各种fastboot视角如何使用命令等。本文只是简单描述一下我自己的实际测试过程。如有不妥之处,欢迎大家赐教,谢谢。

1。概述

   首先我们要明确一点,fastboot是一种通信协议。
  fastboot 协议是一种通过 USB 或以太网 (UDP) 与引导加载程序进行通信的机制。它设计简单,可在运行 Linux、macOS 或 Windows 的各种设备和主机上使用。实现的基本原理是PC通过fastboot协议与bootloader进行通信。

综上所述,有以下几点
(1)Fastboot是android使用的一种刷机方式。 android系统设计了两种刷机方式:fastboot和recovery;
(2) Fastboot 使用 USB 作为物理传输。刷机其实就是图传+烧录。当fastboot闪烁时,通过USB线传输镜像;
(3) Fastboot 也是uboot 中的一个命令。 uboot启动时,手动进入命令行模式。如果此时需要刷机,那么可以在命令行中执行fastboot命令,让uboot进入fastboot模式。刷机是在fastboot模式下进行的;
(4)如果想通过uboot的fastboot命令刷机,需要主机端fastboot软件(fastboot.exe)的配合

2。源码分析

待补充。 。 。

3。工程实践

3.1 准备工作

3.1.1 下载fastboot.exe

 下载fastboot主机的exe文件:https://www.sychzs.cn/studio/releases/platform-tools?hl=zh-cn

下载完成后,解压并进入文件夹,如下: 在当前目录下,同时按下Shift+Ctrl,然后右键选择“在此处打开Powershell窗口”即可进入Powershell命令行

.\fastboot.exe connect udp:192.168.100.152:5554
命令执行成功后,没有任何反应。 192.168.100.152是开发板的IP地址,端口号为5554(固定值),通过UDP通信

3.1.2 uboot配置与编译

待补充。 。 。

3.1.3 uboot磁盘分区(制作分区表)

  在启动fastboot进行文件传输之前,需要确保磁盘已分区并已创建分区表。我使用的开发板存储机制是1G eMMC。步骤如下:

  1. 启动开发板,进入uboot的命令行模式;
  2. 设置环境变量
=> setenv mbr_parts'name=boot,start =4M,尺寸 =128M,可启动,id=0x0e; 名称=rootfs,大小=10G,id=0x83'
  1. 将分区表写入eMMC
=> mbr 写入 mmc 0
MBR:写入成功
  1. 验证分区信息是否正确
=> mbr 验证 mmc 0
MBR验证成功

注:在我的开发板中,eMMC设备为0,所以上面的操作都是mmc 0。这个需要根据实际情况修改

3.1.4 uboot格式分区

由于业务需要,需要对分区1进行格式化。格式化命令为:fatformat mmc 0:1

fatformat mmc 0:1 /* 将 mmc0 分区 1 格式化为 FAT32 */

3.1.5 制作文件系统(rootfs)

可以通过以下脚本直接创建自己的文件系统(rootfs.ext4.img)进行测试:

ddif=/dev/零of=rootfs.ext4.img seek=524288 计数=0 bs=1024
mkfs.ext4 -F -i 4096 rootfs.ext4.img -d rootfs
fsck.ext4 -pdvfD rootfs.ext4.img

需要注意的是,www.sychzs.cn 脚本运行的目录下必须有 rootfs 文件夹(文件夹中可以放一些文件或文件夹)

3.2 测试

进入Uboot命令行后,执行以下命令查看fastboot帮助信息:

通过帮助信息可以总结出以下信息:

  1. fastboot 可以使用 UDP 或 USB 模式
  2. 可选参数 addr 指定 fastboot 缓冲区在内存中的首地址
  3. 可选参数 size 指定 fastboot 缓冲区的大小,单位为:byte

3.3.1 udp方法

开发板侧
命令:fastboot udp

windows 主机端
命令:.\fastboot.exe -s udp:192.168.100.152:5554 flash mmcsda2 .\256.ext4.img

3.3.2 USB方式

开发板端
命令:fastboot usb 0
windows主机端
命令:.\fastboot.exe flash mmcs da2 .\256.ext4.img

参考:

  • https://www.sychzs.cn/p/518965515

相关文章