基于Android 10系统的瑞芯微RK3399K烧写镜像实录

news2024/9/22 11:37:19

基于Android 10系统的瑞芯微RK3399K烧写镜像实录

      • 1. 前言
      • 2. 官网及相关资料
      • 3. 烧写固件所需软件
      • 4. 直接烧写单一固件步骤
      • 5. 固件文件
      • 6. Windows下烧写准备
        • 6.1 安装 RK USB 驱动
        • 6.2 连接设备
      • 7. 烧写固件
        • 7.1 烧写统一固件 update.img
        • 7.2 烧写分区映像
      • 8. Linux下烧写
        • 8.1 upgrade_tool
        • 8.2 烧写分区镜像
      • 9. 常见问题
        • 9.1 如何强行进入 MaskRom 模式
        • 9.2 烧写失败分析
      • 10. 最后

1. 前言

作为Firefly新一代的顶级开源平台,Firefly-RK3399采用了六核64位“服务器级”处理器Rockchip RK3399,拥有2GB/4GB DDR3和16G/32GB eMMC, 并新增DP 1.2、PCIe 2.1 M.2、Type-C、USB3.0 HOST等高性能数据传输和显示接口。Firefly-RK3399强大的性能配置将给VR、全景拍摄、视觉识别、服务器、3D等前沿技术带来里程碑的变革。目前已支持Ubuntu(Debian)、Linux buildRoot、Android,因此使用场景非常广,医疗、车载、机器人、智能家居、人脸识别考勤机、门禁、游戏外设、POS机、安防机、卡拉OK机等等都可以使用,而且算是国产芯片应用推广的一大步。

2. 官网及相关资料

这个是GitHub地址:

https://github.com/rockchip-linux

这个是官网:

https://www.rock-chips.com/

资料较多的Wiki:

https://wiki.t-firefly.com/zh_CN/Firefly-RK3399/index.html

3. 烧写固件所需软件

可参考这里:

https://wiki.t-firefly.com/zh_CN/Firefly-RK3399/03-upgrade_firmware.html

进行下载。

AndroidTool_Release_v2.6.1

DriverAssitant_v4.5

版本可能有变动,但一个是驱动工具,一个是固件烧写工具,通过usb/type-C或者双usb头的线直接进行烧写(这类较大的系统一般都不通过串口直接烧写,速度会比较慢)。

4. 直接烧写单一固件步骤

如果有完整的单一固件文件可以直接升级固件,不需要单独烧写部分分区,所以步骤也会相对简单,直接搜索找到设备->进入升级模式->载入固件->一键升级即可。
在这里插入图片描述

5. 固件文件

固件文件一般有两种:

单个统一固件

统一固件是由分区表、bootloader、uboot、kernel、system等所有文件打包合并成的单个文件。Firefly正式发布的固件都是采用统一固件格式,升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。

多个分区镜像

即各个功能独立的文件,如分区表、bootloader、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。

通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。

6. Windows下烧写准备

工具: Androidtool_xxx(版本号)

注意:不同固件使用的工具版本可能不同,请根据《使用USB线烧写须知(重要)》下载对应的版本

6.1 安装 RK USB 驱动

下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装。

在这里插入图片描述

6.2 连接设备

如下是我们目前测试的板子,已经通过结构和硬件工程师针对需求做了整体设计调整,直接使用的三个usb口,没有type-c等,显示接口使用的HDMI,主要是方便大屏和人脸机以及机器人开发使用,增加了USB3.0的接口,更像是一块PC板,可以接鼠标、键盘和高清显示器,板子上没有标识recovery和reset按键,我这里做下标识,一般来说需要使设备进入升级模式需要这两个按键,所以你不知道的时候需要问硬件工程师或者自己看图纸。

在这里插入图片描述

设备进入升级模式的方式如下(推荐第二种,更方便一些,像我们是使用双USB头,所以没有Type-C数据线,这个不影响,在烧写前需要看一下你们的板子是双USB线还是Type-C,没有特殊需求大多是Type-C,比较通用):

一种方法是设备先断开电源适配器和 Type-C 数据线的连接:(如果是双usb口的使用对应连接线即可)
    USB 一端连接主机,Type-C 一端连接开发板 Type-C 母口
    按住设备上的 RECOVERY (恢复)键并保持
    接上电源
    大约两秒钟后,松开 RECOVERY 键
