RK3562 单板机系统开发完全手册:U-Boot/Kernel/Rootfs 开发与性能优化
前 言本文档主要演示Linux系统开发流程。包括LinuxSDK的配置与编译、U-Boot、Kernel及Rootfs的开发以及系统镜像的替换方法。同时介绍系统镜像的打包与解包、关键计算单元(CPU、GPU、NPU)和内存子系统(DDR)性能策略配置与管理的详细步骤旨在帮助开发者完成系统开发。开发环境Windows开发环境Windows10 64bit、Windows7 64bitLinux开发环境VMware16.2.5、Ubuntu20.04.6 64bitLinuxSDKLinuxSDK-[版本号]基于rk3562_linux_sdk_release_v1.2.0系统版本Tronlong-Desktop 20.04类Ubuntu、Linux-5.10.209、U-Boot-2017.09交叉编译工具链应用开发交叉编译工具链aarch64-linux-gnu-gcc版本为9.4.0U-Boot开发、内核开发gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf备注本文基于2GByte LPDDR4X、16GByte eMMC配置单板机进行演示。术语表为便于阅读下表对文档出现的关键术语进行解释对于广泛认同释义的术语在此不做注释。注意事项1单板机默认镜像已包含对应的设备树文件支持创龙科技EX-TLBaseUART扩展板、EX-TLMultiUART扩展板、EX-TLMultiETH扩展板的外设更换不同扩展板无需手动切换设备树文件。2Linux系统各镜像可通过命令行方式和瑞芯微开发工具替换具体如下表所示。备注Rootfs镜像需参考“完整镜像打包与解包”章节打包成完整系统镜像后才能替换。3Linux系统相关软件包位于产品资料“4-软件资料\Linux\”目录下具体如下表所示。备注我司推荐使用最新版本的LinuxSDK亦可根据“4-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明自行替换对应模块如device/rockchip至旧版本LinuxSDK进行使用。4我司提供的单板机内核镜像已包含设备树编译后的二进制文件(.dtb)具体说明如下1 LinuxSDK安装1.1 安装依赖软件请先执行如下命令更新软件列表。Host#sudo apt-get update图 1执行如下命令安装LinuxSDK开发包依赖的库和工具集。备注安装过程中请保证Ubuntu可正常访问互联网若提示*** is already the newest version ***表示该软件已安装请忽略。Host#sudo apt-get install -y git ssh make gcc libssl-dev \liblz4-tool expect expect-dev 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 libgmp-dev \libmpc-dev bc python-is-python3 python2 libpkgconf-dev图 2图 3若安装失败可通过更换软件源解决。点击如下图标进入软件源更新的图形界面。图 4点击Download from。图 5点击Other…出现弹窗找到China即可选择软件源推荐使用清华大学镜像软件源以匹配我司开发文档然后点击Choose Server。图 6图 7图 8输入登录虚拟机Ubuntu的密码然后点击Authenticate。图 9点击Close完成更换软件源。图 10执行如下命令检查主机的Python版本需安装Python 3.6及以上版本。Host#python --version图 111.2解压LinuxSDK打开Ubuntu执行如下命令创建RK3562工作目录并进入该目录。Host#mkdir -p /home/tronlong/RK3562图 12请将产品资料“4-软件资料\Linux\LinuxSDK\”目录下的LinuxSDK-[版本号].tar.gz开发包解压至Ubuntu系统的RK3562工作目录中执行如下命令进行解压。耗时约5min后解压完成生成rk3562_linux_sdk_release_v1.2.0文件夹即为LinuxSDK源码目录。Host#cd /home/tronlong/RK3562/Host#tar -zxf LinuxSDK-v1.0.tar.gz备注LinuxSDK版本号以实际情况为准。图 13执行如下命令查看当前LinuxSDK源码目录。Host#cd rk3562_linux_sdk_release_v1.2.0/Host#ls -l图 142LinuxSDK配置与编译请先参考“LinuxSDK安装”章节正确安装LinuxSDK和依赖软件再执行以下步骤。2.1配置编译选项进入LinuxSDK源码目录,配置LinuxSDK编译选项。Host#./build.sh sbc_tl3562_ubuntu_defconfig配置编译设备树文件我司提供的设备树文件位于LinuxSDK源码kernel/arch/arm64/boot/dts/rockchip目录。设备树文件根据单板机部分复用外设功能进行区分。具体说明如下表。单板机使用的设备树文件存在多级的依赖关系具体如下表所示。表中的下一级设备树文件被上一级设备树文件所引用。LinuxSDK默认编译的设备树文件为sbc-tl3562.dts如需替换为支持对应功能的其他设备树请参考以下步骤修改。本次操作以替换为sbc-tl3562-mipi-lcd.dts设备树支持MIPI显示进行演示如需使用其他设备树修改方法同理。执行如下命令进入内核配置界面。Host#./build.sh sbc_tl3562_ubuntu_defconfigHost#make menuconfig图 15选择Kernel按Enter键进入到下一级配置选项。图 16选择device-tree script name按Enter键后进入编辑页面。图 17进入编辑页面将sbc-tl3562修改为sbc-tl3562-mipi-lcd选择Ok按Enter键退出编辑页面。图 18选择Save按Enter键保存配置。图 19在弹出的界面中按选择Ok按Enter键保存。图 20在弹出的界面中按Enter键完成保存操作。图 21配置完成后连续按下Esc键退出图形配置界面。执行如下命令保存设备树相关的编译配置项并通过查看生成的sbc_tl3562_ubuntu_defconfig文件确定设备树文件是否已正确配置。Host#make savedefconfigHost#cat device/rockchip/rk3562/sbc_tl3562_ubuntu_defconfig图 22除上述图形化配置方法外亦可通过执行如下命令直接修改sbc_tl3562_ubuntu_defconfig文件。Host#vim device/rockchip/rk3562/sbc_tl3562_ubuntu_defconfig图 23修改内容如下RK_KERNEL_DTS_NAMEsbc-tl3562-mipi-lcd //将sbc-tl3562修改为sbc-tl3562-mipi-lcd图 24配置内核选项我司默认配置的是Linux内核推荐使用。如需修改内核编译选项配置请继续执行make -j8 CROSS_COMPILEaarch64-none-linux-gnu- ARCHarm64 menuconfig命令打开图形配置界面。此命令通过读取当前目录的.config文件以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置可跳过此步骤。menuconfig是一套图形化的配置工具需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面因此需要先执行如下命令通过网络安装ncurses库。Host#sudo apt-get install libncurses5-dev图 25Host#sudo apt-get install libncursesw5-dev图 26ncurses库安装完成后执行如下命令配置交叉编译工具链。Host#cd /home/tronlong/RK3562/rk3562_linux_sdk_release_v1.2.0/kernelHost#export PATH/home/tronlong/RK3562/rk3562_linux_sdk_release_v1.2.0/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH图 27在配置内核前先使用如下命令清理内核Host#make CROSS_COMPILEaarch64-none-linux-gnu- ARCHarm64 distclean图 28执行如下命令配置内核。Host#make -j8 CROSS_COMPILEaarch64-none-linux-gnu- ARCHarm64 rockchip_linux_defconfig图 29ncurses库安装完成后执行如下命令打开图形配置界面。Host#make -j8 CROSS_COMPILEaarch64-none-linux-gnu- ARCHarm64 menuconfig图 30图 31可通过键盘的方向键选中对应菜单栏。在Select被选中的情况下可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后按下Y键会将相应的选项配置编译到内核中同时菜单选项前面变为 * 。按下N键不会将相应的选项配置编译到内核中。按下M键会将相应的选项配置编译为内核模块菜单选项前面变为 M 。如需搜索可按下/键打开搜索框然后输入要搜索的内容。配置完毕后选中Save按Enter键保存配置选项。然后选中Exit按Enter键退出。请执行如下命令保存配置选项至arch/arm64/configs/rockchip_linux_defconfig文件再将defconfig文件内容覆盖至rockchip_linux_defconfig文件。Host#make -j8 CROSS_COMPILEaarch64-none-linux-gnu- ARCHarm64 savedefconfigHost#mv defconfig arch/arm64/configs/rockchip_linux_defconfig图 322.2拷贝根文件系统镜像我司已提供Rootfs根文件系统镜像位于“4-软件资料\Linux\Filesystem\Tronlong-Desktop-20.04\image\Tronlong-Desktop-20.04-[版本号]-[Git系列号]\”目录下版本号、Git系列号请以实际情况为准请将其拷贝至LinuxSDK源码目录的ubuntu目录下。图 332.3编译LinuxSDK在编译LinuxSDK时可根据实际需要选择是否多设备树打包功能即将多个设备树文件(.dts)编译为二进制文件(.dtb)并嵌入同一内核镜像中。若仅需单一设备树支持无需将多个设备树文件(.dts)打包进同一内核镜像请执行如下操作禁用多设备树打包功能并重新编译内核。备注若未修改sbc_tl3562_ubuntu_defconfig文件则默认编译设备树为sbc-tl3562.dts。Host#export ENABLE_MULTI_DTBnHost#./build.sh kernel图 34图 35编译完成后生成的内核镜像中仅包含sbc-tl3562.dts编译后的设备树数据。并且生成sbc-tl3562.dtb设备树二进制文件(.dtb)位于kernel/arch/arm64/boot/dts/rockchip/目录。若需打包多设备树文件(.dts)至同一内核镜像请先参考上文“配置编译设备树文件”章节将需要打包的设备树文件(.dts)逐一进行配置并重新编译内核生成对应的设备树二进制文件(.dtb)。本次操作以获取sbc-tl3562-ex-tlbaseuart.dtb文件进行演示。Host#vim device/rockchip/rk3562/sbc_tl3562_ubuntu_defconfig图 36修改内容如下RK_KERNEL_DTS_NAMEsbc-tl3562-ex-tlbaseuart //将sbc-tl3562修改为sbc-tl3562-ex-tlbaseuart图 37执行如下命令重新编译内核生成对应的设备树二进制文件(.dtb)文件。Host#./build.sh sbc_tl3562_ubuntu_defconfigHost#./build.sh kernel图 38图 39重复上述步骤编译生成sbc-tl3562-ex-tlmultiuart.dtb和sbc-tl3562-ex-tlmultieth.dtb。编译完成后查看目录下是否有对应设备树二进制文件(.dtb)。Host#ls kernel/arch/arm64/boot/dts/rockchip/sbc-tl3562*.dtb图 40执行如下命令将多个设备树的二进制文件(.dtb)打包进内核镜像中。备注若修改了任一设备树文件(.dts)需重新编译生成对应的二进制文件(.dtb)再执行打包操作。例如当修改sbc-tl3562-ex-tlmultiuart.dts设备树文件后需编译生成sbc-tl3562-ex-tlmultiuart.dtb再执行如下命令将多个设备树进行打包。Host#export ENABLE_MULTI_DTByHost#./build.sh kernel图 41图 42请确保已参照“配置编译选项”章节正确配置LinuxSDK编译选项然后在LinuxSDK的LinuxSDK源码目录下执行如下命令一键编译生成U-Boot、Kernel、文件系统、Recovery等镜像并打包生成系统镜像。备注若未设置ENABLE_MULTI_DTB环境变量进行内核编译时系统将默认启用单设备树打包模式即仅将一个设备树文件(.dts)编译并嵌入内核镜像具体打包的设备树文件由sbc_tl3562_ubuntu_defconfig文件的RK_KERNEL_DTS_NAME选项指定。Host#./build.sh图 43预计耗时约2小时后编译完成最终在rockdev目录下生成U-Boot、Kernel、文件系统、Recovery系统等镜像如下所示。图 44图 452.4系统组件镜像说明编译LinuxSDK后生成的系统组件镜像具体功能和作用如下表所示。由于篇幅过长等原因部分内容均不逐一展示如需获取完整版详细资料请关注Tronlong创龙科技微信公众号或官网或者评论区留言感谢您的支持

