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

界面是这样的:

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

相关文章
|
Web App开发 监控 Linux
linux下motion摄像头监控编译与配置
利用linxu下的开源的motion搭建嵌入式视频动态监控系统 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体、按拍照速率都是可调的),并把拍到的图像存储在指定目录,实现无人监控功能。
2374 0
|
26天前
|
Linux 编译器 Windows
【Linux】新唐NUC977系统编译及烧写流程
【Linux】新唐NUC977系统编译及烧写流程
|
5月前
|
Linux 开发工具 虚拟化
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
关于【firefly-rk3399】的环境配置以及编译内核遇到的问题,烧写update.img相关量产工具的说明(一)
|
10月前
|
IDE 开发工具 芯片
瑞萨IDE:CS+ for CC进行BootLoader升级时开发环境配置
BootLoader程序设计是常用的嵌入式升级方案之一,通过使用UART、SPI、IIC等接口实现对嵌入式节点的远程升级。 本片博文并不是讲解如何实现BootLoader升级程序,而是讲解使用CS+ for CC进行BootLoader升级设计时开发环境的配置
|
11月前
|
Ubuntu
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
野火IMX6ULL PRO移植最新buidroot根文件系统(2022.02.04)
181 0
|
11月前
|
Linux 编译器 开发工具
Flash Jetson Linux 刷写系统报错处理
在使用 SDK Manager 刷写Jetson Linux 时会出现一些错误,本篇文章介绍了几种问题的解决方案。
938 0
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--opencv4 jetson编译mjpg-streamer
嵌入式实践教程--opencv4 jetson编译mjpg-streamer
|
存储 XML Ubuntu
RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
上一篇搭建好了ubuntu宿主机开发环境,本篇的目标系统主要是开发linux+qt,所以需要刷上billdroot+Qt创建的系统,为了更好的熟悉原理和整个开发过程,选择从零开始搭建rk3568的sdk开发环境。
RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
|
IDE 测试技术 开发工具
Digispark(ATTINY85) 微型开发板驱动与开发环境安装教程
本教程是基于Arduino IDE中进行编译调试,如果你不想用Arduino IDE可以尝试从官方教程中找到其他方案。官方的教程:http://digistump.
1747 0