另一种方法,无需断开电源适配器和 Type-C 数据线的连接:
    USB 一端连接主机,Type-C 一端连接开发板 Type-C 母口
    按住设备上的 RECOVERY (恢复)键并保持
    短按一下 RESET(复位)键
    大约两秒钟后,松开 RECOVERY 键

主机应该会提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,则需要返回上一步重新安装驱动。

在这里插入图片描述

7. 烧写固件

下载 AndroidTool(若系统是 Android8.1 则需要 2.54 以上版本),解压,运行 AndroidTool_Release_v2.38 目录里面的 AndroidTool.exe(注意,如果是 Windows 7/8,需要按鼠标右键,选择以管理员身份运行),如下图:

在这里插入图片描述

7.1 烧写统一固件 update.img

烧写统一固件 update.img 的步骤如下:

切换至升级固件页。
按固件按钮,打开要升级的固件文件。升级工具会显示详细的固件信息。
按升级按钮开始升级。
如果升级失败,可以尝试先按’擦除 Flash’按钮来擦除 Flash,然后再升级。一定要根据《使用USB线烧写须知(重要)》进行擦除烧写

注意:如果你烧写的固件 laoder 版本与原来的机器的不一致,请在升级固件前先执行’擦除 Flash’。

在这里插入图片描述

汉化版的:

在这里插入图片描述

7.2 烧写分区映像

每个固件的分区可能不相同,请注意以下两点:

使用 Androidtool_2.38 烧写 ubuntu(MBR) 和 Android7.1 固件时使用默认配置即可;
使用 Androidtool_2.58 烧写 ubuntu(GPT) 使用默认配置即可,烧写 Android8.1 固件请先执行以下操作: 切换至下载镜像页面; 右键点击表格,选择导入配置; 选择rk3399-Android81.cfg
使用Androidtool_2.71烧写Android10或Android9固件时使用默认配置即可;

烧写分区映像的步骤如下:

切换至下载镜像页。
勾选需要烧录的分区,可以多选。
确保映像文件的路径正确,需要的话,点路径右边的空白表格单元格来重新选择。
点击执行按钮开始升级,升级结束后设备会自动重启。

在这里插入图片描述

8. Linux下烧写

Linux 下无须安装设备驱动,参照 Windows 章节连接设备则可。

工具:Linux_Upgrade_Tool

注意:不同固件使用的工具版本可能不同,请根据[烧写须知]下载对应的版本

8.1 upgrade_tool

下载 Linux_Upgrade_Tool (系统是 Android8.1则需要 Linux_Upgrde_Tool_for_android8.1), 并按以下方法安装到系统中,方便调用:

unzip Linux_Upgrade_Tool_xxxx.zip
cd Linux_UpgradeTool_xxxx
sudo mv upgrade_tool /usr/local/bin
sudo chown root:root /usr/local/bin/upgrade_tool
sudo chmod a+x /usr/local/bin/upgrade_tool

烧写统一固件 update.img:

sudo upgrade_tool uf update.img

如果升级失败,可以尝试先擦除后再升级。一定要根据《使用USB线烧写须知(重要)》的表格进行擦除烧写

# 擦除 flash 使用 ef 参数需要指定 loader 文件或者对应的 update.img
sudo upgrade_tool ef update.img   #update.img :你需要烧写的 Ubuntu 固件
# 重新烧写
sudo upgrade_tool uf update.img
8.2 烧写分区镜像

Android7.1、Android8.1使用以下方式:

sudo upgrade_tool di -b boot.img
sudo upgrade_tool di -k kernel.img
sudo upgrade_tool di -s system.img
sudo upgrade_tool di -r recovery.img
sudo upgrade_tool di -m misc.img
sudo upgrade_tool di -re resource.img
sudo upgrade_tool di -p paramater  
sudo upgrade_tool ul bootloader.bin 

Android9.0、Android10.0使用以下方式:

sudo upgrade_tool di -b boot.img
sudo upgrade_tool di -dtbo dtbo.img  
sudo upgrade_tool di -misc misc.img
sudo upgrade_tool di -parameter parameter.txt
sudo upgrade_tool di -r recovery.img
sudo upgrade_tool di -super super.img
sudo upgrade_tool di -trust trust.img
sudo upgrade_tool di -uboot uboot.img
sudo upgrade_tool di -vbmeta vbmeta.img

Ubuntu(GPT)使用以下方式:

sudo upgrade_tool ul $LOADER
sudo upgrade_tool di -p $PARAMETER
sudo upgrade_tool di -uboot $UBOOT
sudo upgrade_tool di -trust $TRUST
sudo upgrade_tool di -boot $BOOT
sudo upgrade_tool di -recovery $RECOVERY
sudo upgrade_tool di -misc $MISC
sudo upgrade_tool di -oem $OEM
sudo upgrade_tool di -userdata $USERDATA
sudo upgrade_tool di -rootfs $ROOTFS

如果因 flash 问题导致升级时出错,可以尝试低级格式化、擦除 nand flash:

 # 低级格式化
sudo upgrade_tool lf update.img# 擦除
sudo upgrade_tool ef update.img

9. 常见问题

9.1 如何强行进入 MaskRom 模式

如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作方法见《MaskRom模式》。

9.2 烧写失败分析

如果烧写过程中出现Download Boot Fail, 或者烧写过程中出错,如下图所示,通常是由于使用的USB线连接不良、劣质线材,或者电脑USB口驱动能力不足导致的,请更换USB线或者电脑USB端口排查。
在这里插入图片描述

10. 最后

一般来说,我们在一块板子上搭建好环境后,会提取出统一固件用于生产环境,这个也可以借助于上面的工具进行固件镜像提取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1132191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue组件自定义事件父子

Vue组件父子之间自定义事件 父组件使用props传递数据给子组件&#xff0c;子组件怎么跟父组件通信呢&#xff1f;这时&#xff0c;Vue的自定义事件就派上用场了 示例代码 <div id"zjw1"><span>CQNU--重庆ZJW--同学</span><input placeholder…

数据安全小课堂开讲啦!看这里!

数据安全小课堂开讲啦&#xff01;看这里&#xff01; 1、什么是数据&#xff1f; 《数据安全法》第三条明确&#xff0c;本法所称的数据&#xff0c;就是指任何以电子或者其他方式对信息的记录。小到个人使用手机、电脑等电子产品时浏览的网页、下载的应用、存储的文件&…

【等保小课堂】等保测评后还要花很多钱做等保整改吗?

我国正在严格执行等保政策&#xff0c;过等保企业也越来越多。但大家对于等保政策还不是很了解&#xff0c;有小伙伴在问&#xff0c;等保测评后还要花很多钱做等保整改吗&#xff1f; 等保测评后还要花很多钱做等保整改吗&#xff1f; 【回答】&#xff1a;不一定。等保测评后…

Web前端接入Microsoft Azure AI文本翻译

Azure 文本翻译是 Azure AI 翻译服务的一项基于云的 REST API 功能。 文本翻译 API 支持实时快速准确地进行源到目标文本翻译。 文本翻译软件开发工具包 (SDK) 是一组库和工具&#xff0c;可用于轻松地将文本翻译 REST API 功能集成到应用程序中。 文本翻译 SDK 可跨 C#/.NET、…

一篇文章教会你搭建Hive分布式集群

目录 ​编辑 一、环境描述 二、安装mysql 2.1 卸载mysql 2.1.1 列出安装的mysql 2.1.2 卸载mysql 2.1.3 删除mysql文件目录 2.1.3.1 查看mysql 目录 2.1.3.2 依次删除 2.2.1 下载安装源 2.2.2 安装源rpm 2.2.3 加入rpm密钥 2.2.4 执行安装 2.2.5 设置开机自启动 …

STM32 定时器配置不当导致误差(精度)偏大的问题发现与解决

通用定时器TIM2/3/4/5&#xff0c;PWM输出1Khz的波形 一开始初始化代码如下&#xff1a; void MX_TIM2_Init(void)//1kHz {TIM_ClockConfigTypeDef sClockSourceConfig {0};TIM_MasterConfigTypeDef sMasterConfig {0};TIM_OC_InitTypeDef sConfigOC {0};htim2.Instance T…

Git简明教程

1.Git的定位 在我们自己开发项目的过程中&#xff0c;经常会遇到这样的情况&#xff0c;为了防止代码丢失&#xff0c;或者新变更的代码影响到原有的代码功能&#xff0c;为了在失误后能恢复到原来的版本&#xff0c;不得不复制出一个副本,比如&#xff1a;“坦克大战1.0”“坦…

十个最常用的计算机视觉数据集

如今&#xff0c;人工智能和机器学习领域中最振奋人心的一个分支是计算机视觉&#xff08;Computer Vision&#xff0c;简称CV&#xff09;。CV应用于多种场景&#xff0c;以改善我们的日常生活&#xff0c;并推进科学技术研究。其中包括&#xff1a; 自动驾驶自动生成图像描述…

一、W5100S/W5500+RP2040树莓派Pico<静态配置网络信息>

文章目录 1. 前言2. 相关网络信息2.1 简介2.2 优点2.3 应用 3. WIZnet以太网芯片4. 静态IP网络设置示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 编译烧录 5. 注意事项6. 相关链接 1. 前言 从本章开始我们将用WIZnet的W5100S/W5500以太网芯片结合RP…

听GPT 讲Rust源代码--library/std(3)

rust标准库std中的src目录主要包含以下内容和模块: alloc:内存分配相关函数,比如alloc::boxed::Box、alloc::string::String等。 ascii:ASCII相关工具函数。 char:字符相关类型和函数,如Char、char等。 cmp:比较相关trait和函数,如Ord、Eq、PartialOrd等。 env:环境变量相关功能…

机架式服务器介绍

大家都知道服务器分为机架式服务器、刀片式服务器、塔式服务器三类&#xff0c;今天小编就分别讲一讲这三种服务器&#xff0c;第一篇先来讲一讲机架式服务器的介绍。 机架式服务器定义&#xff1a;机架式服务器是安装在标准机柜中的服务器&#xff0c;一般采用19英寸的标准尺寸…

5年测开经验,领导却说:写的测试文档还不如应届生

如果有人问“测试人员最重要的能力是什么” &#xff0c;有人会说“自动化技术”&#xff0c;有人会说“代码能力”&#xff0c;还有人会说“沟通能力”。 以上的各种能力确实挺重要的&#xff0c;但是在我看来&#xff0c;有一种能力长期遭到人们的低估&#xff0c;那就是“文…

TypeScript学习笔记 | 泛型 - 泛型的应用 - 泛型工具类 - extends - infer用法

文章目录 TypeScript学习笔记 | 泛型 - 泛型的应用什么是泛型类型兼容鸭子类型类型运算「&」和「&#xff5c;」 泛型的定义泛型的使用泛型接口与泛型类 extends用法泛型用法条件判断 用于类型的条件判断应用&#xff1a;Exclude<T,U>排除 / Extract 提取 infer关键词…

【23真题】这套适合考211的同学练手!考察复杂梅森!

今天分享的是23年五邑大学801的信号与系统试题及解析。 本套试卷难度分析&#xff1a;本套试题难度中等偏下&#xff0c;考察的题量较少&#xff0c;但是涉及到的知识点是非常全面的&#xff0c;考察的知识大多都是三大性质的定义以及运用&#xff0c;还考察了复杂梅森公式的运…

使用d3-tip报错:targetel.getScreenCTM is not a function

问题背景&#xff1a;使用d3-tip悬浮不显示信息 控制台报错截图&#xff1a; 报错原因&#xff1a; 箭头函数this 指向问题 解决方案&#xff1a;

无缝的链间互操作性:通用消息传递的强大之处

前言 通用消息传递&#xff08;General Message Passing&#xff0c;GMP&#xff09;是一种支持区块链之间通信和数据传输的机制。GMP正在成为增强不同区块链网络之间互操作性的解决方案。GMP允许应用程序构建者通过使用安全消息在区块链之间通信和交换信息来利用任何区块链的…

node-sass安装失败

在重新下载Vue工程依赖的时候&#xff0c;一直提示我报错&#xff0c;报错信息和截图如下&#xff0c;解决办法放在下面&#xff0c;供大家参考。 ValueError: invalid mode: rU while trying to load binding.gyp gyp ERR! configure error gyp ERR! stack Error: gyp faile…

浅谈余压监控系统电气设计

安科瑞 华楠 摘 要&#xff1a;结合实际的工程设计案例&#xff0c;分析余压监控系统的设计&#xff0c;包括余压探测器、余压控制器、余压监控主机的控制原理等。防止人员在实际的火灾疏散过程中会出现楼梯间和前室之间、前室和室内走道之间防火门两侧压差过大&#xff0c;而…

vs2022 使用git同步报错以及解决每次推送要输入密码问题

1.使用 git GUI工具&#xff0c;例如&#xff1a;TortoiseGit &#xff0c;把全局配置文件这样设置一下 设置全局.config ,这样即可。 [credential] helper store 2.如果推送代码或拉取代码一直失败&#xff0c;在当前的仓库下面&#xff0c;使用以下命令来重置一下密码 git …