相关新闻

ClickHouse 在大数据能源分析中的应用案例

ClickHouse 在大数据能源分析中的应用案例

ClickHouse 在大数据能源分析中的应用案例 关键词:ClickHouse、大数据分析、能源行业、实时计算、时间序列数据 摘要:能源行业每天产生海量多源异构数据(如风电设备传感器、电网负荷、用户用电记录),传统数据库难以满足…

2026/5/17 3:43:11 阅读更多 →
基于三机九节点系统的模块化潮流计算程序设计(MATLAB实现)

基于三机九节点系统的模块化潮流计算程序设计(MATLAB实现)

一、程序架构设计 ├── data/ # 数据模块 │ ├── nodes.mat # 节点参数(类型、电压、功率等) │ └── branches.mat # 支路参数(阻抗、导纳等) ├── core/ # 核心算法 │…

2026/5/17 3:43:10 阅读更多 →
电商系统大数据量订单导出的解决方案

电商系统大数据量订单导出的解决方案

一、场景电商系统每天订单1000,订单表可能递增到上千万,现在要导出全部的订单数据,有没有什么好的解决办法,解决导出慢和内存溢出的情况?二、参考方案1. 分批次异步导出分页导出:按照ID或时间范围划分&…

2026/7/3 10:21:19 阅读更多 →

最新新闻

Startup AI自动化落地实战:客服、库存与决策的闭环打法

Startup AI自动化落地实战:客服、库存与决策的闭环打法

1. 项目概述:当AI自动化真正落地到 startup 的日常毛细血管里 我带过三支不同阶段的创业团队,从十几人的 SaaS 工具公司,到二十人出头的跨境 DTC 品牌,再到刚完成种子轮的工业 IoT 解决方案团队。过去三年里,我亲手拆过…

2026/7/4 10:13:45 阅读更多 →
ID3到XGBoost:决策树模型演进的工程实战路径

ID3到XGBoost:决策树模型演进的工程实战路径

1. 这不是“树”的科普,而是决策模型演进的实战路线图 你打开任何一本机器学习入门书,十有八九会在第三章遇到“决策树”——画着几根分叉的流程图,讲着信息增益、基尼不纯度这些词,然后戛然而止。但真实项目里,没人只…

2026/7/4 10:13:45 阅读更多 →
十项重塑产业的AI工程突破:从因果推理到边缘大模型

十项重塑产业的AI工程突破:从因果推理到边缘大模型

1. 项目概述:这不是一份“AI新闻简报”,而是一份从业者手写的“技术影响地图”“10 Game-changing AI Breakthroughs Worth Knowing About”——这个标题乍看像科技媒体的年度盘点,但如果你真把它当普通资讯扫一眼就划走,那你就错…

