Skip to content

如何在Linux中烧录镜像

烧录镜像使用了专门的烧录工具,对于 RK3566的烧录工具就是 upgrade_tool

获取烧录镜像的工具:

打开下载链接
在这个链接中,找到: Linux_Upgrade_Tool 这个文件夹,下载这个文件夹中的 ./upgrade_tool 文件。

由于这个工具不需要安装就需要指定路径进行运行就可以了.但是这个工具需要root权限才能运行,所以这里需要使用sudo命令来运行这个工具。那最好的办法就是将这个工具安装在系统的 /usr/bin 目录下,这样就可以在任何目录下使用sudo upgrade_tool运行这个工具了。

获取烧录镜像的手册:

命令行烧录工具手册

1.添加至运行路径 /usr/bin/upgrade_tool

由于升级镜像需要root权限,所以需要添加到运行路径中。

bash
sudo ln -s /home/lujin/MCU/泰山派开发板/tools-main/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool  /usr/bin/upgrade_tool

运行一下: sudo upgrade_tool 给出提示信息,就说明添加成功了。

下面的命令,就可以在任何目录下执行了。不用每次都输入命令的完整路径了.

注意:将程序添加至PATH路径下,对于普通用户执行是没有问题的,但是如果使用sudo执行,可能会出现权限问题,所以这里建议直接使用绝对路径执行命令. 这是由于sudo执行时,并不会继承PATH环境变量.

2.查看升级设备

bash
sudo upgrade_tool ld

3.烧录完整镜像

bash
sudo upgrade_tool uf update.img

./upgrade_tool uf /home/lujin/MCU/泰山派开发板/【SDK】Linux/sdk/rockdev/update.img 出现这个错误提示:
Creating Comm Object failed!
需要在前面加上 "sudo",提升为root权限再执行.

4.烧录最小引导代码

这一步是分镜像烧录的第一步,不可省略,否则会导致无法进入系统.

bash
sudo upgrade_tool UL MiniLoaderAll.bin

5.烧录分区镜像

bash
//先烧录一下分区表
sudo upgrade_tool di -p parameter.txt
//烧录内核镜像
sudo upgrade_tool di -k kernel.img
//烧录二级引导程序
sudo upgrade_tool di -u uboot.img 
//烧录系统启动映像
sudo upgrade_tool di -b boot.img

//烧录根文件系统镜像
sudo upgrade_tool di -rootfs   rootfs.ext2

//烧录未定义缩写的分区镜像,需要用分区名来指定,这里以vendor分区为例
sudo upgrade_tool di -vendor vendor.img

6.参数说明:

参数代表的分区说明
-pparameter分区表文件。它定义了每个分区的名称、起始地址和大小,是后续烧录其他镜像的基础。
-bboot系统启动映像。通常包含初始内存磁盘(ramdisk),负责初始化和加载主系统分区。
-kkernel操作系统内核映像(如 Linux kernel)。
-ssystem在 Android 系统中,此参数代表 Android 的 system 分区映像。
-rrecovery恢复模式映像。用于系统恢复、清除数据或刷入更新包。
-mmisc杂项分区。负责启动模式切换和急救模式下的参数传递。
-uuboot二级引导程序(U-Boot)映像。它是系统启动过程中,在 MiniLoader 之后运行的主要引导加载程序。
-recoveryrecoveryrecovery 分区的另一种完整写法。
-rootfsrootfs根文件系统映像。包含操作系统运行所需的文件结构和关键软件。
-oemoem厂商定制分区。通常包含设备制造商(OEM)的特定应用或数据。