升级固件 前言 本文介绍了如何将主机上的固件文件,通过 USB Type-C 线,烧写到开发板的 emmc闪存中。 只有当开发板处于 Maskrom,及 Loader模式下,才能够烧写固件,或对板上固 件进行更新操作。 准备工作 ROC-RK3308-CC 开发板 固件 PC主机 良好的 USB Type-C 线 固件文件一般有两种: 单个统一固件 update.img, 将启动加载器、参数和所有分区镜像都打包到一 起,用于固件发布。 多个分区镜像,如 kernel.img,rootfs.img, recovery.img 等,在开发阶 段生成方便调试。 可以去这里找到已编译好的统一固件,下载后解压即可。也可以参考《固件编译 》自行编译。 主机操作系统支持: Windows XP (32/64位) Windows 7 (32/64位) Windows 8 (32/64位) Linux (32/64位) Windows 之前烧写 RK 的固件,需要用到以下两种工具: 量产工具 RKBatchTool,用于烧写统一固件(update.img) 开发者工具 RKDevelopTool,可单独烧写分区固件 后来 RK 发布了 AndroidTool 工具,在 RKDevelopTool 的基础上增加了统一固 件(update.img)的烧写支持,因此现在仅需要这个工具即可。使用烧写工具前 需要安装 RK USB 驱动。如果驱动已经安装好,可以跳过这步。 安装 RK USB 驱动 下载 RK驱动助手 ,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱 动,请先选择"驱动卸载",然后再选择"驱动安装"。 连接设备 采用以下方法可以使设备进入升级模式。 设备先断开电源适配器和 USB Type-C 线的连接: USB Type-C 的一端连接主机。 按住设备上的 RECOVERY (恢复)键并保持。 USB Type-C 的另一端连接设备。 大约两秒钟后,松开 RECOVERY 键。 主机应该会提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 "Rockusb Device" 出现,如下图。如果没有,则需要返回上一步重新安装驱动 。 烧写固件 下载工具 AndroidTool ,解压,运行 AndroidTool_Release_xx 目录里面的 AndroidTool.exe(注意, 如果是 Windows 7/8,需要按鼠标右键,选择以管理员身份运行),如下图: 烧写统一固件 update.img 烧写统一固件 update.img 的步骤如下: 切换至"升级固件"页。 按"固件"按钮,打开要升级的固件文件。升级工具会显示详细的固件信息。 按"升级"按钮开始升级。 如果升级失败,可以尝试先按"擦除Flash"按钮来擦除 Flash,然后再升级。 注意:如果你烧写的固件laoder版本与原来的机器的不一致,请在升级固件前先 执行"擦除Flash"。 烧写分区映像 烧写分区映像的步骤如下: 切换至"下载镜像"页。 勾选需要烧录的分区,可以多选。 确保映像文件的路径正确,需要的话,点路径右边的空白表格单元格来重新选择 。 点击"执行"按钮开始升级,升级结束后设备会自动重启。 Linux RK 提供了一个 Linux 下的命令行工具 upgrade_tool,支持统一固件 update.img 和分区镜像的烧写。 Linux 下无须安装设备驱动,参照 Windows 章节连接设备则可。 upgrade_tool 下载 Linux_Upgrade_Tool , 并按以下方法安装到系统中,方便调用: unzip Linux_Upgrade_Tool_v1.24.zip cd Linux_UpgradeTool_v1.24 sudo mv upgrade_tool /usr/local/bin sudo chown root:root /usr/local/bin/upgrade_tool 烧写统一固件 update.img: sudo upgrade_tool uf update.img 烧写分区镜像: sudo upgrade_tool ul MiniLoaderAll.bin sudo upgrade_tool di -p parameter.txt sudo upgrade_tool di -u uboot.img sudo upgrade_tool di -t trust.img sudo upgrade_tool di -misc misc.img sudo upgrade_tool di -r recovery.img sudo upgrade_tool di -b zboot.img sudo upgrade_tool di -rootfs rootfs.img sudo upgrade_tool di -oem oem.img sudo upgrade_tool di -userdata userdata.img sudo upgrade_tool rd 如果因 flash 问题导致升级时出错,可以尝试低级格式化、擦除 flash: sudo upgrade_tool lf # 低级格式化 sudo upgrade_tool ef # 擦除 常见问题 如何强行进入 MaskRom 模式 如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作 方法见 《如何进入 MaskRom 模式》 。