2026/7/4 10:13:45 阅读更多 →
科研信息熵压缩:月度4篇论文精读方法论

科研信息熵压缩:月度4篇论文精读方法论

1. 项目概述:这不是一份文献综述,而是一份科研节奏校准器 “Month in 4 Papers (January 2025)”——这个标题乍看像一份学术期刊的月度简报,但如果你在高校实验室熬过通宵、在工业界赶过模型上线 deadline、或是在读博第三年反复修改 propo…

2026/7/4 10:09:45 阅读更多 →
游戏陪玩App的XSS防御实战:从原理到纵深防护体系构建

游戏陪玩App的XSS防御实战:从原理到纵深防护体系构建

1. 项目概述:为什么游戏陪玩App必须严防XSS?最近在跟一个做游戏陪玩平台的朋友聊技术债,他提到一个让我后背发凉的问题:他们平台上线没多久,就发现有用户在陪玩师的个人简介里,嵌入了能自动跳转到钓鱼网站的…

2026/7/4 10:09:45 阅读更多 →
从零实现大语言模型:Happy-LLM开源教程带你掌握Transformer与微调实战

从零实现大语言模型:Happy-LLM开源教程带你掌握Transformer与微调实战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在社区里看到很多朋友对 AI 大模型开发跃跃欲试,但往往被海量的论文、复杂的数学公式和动辄几十个 G 的模型权重劝退…

2026/7/4 10:09:45 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