在产品官网上 下载 可以烧写的样本镜像 下方提供云盘链接
链接:https://pan.baidu.com/s/1UjuXWcqsrxfztrvFQdtY-A 密码:pdcx【长期有效】
下载成功之后 将 Firefly-rk3399_xubuntu16.04_EC20_20180614.img 文件拷贝到 Linux Ubuntu 16.04 的家目录
这里介绍一个工具 winscp , 浏览器搜索 直接可以下载,傻瓜式设置ip 、用户名,登录的时候正确输入密码,即可进行拖拽拷贝文件,非常方便,大大提高效率
这也提供百度下载链接下载WINSCP:
链接:https://pan.baidu.com/s/1fiAiWyUGdGXW1WFuS7d_7A 密码:h0yd
【准备解img包的工具】
下载工具包:
git clone https://github.com/TeeFirefly/rk2918_tools.git
进入工具包目录:
cd rk2918_tools
自动化编译:
make
将可执行文件拷贝到用户二进制目录:
sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin
【开始解包】
【敲黑板】
本解包是在linux中解包,因为在linux解包可以清晰的看到loader.img 解析出来,方便之后的打包。如果自己通过网上资源在windows下解包,会导致loader.img 加载器不能直接生成,会生成一个boot.bin二进制文件。建议在Linux做,成功进入了之后可以研究在window下的解包和打包。
你存放img的目录内,进行解包: img_unpack Firefly-rk3399_xubuntu16.04_EC20_20180614.img img //解包到img目录,img目录会自动生成
以下是打印消息 rom version: 6.0.1 build time: xxxxxxx chip: 33333043 checking md5sum....OK
解析成功之后,img 目录下会生成 loader.img update.img
【解压update.img】
进入到img 目录,使用 afptool -unpack 解压:
afptool -unpack update.img update //解压到 update 目录
以下是解压时的打印消息:
Check file...OK
------- UNPACK -------
package-file 0x00000800 0x00000280
Image/MiniLoaderAll.bin 0x00001000 0x0003E94E
Image/parameter.txt 0x00040000 0x00000350
Image/trust.img 0x00040800 0x00400000
Image/uboot.img 0x00440800 0x00400000
Image/misc.img 0x00840800 0x0000C000
Image/resource.img 0x0084C800 0x0003FE00
Image/kernel.img 0x0088C800 0x00F5D00C
Image/boot.img 0x017EA000 0x0014AD24
Image/recovery.img 0x01935000 0x013C0000
Image/system.img 0x02CF5000 0x2622A000
RESERVED 0x00000000 0x00000000
UnPack OK!
打开update目录,里面生成了一些列img文件,将 自己编译生成的 kernel.img 和 resource.img 覆盖进去(需要修改成对应的名字),(关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一) 有说明如何生成上述img 文件)
然后在当前目录(update 目录),进行打包,打包命令如下:
afptool -pack . ../update_new.img
以下是打印 消息:
------ PACKAGE ------
Add file: ./package-file
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/parameter.txt
Add file: ./Image/trust.img
Add file: ./Image/uboot.img
Add file: ./Image/misc.img
Add file: ./Image/resource.img
Add file: ./Image/kernel.img
Add file: ./Image/boot.img
Add file: ./Image/recovery.img
Add file: ./Image/system.img
Add file: ./RESERVED
Add CRC...
------ OK ------
Pack OK!
成功之后,目录下和上一级目录 会生成 update_new.img ,但是这个img文件还不能烧入板子,因为没有loader.img 加载器
【合成update.img】
把之前提到的loader.img 移动到 和 update_new.img 同一目录,运行一下命令:
img_maker -rk33 loader.img update_new.img update.img
以下是打印消息:
generate image...
append md5sum...
success!
此时生成的 update.img 才是可以烧写进入板子的镜像
【接下来开始烧写镜像】
安装串口驱动:
链接:https://pan.baidu.com/s/1DCqrfK3clHE2Rxjqmg_7vQ 密码:chai
下载单个烧写工具 AndroidTool233.zip
链接:https://pan.baidu.com/s/16xp98rUVDCQWWxB0nrBU2Q 密码:mqs7
工具界面是这样的:
点击升级固件->点击固件->加入update.img->升级
升级过程中,rk3399的板子需要设置模式,Loader模式
Loader模式
在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。要进入 Loader 模式,必须让 bootloader 在启动时检测到 RECOVERY
(恢复)键按下,且 USB 处于连接状态。有两种方法可以使设备进入升级模式:
一种方式是断开电源适配器
- Type-C 线连接好设备和主机。
- 按住设备上的 RECOVERY (恢复)键并保持。
- 插上电源
- 大约两秒钟后,松开 RECOVERY 键。
另一种方式是接上电源适配器
- Type-C数据线连接好设备和主机。
- 按住设备上的 RECOVERY (恢复)键并保持。
- 短按一下 RESET(复位)键。
- 大约两秒钟后,松开 RECOVERY 键
3秒钟之内软件能够检测到设备连接,此时方可点击升级,进行固件升级。
【关于量产工具的说明】
官方 http://wiki.t-firefly.com/zh_CN/Firefly-RK3399/upgrade_firmware.html , 给出的量产工具是不能识别设备的,无论无数次卸载串口驱动再安装,依然无济于事。
现在介绍一个使用的量产工具 FactoryTool,易于操作,烧写方便,一次性烧写数量可以达到20台以上,适合量产。
链接:https://pan.baidu.com/s/1_CqEtqMmfpdJ44-yiA14EA 密码:rphw
界面是这样的:
和之前单个烧写是同样的步骤,直接操作就好