armsom产品编译烧录Linux固件
1、开发环境及工具准备
Rockchip Linux 软件包:linux-5.10-gen-rkr4
主机:
-
安装VMware搭建虚拟机,版本为Ubuntu 20.04 (硬盘容量大于100G)
-
安装远程连接工具MobaXterm(可连接虚拟机方便文件传输)
2、SDK编译环境搭建
2.1、安装库和工具集:
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu time mtd-utils
2.2、创建工作目录
mkdir ~/RK3588
2.3、拷贝SDK至工作目录
可通过MobaXterm实现PC与虚拟机之间传输文件
2.4、解压SDK
解压命令:
cat linux-5.10-gen-rkr4.tar.gzaa* | tar xzvf -
2.5、检查和升级软件包
- 检查make版本(要求make 4.0及以上版本)
make -v
GNU Make 4.2
Built for x86_64-pc-linux-gnu
- 升级make版本
git clone https://github.com/mirror/make.git
cd make
git checkout 4.2
git am $BUILDROOT_DIR/package/make/*.patch
autoreconf -f -i
./configure
make make -j8
sudo install -m 0755 make /usr/bin/make
- 检查lz4版本(要求安装 lz4 1.7.3及以上版本)
lz4 -v
*** LZ4 command line interface 64-bits v1.9.4, by Yann Collet ***
refusing to read from a console
- 升级lz4版本
git clone https://github.com/lz4/lz4.git
cd lz4
make
sudo make install
sudo install -m 0755 lz4 /usr/bin/lz4
- 检查和升级git版本
git clone https://github.com/mirror/make.git --depth 1 -b 4.2
cd make
git am $BUILDROOT_DIR/package/make/*.patch
autoreconf -f -i
./configure
make make -j8
install -m 0755 make /usr/local/bin/make
2.6、git配置
在~/RK3588/linux-5.10-gen-rkr4目录下
git config --global user.name "your name"
git config --global user.email "your mail"
2.7、安装repo
mkdir ~/bin
export PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod a+x ~/bin/repo
3、编译SDK
可参考 device/rockchip/common/README.md 编译说明。
3.1、SDK编译命令查看
make help
3.2、SDK配置:
可通过make lunch 或者./build.sh lunch 进⾏配置,其他功能的配置可通过make menuconfig 来配置相关属性
3.3、全自动编译
进⼊~/RK3588/linux-5.10-gen-rkr4目录执⾏以下命令⾃动完成所有的编译:
./build.sh all # 只编译模块代码(u-Boot,kernel,Rootfs,Recovery)
# 需要再执⾏./mkfirmware.sh 进⾏固件打包
./build.sh # 编译模块代码(u-Boot,kernel,Rootfs,Recovery)
# 打包成update.img完整升级包
# 所有编译信息复制和⽣成到out⽬录下
默认是 Buildroot,可以通过设置坏境变量 RK_ROOTFS_SYSTEM 指定不同 rootfs。
RK_ROOTFS_SYSTEM ⽬前可设定三种系统:buildroot、debian、 yocto 。
比如需要生成debian的命令如下:
export RK_ROOTFS_SYSTEM=debian
./build.sh
3.4、模块编译
./build.sh uboot
./build.sh kernel
./build.sh recovery
./build.sh rootfs
...
4、烧写固件
4.1、安装烧录工具
-
Windows 驱动安装助手:
~/RK3588/linux-5.10-gen-rkr4/tools/windows/DriverAssitant_v5.12.zip -
Windows 烧写⼯具:
~/RK3588/linux-5.10-gen-rkr4/tools/windows/RKDevTool_Release_v3.15
4.2、打包工具
主要⽤于各分⽴固件打包成⼀个完整的update.img固件⽅便升级。
生成固件路径:/tools/linux/Linux_Pack_Firmware/rockdev
./mkupdate.sh
4.3、烧录固件
运行DriverAssitant_v5.12里面的DriverInstall.exe,先选择驱动卸载,然后再选择驱动安装。
打开RKDevTool.exe工具,给开发板上电并且用Type-C线与PC端连接,工具能识别到开发板的三种状态:
-
MASKROM
开发板处于裸机状态,没有运行任何程序或者按住板载的maskrom按键上电
-
LOADER
开发板在系统、uboot输入命令
reboot loader或者按住板载的recovery按键(有些开发板没有引出)上电 -
ADB
系统正在运行
4.3.1、烧写完整系统固件
通过Type-C数据线连接开发板与pc,运行RKDevTool.exe。若驱动安装没有问题,工具会识别到两种情况:发现一个MASKROM设备和发现一个ADB设备
- 自动识别到MASKROM设备,如图:

按【升级固件】按钮,点击【固件】选择要升级的固件文件(SDK编译的固件是update.img),固件包含完整的分区镜像

加载固件之后,点击【升级】按钮,等待烧写完成即可
- 自动识别到ADB设备,如图:

注:若显示发现一个ADB设备,则在升级固件界面点击【切换】即可进入loader烧录模式

- 按【固件】按钮,选择要升级的固件文件,加载固件之后,点击【升级】按钮,等待烧写完成即可。
4.3.2、烧写分区固件
在开发中会有很多情况遇到只想要烧录uboot、kernel、system分区不想更新完整固件的情况,这个可以借助工具做到
这里以更新kernel分区来举例:
首先让开发板处于loader模式,可以在系统或者uboot输入命令reboot loader

按照上面的步骤执行。
注意,一定要先点击【设备分区表】,读取设备分区镜像的地址会显示在右边,如上图所示读取内核的地址0x0000C800与配置的一致所以可以直接执行
5、ADB使用
这里主要介绍windows下使用adb进行调试
步骤:
-
下载windows版本的adb.zip,解压到C:\adb
-
配置环境变量:
1、键盘按键:win + r
2、打开“系统属性”窗口
3、“高级”→“环境变量”→“系统变量”
4、找到“Path”双击,新建,复制adb路径进去,点击“确定”按钮,添加成功
-
常用的adb命令
adb help //可查看所有命令adb versionadb start-server //启动adb服务adb kill-server //关闭adb服务adb devicesadb shelladb push [-p] <local> <remote>adb pull [-p] [-a] <remote> [<local>]
相关文章:
armsom产品编译烧录Linux固件
1、开发环境及工具准备 Rockchip Linux 软件包:linux-5.10-gen-rkr4 主机: 安装VMware搭建虚拟机,版本为Ubuntu 20.04 (硬盘容量大于100G) 安装远程连接工具MobaXterm(可连接虚拟机方便文件传输) 2、S…...
VSCode:Markdown插件安装使用 -- 最简洁的VSCode中Markdown插件安装使用
VSCode:Markdown插件安装使用 1.安装Marktext2.使用Marktext 本文,将在Visual Studio Code中,安装和使用Markdown插件,以Marktext插件为例。 1.安装Marktext 打开VSCode,侧边栏中找到扩展模块(或CtrlShiftX快捷键)&am…...
AI 行业发展趋势:科技创新引领未来变革
在当今数字化时代,人工智能(AI)行业正以前所未有的速度蓬勃发展,深刻地改变着我们的生活、工作和社会格局。从基础技术的突破到广泛的应用场景拓展,AI 展现出了一系列令人瞩目的发展趋势,预示着一个充满无限可能的未来。 一、技术创新持续突破 模型规模与性能提升 AI 模…...
FB爆款打法实操经验总结
在进行Facebook广告投放时,有效的预算控制、素材测试、广告效果评估和lookalike受众的管理是至关重要的。通过科学的方法和策略,您可以在竞争激烈的市场中实现更好的业绩。 01 预算控制 测试阶段的广告不稳定性:在投放广告的初期,…...
微信小程序TTS解决方案
微信小程序原生语音合成 API(基础且简单) 介绍:微信小程序提供了基础的语音合成能力。通过wx.createInnerAudioContext()等相关API,可以实现简单的语音播放功能。不过它主要是用于音频播放,对于完整的文本到语音&#…...
centos stream 8下载安装遇到的坑
早在2020年12月。CentOS 官方发文宣称:“CentOS项目的未来是 CentOS Stream 明年我们会将重点从CentOS Linux 转移到CentOS Stream 它紧随当前 RHEL 版本之前。CentOS Linux 8 作为 RHEL 8 的重建,将于 2021 年底结束。CentOS Stream 在该日期之后继续&a…...
计算机网络——期末复习(1)背诵
背诵 交换机与路由器:交换机连接同一子网,利用帧中的目的物理地址转发帧,工作在数据链路层;路由器连接不同子网,利用IP数据报中的目的IP地址转发IP数据报,工作在网络层。五层的任务:࿰…...
AORO M6 Pro单北斗防爆终端全面国产化,关键技术不再“卡脖子”
全球科技竞争日益激烈,核心技术自主创新已成为国家发展的战略基石。面对关键技术被“卡脖子”的风险,中国科技企业正加速推进信息技术应用创新战略,力求在关键领域实现自主可控。遨游通讯推出的一款融合单北斗、鸿蒙系统、5G国产芯片的防爆终…...
ubuntu 卸载 MySQL
1. 卸载 MySQL 1.1 停止 MySQL 服务 首先,停止 MySQL 服务: sudo systemctl stop mysql 1.2 卸载 MySQL 包 使用 apt-get 命令卸载 MySQL 包: sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* my…...
6、基于SpringBoot的网上购物系统
摘 要 随着我国经济的飞速发展,人们的生活速度明显加快,在餐厅吃饭排队的情况到处可见,近年来由于新兴IT行业的空前发展,它与传统餐饮行业也进行了新旧的结合,很多餐饮商户开始通过网络建设订餐系统,通过专…...
AMS1117芯片驱动电路·降压芯片的驱动电路详解
编写不易,仅供学习,请勿搬运,感谢理解 AMS1117驱动电路 很常用的一种LDO降压芯片,LDO(Low Dropout Regulator)降压芯片是线性稳压器,这种IC因为内部集成的不是开关电路,只能将输入与输出的电压差值通过内部…...
数据仓库工具箱—读书笔记02(Kimball维度建模技术概述02、事实表技术基础)
Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 第二章前言部分作者提到:技术的介绍应该通过涵盖各种行业的熟悉的用例展开(赞同…...
SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期
SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数...
Linux-ubuntu点LED灯C语言版
一,C语言点灯 1.寄存器配置 设置为SVC模式,复用寄存器设置GPIO1-IO003,设置电气属性,设置为输出模式。 2.软件 汇编语言对模式设置,并且将堆栈指针指向主程序: .global _start_start: /*设置为svr模式 */mrs …...
ASP.NET|日常开发中数据集合详解
ASP.NET|日常开发中数据集合详解 前言一、数组(Array)1.1 定义和基本概念1.2 数组的操作 二、列表(List<T>)2.1 特点和优势2.2 常用操作 三、字典(Dictionary<K, V>)3.1 概念和用途…...
Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架
Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架 Pytest BDD vs Behave:选择最适合的 Python BDD 框架BDD 介绍Python BDD 框架列表Python BehavePytest BDDPytest BDD vs Behave:关键区别Pytest BDD vs Behave:最佳应用场景结…...
Unity3D Shader变体自定义组合压缩方案详解
前言 在Unity3D中,Shader变体(Shader Variants)是指根据不同条件生成的Shader版本。这些条件可以包括材质属性、光照模型、阴影选项、渲染队列、纹理类型等。Shader变体允许开发者为同一Shader提供多种实现方式,以满足不同的渲染…...
QT使用promoted后样式(setStyleSheet)不生效问题解决
1.理解promoted(提升)在 Qt 中的概念 在 Qt Designer 中,“提升(Promoted)” 是一种机制,它允许你使用自定义的部件类来替代标准的 Qt 部件类。这在你已经创建了一个从标准 Qt 部件(如QListWid…...
Vue3有哪些好用的处理大数据量虚拟表格组件呢?
在 Vue 3 中,处理大数据量的虚拟表格(Virtual Table)通常需要一个专门的组件或库来优化渲染性能,避免一次性渲染过多的 DOM 元素。以下是一些常用的虚拟表格组件,它们可以帮助你有效处理大数据量: 1. Vue …...
Java学习教程,从入门到精通,Java LinkedList(链表)语法知识点及案例代码(62)
Java LinkedList(链表)语法知识点及案例代码 一、LinkedList概述 LinkedList是Java集合框架中的一个类,位于java.util包中。它实现了List、Deque、Queue等接口,提供了链表数据结构的实现。链表是一种线性数据结构,其…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
