Rockchip提供了将固件升级到板载存储介质(如eMMC/NAND/SPI flash)的工具。
以下是各个固件升级工具:
工具名称 | 来源 | OSS | 描述 |
Upgrade_tool | Rockchip | N | 官方在SDK发布的Linux平台下烧写工具 |
rkdeveloptool | Rockchip | Y | upgrade_tool的开源版本 |
rkflashtool | Community | Y | 第三方维护的开源版本 |
Android Tool | Rockchip | N | Rockchip官方在SDK发布的Windows平台下烧写工具 |
如果使用SD卡进行固件存储,那么就不需要固件升级工具,我们可以在Linux操作系统中使用'dd'命令进行烧写。
下面介绍一下upgrade_tool与rkdeveloptool工具:
upgrade_tool是一个Linux平台下用于固件升级工具。您可以在[Linux SDK root]/ tools/linux/Linux_Upgrade_Tool中找到它。
为了使用upgrade_tool,确保可以先执行它。
chmod 777 ./tools/linux/Linux_Upgrade_Tool/upgrade_tool
使用upgradetool烧写镜像。请确保设备处于maskrom rockusb mode。 进入到rockimg目录:
cd rockimg
使用下面的命令来烧写镜像。让我们以RK3399为例。只需将rk3399_loader_v1.09.112.bin更改为当前正在使用的版本。
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool ul rk3399_loader_v1.09.112.bin
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -p parameter.txt
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -u uboot.img
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -t trust.img
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -re resource.img
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -k kernel.img
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -rootfs rootfs.img
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool rd #重启目标机器
rkdeveloptool是Rockchip提供的一个与Rockusb设备进行通信的工具,它被认为是upgrade_tool 的一个开源版本,只有很少区别。
获取rkdeveloptool的源代码:
git clone https://github.com/rockchip-linux/rkdeveloptool.git
首先安装libusb与udev,例如对于Ubuntu:
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf
然后:
autoreconf -i
./configure
make
make install
如果遇到如下编译错误:
./configure: line 4269: syntax error near unexpected token `LIBUSB1,libusb-1.0'
./configure: line 4269: `PKG_CHECK_MODULES(LIBUSB1,libusb-1.0)'
还需要安装pkg-config与libusb-1.0:
sudo apt-get install pkg-config libusb-1.0
Tool Usage ---------------------
Help: -H
Version: -V
DownloadBoot: DB
UpgradeLoader: UL
ReadLBA: RL
WriteLBA: WL
WriteGPT: GPT
EraseFlash: EF
TestDevice: TD
ResetDevice: RD [subcode]
ReadFlashID: RID
ReadFlashInfo: RFI
ReadChipInfo: RCI
-------------------------------------------------------
为了烧写镜像到eMMC
rkdeveloptool db rkxx_loader_vx.xx.bin
rkdeveloptool wl 0x40 idbLoader.img
rkdeveloptool wl 0x4000 uboot.img
rkdeveloptool wl 0x8000 boot.img
rkdeveloptool wl 0x40000 rootfs.img
rkdeveloptool ul rkxx_loader_vx.xx.bin
注意: 前面使用ul 命令与下面的操作命令类似,只是使用来源不一样。
rkdeveloptool wl 0x40 idbLoader.img
注意: rkdeveloptool(ul= wl idbloader)ul 命令的使用与upgrade_tool(ul = db + wl idbloader + rd)是不一样的。
rkdeveloptool gpt parameter_gpt.txt
rkdeveloptool rd