关于【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

界面是这样的:

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

相关文章
|
7月前
|
Linux 编译器 Windows
【Linux】新唐NUC977系统编译及烧写流程
【Linux】新唐NUC977系统编译及烧写流程
122 0
|
Linux 开发工具 虚拟化
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
170 0
|
Windows
nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)
nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)
171 0
|
Ubuntu
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
295 0
|
移动开发 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
177 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
|
JSON NoSQL Linux
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
984 0
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
|
存储 编解码 Ubuntu
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
241 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
|
存储 Ubuntu 前端开发
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
347 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
|
安全
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
539 0
[经验]使用Keil MDK+Jlink-OB下载失败的解决办法
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs