关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(二)

简介: 关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(二)

在产品官网上 下载  可以烧写的样本镜像   下方提供云盘链接

链接: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

界面是这样的:

和之前单个烧写是同样的步骤,直接操作就好

相关文章
Jetson Nano无法下载box.com上的文件解决方法
Jetson Nano无法下载box.com上的文件解决方法
64 0
|
Linux 开发工具 虚拟化
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
148 0
|
供应链 Linux 开发工具
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
230 0
|
Ubuntu
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
286 0
|
Linux
X86_64(优麒麟)系统下构建 i386 文件系统并编译Box86运行wine
X86_64(优麒麟)系统下构建 i386 文件系统并编译Box86运行wine
187 0
X86_64(优麒麟)系统下构建 i386 文件系统并编译Box86运行wine
|
JSON NoSQL Linux
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
945 0
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
|
XML 存储 Ubuntu
RK3568开发笔记(五):在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像
buildroot虽然灵活,但是基于实际情况,本身是侧重驱动和应用定制开发的只定制一次文件系统投入有点多,还不如直接ubunt自己交叉编译依赖库,做一些库的移植裁剪。   于是本篇就使用ubuntu系统了,至于其他库自己下源码在宿主机交叉编译号后,再拷贝过去或者直接在板子上编译也行(只是会比较慢),但是意义不大,因为开发过程肯定是用宿主机,不然核心板编译太慢,在编译上会花费不少可以省去的时间。
RK3568开发笔记(五):在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
|
API 开发工具 图形学
Pico neo3 Unity打包设置
最近使用Pico的频率很高,想给一些Pico爱好者分享一下在Unity中想项目打包到Pico设备中
889 0
Pico neo3 Unity打包设置
|
存储 XML Ubuntu
RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
上一篇搭建好了ubuntu宿主机开发环境,本篇的目标系统主要是开发linux+qt,所以需要刷上billdroot+Qt创建的系统,为了更好的熟悉原理和整个开发过程,选择从零开始搭建rk3568的sdk开发环境。
RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像