这些年来,我撰写过很多文章,详细介绍了如何在 Windows 或 Linux 中使用RKAndroidTool、RkFlashKit、upgrade_tool或开源rkdeveloptool实用程序等工具将固件刷入 Rockchip 设备。当我们在烧录另一个操作系统或设备无法启动时,这些方法非常有用。因为现在大多数产品都能支持 OTA 固件更新了。
但是在我评测了对Android 11上的Zidoo M6之后,我经获得了Rockchip RK3566 迷你 PC的Linux 镜像,所以我打算重新评测一下 2021 年的固件刷新方法。Zidoo 给我发送了 Windows 的刷新固件的说明,但由于我是 Ubuntu用户,我就通过 Firefly用的Linux工具刷新了固件。除了较新的瑞芯微 RK3566 和 RK3568 处理器外,这个方法同样也适用于RK3066、RK3288 和 RK3399等较旧的处理器。
如何在Linux中烧录Rockchip固件
如果你的设备同时配备 eMMC 闪存和 SPI 闪存,你可能需要使用 Windows 工具来避免设备遭到破坏。
接下来,我需要先从 Firefly 网站上将固件文件( update.img )和升级工具实用程序下载下来。然后,我们需要进入烧录模式来烧录图像。

要执行此操作,需要将USB OTG端口从主板连接到电脑,然后按下主板、迷你电脑或电视盒上的启动/恢复按钮,在这一步我也使用到了 SIM 卡工具。接着连接电源,等待一个或两秒钟,然后松开按钮。第一次尝试的时候,我以为先连接电源适配器、按恢复按钮、然后插入USB线也可以,然而我从dmesg得到了以下输出:
1 2 3 4 5 6 7 |
[19722.743329] usb 1-1: USB disconnect, device number 4 [19728.753590] usb 1-1: new high-speed USB device number 6 using xhci_hcd [19728.904094] usb 1-1: New USB device found, idVendor=2207, idProduct=0006, bcdDevice= 3.10 [19728.904106] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [19728.904110] usb 1-1: Product: M6 [19728.904114] usb 1-1: Manufacturer: rockchip [19728.904117] usb 1-1: SerialNumber: EA4R1B8R7J |
我以为这意味着盒子被正确地检测到了,但事实是我无法升级固件。
1 2 3 |
sudo ./upgrade_tool uf update.img Program Data in /home/jaufranc/edev/Rockchip/Linux_Upgrade_Tool_v1.59 No found any rockusb device,please plug device in! |
所以在给设备或电路板加电之前一定要先按下恢复按钮,这一点很重要。现在我们可以看到它显示为“USB下载小工具(USB download gadget)”了。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[20085.784286] usb 1-1: new high-speed USB device number 7 using xhci_hcd [20085.939483] usb 1-1: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 2.23 [20085.939493] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [20085.939497] usb 1-1: Product: USB download gadget [20085.939500] usb 1-1: Manufacturer: Rockchip [20085.939503] usb 1-1: SerialNumber: EA4R1B8R7J [20088.295252] usb 1-1: USB disconnect, device number 7 [20089.972159] usb 1-1: new high-speed USB device number 8 using xhci_hcd [20090.124739] usb 1-1: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 2.23 [20090.124750] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [20090.124754] usb 1-1: Product: USB download gadget [20090.124758] usb 1-1: Manufacturer: Rockchip [20090.124760] usb 1-1: SerialNumber: EA4R1B8R7J |
在这种模式下,我可以毫不费力地刷固件:
1 2 3 4 5 6 |
sudo ./upgrade_tool uf update.img Program Data in /home/jaufranc/edev/Rockchip/Linux_Upgrade_Tool_v1.59 Loading firmware... Support Type:RK3568 FW Ver:1.0.00 FW Time:2021-08-11 19:27:19 Loader ver:1.01 Loader Time:2021-08-11 19:25:04 Upgrade firmware ok. |
连接迷你 PC 的是一台电视,确认一切之后,我就继续按照计划进行。
到这一步之后,我发现 Android 11 固件已被带有 Qt 的 Linux 镜像取代了。基本上和前几年的方法还是一样,对我来说没有什么难度。
Windows中的Rockchip固件更新
我没有亲自试过 Windows 版本,但我会在这里分享Zidoo官方提供给我的一个方法。其实,在 Windows 中更新 Rockchip 硬件上的固件比在 Linux 上更新的方法要更费劲些,需要安装驱动程序和图形实用程序来执行固件更新。你们可以在Mega上一个名为M6 Flash Tool.zip 的ZIP 文件中将两者下载下来。
USB DriverAssitant的最新版本位于/Flash Tool/PC Drive/DriverAssitant_v5.1.1.zip中的 ZIP 文件中,而 FactoryTool.exe 位于/Flash Tool/Flash Tool/FactoryTool_1.72.4 中。提取 DriverAssitant 并运行 DriveInstall.exe 就可执行文件,然后正确安装驱动程序了。
现在提取 FactoryTool 运行程序,可以选择更改语言,并使用左上角的固件按钮加载 update.img 图像。
现在我们需要用USB线将Rockchip设备连接到电脑,按照Linux部分详述的相同方法进入Loader模式,包括按recovery按钮并连接电源。

现在应该可以在 FactoryTool 中检测到“Loader”类型的设备了,我们现在可以按“运行”按钮来执行更新了。

基本就是这样以上这样了!

文章翻译者:Nicholas,技术支持工程师、瑞科慧联(RAK)高级工程师,深耕嵌入式开发技术、物联网行业多年,拥有丰富的行业经验和新颖独到的眼光!