0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从RK3576 Linux SDK手动适配RK3568,省下时间又省钱

jf_44130326 来源:Linux1024 2026-02-02 17:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Rockchip嵌入式开发的朋友,大概率都遇到过官方SDK “卡脖子的问题——申请流程动辄几周、授权费用随项目规模增加,偏偏项目上线时间不等人。最近我们团队就遇到了这样的情况:需要基于RK3568开发物联网设备,但官方SDK申请还在排队,于是决定从已有的RK3576Linux SDK手动适配,最终成功编译出RK3568的镜像。今天就来拆解这个适配过程,告诉你为什么要这么操作,以及背后的技术逻辑。

wKgZPGkanJiAXTEHAABhkm8nw1A650.png

一、先搞懂:为什么选RK3576SDK适配RK3568

不是随便找个SDK就能适配,选择RK3576作为基底,核心原因是两者同属Rockchip瑞芯微)家族,硬件架构与软件生态高度兼容

架构共性:RK3576RK3568均基于ARMv8-A架构,内核编译链(aarch64-linux-gnu-)可复用,无需重新搭建交叉编译环境;

驱动复用:两者共享大量Rockchip自研驱动(如电源管理SPII2C等),只需调整硬件参数(如IO电压、时钟频率),无需从零开发驱动;

编译系统一致:均采用Rockchip标准的Linux SDK编译框架(Makefile+Kconfig +设备树),修改方向清晰,无需重构编译流程。

简单说:用RK3576SDK适配RK3568,本质是复用已有生态,修改差异部分,比从头搭建SDK效率高10倍以上。

二、核心适配操作解析:每一步都有目的性

我们先看这次适配的核心修改(基于提供的diff代码),每个操作都对应着让编译系统识别RK3568”的关键需求,不是无意义的文件搬运。

1.芯片标识:告诉编译系统目标是RK3568”

第一个修改是device/rockchip/.chip文件:

- .chips/rk3576

+ .chips/rk3566_rk3568

这行代码是编译系统的指路标——Rockchip SDK通过.chip文件定位当前目标芯片的配置目录。之前指向RK3576的配置,现在改为RK3566/RK3568(两者硬件差异小,可共用基础配置),后续编译时会自动加载device/rockchip/.chips/rk3566_rk3568/下的芯片专属配置。

2.配置文件迁移:复用基础参数,修改芯片标识

接下来是将RK3576的核心配置文件(如boot.itsparameter.txt)迁移到RK3566_RK3568目录,并修改芯片相关标识:

# parameter.txt(分区配置文件)

- MACHINE_MODEL: RK3576

- MANUFACTURER: RK3576

+ MACHINE_MODEL: rk3566_rk3568

+ MANUFACTURER: rk3566_rk3568

parameter.txtRK芯片的分区表与硬件信息配置文件,编译时会生成镜像的分区结构(如bootrootfsvendor分区大小);

修改MACHINE_MODELMANUFACTURER,是为了让U-Boot和内核启动时识别当前硬件是RK3568”,避免加载错误的硬件驱动。

boot.its(镜像打包配置)、rockchip_defconfig(基础内核配置)等文件直接复用,是因为这些文件定义的镜像打包规则”“内核基础功能开关(如是否启用USB、网络)在RK3576/RK3568上一致,无需修改。

3.新增RK3568专属内核配置:适配硬件差异

关键一步是新增rockchip_rk3568_evb1_v10_defconfig文件:

RK_UBOOT_SPL=y #启用U-Boot SPL(二级引导)

RK_KERNEL_DTS_NAME="rk3568-evb1-ddr4-v10-linux"#指定RK3568的设备树

RK_USE_FIT_IMG=y #启用FIT镜像格式(支持多设备树打包)

这是针对RK3568硬件的定制化开关

RK_KERNEL_DTS_NAME指定内核加载的设备树(DTS),设备树是硬件描述文件,会告诉内核“RK3568CPU频率、IO口位置、外设地址等关键信息;

没有这个配置,内核会默认加载RK3576的设备树,导致硬件不识别(比如USB口没反应、屏幕不亮)。

4.设备树修改:调整硬件资源参数

最后是修改RK3568的设备树(rk3568-evb.dtsi):

&pmu_io_domains {

status = "okay";

+pmuio1-supply = <&vcc3v3_pmu>;# PMU IO1供电改为3.3V

pmuio2-supply = <&vcc3v3_pmu>;

vccio1-supply = <&vccio_acodec>;

-vccio3-supply = <&vccio_sd>;

-vccio4-supply = <&vcc_3v3>;

+vccio2-supply = <&vcc_1v8>; # IO2供电改为1.8V

+vccio3-supply = <&vcc3v3_pmu>;

+vccio4-supply = <&vcc_1v8>;

#其他电压域调整...

};

这部分是解决硬件电压不匹配的核心

RK3568PMU电源管理单元)IO电压域与RK3576不同(比如部分IO需要1.8V,而非3.3V);

如果不修改,会导致外设(如SD卡、SPI设备)供电异常,轻则设备不工作,重则烧毁硬件。

三、为什么要这么操作?核心是降本提效

回到最初的问题:明明可以等官方SDK,为什么要手动适配?答案藏在时间成本经济成本里:

1.省时间:官方SDK申请流程通常需要1-4周(需提交项目证明、签订协议),而手动适配只需1-2天(基于已有SDK修改),项目能提前上线;

2.省费用:部分官方SDK针对商业项目收取授权费(尤其带专有驱动的版本),手动适配基于开源代码(如Linux内核、U-Boot),无额外成本;

3.灵活可控:官方SDK可能捆绑不必要的功能(如冗余驱动、定制化工具),手动适配可按需裁剪(比如关闭不需要的卫星通信模块),减少镜像体积。

当然,这种操作的前提是拥有RK3568的依赖文件”——比如必要的驱动源码(如MIPI屏幕驱动)、固件文件(如WiFi /蓝牙固件),否则适配后会出现编译通过但外设不工作的问题。

四、实操注意事项:避坑指南

如果你也想尝试类似适配,这3点一定要注意:

1.备份原SDK:修改前先备份RK3576SDK,避免误操作导致原项目无法编译;

2.核对硬件参数:必须拿到RK3568的硬件手册,确认IO电压、时钟频率、外设接口等参数,否则设备树修改会出错;

3.分步测试:先编译U-Boot(确保能引导),再编译内核(确保硬件识别),最后编译rootfs(确保系统正常启动),分步定位问题。

五、总结:嵌入式开发的主动适配思维

其实,这次RK3576适配RK3568的核心逻辑,本质是利用芯片家族的共性,解决硬件差异的个性。在嵌入式开发中,等官方往往不是最优解——尤其是中小团队或创业公司,面对时间紧、预算有限的情况,基于已有资源手动适配,不仅能节省成本,还能更深入理解芯片的底层逻辑。

最后想问:你在适配Rockchip或其他芯片时,遇到过哪些卡脖子的问题?欢迎在评论区分享你的解决方案~


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20679

    浏览量

    337196
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219585
  • RK3568
    +关注

    关注

    5

    文章

    655

    浏览量

    8123
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Mpp支持RK3576

    想问下,https://github.com/rockchip-linux/mpp这里面支持RK3576么,看介绍没有提到说支持RK3576 目前是买了个rk3576的机顶盒,搭载了安
    发表于 06-13 15:35

    【作品合集】米尔RK3576开发板测评

    米尔RK3576开发板测评作品合集 产品介绍: RK3576 是瑞芯微一款面向AI市场推出的高性能处理器,它配备了四核Cortex-A72和四 核Cortex-A53 的 CPU,集成了6TOPS
    发表于 09-11 10:19

    ROC RK3568 PC源代码Linux SDK源码包

    电子发烧友网站提供《ROC RK3568 PC源代码Linux SDK源码包.txt》资料免费下载
    发表于 09-20 09:56 10次下载
    ROC <b class='flag-5'>RK3568</b> PC源代码<b class='flag-5'>Linux</b> <b class='flag-5'>SDK</b>源码包

    ROC RK3568 PC源代码RK3568/RK3588 RKNN SDK

    电子发烧友网站提供《ROC RK3568 PC源代码RK3568/RK3588 RKNN SDK.txt》资料免费下载
    发表于 09-20 09:55 48次下载
    ROC <b class='flag-5'>RK3568</b> PC源代码<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 RKNN <b class='flag-5'>SDK</b>

    RK3568 SDK 安装准备工作

    RK3568 SDK 安装准备工作
    的头像 发表于 12-13 11:44 2040次阅读
    <b class='flag-5'>RK3568</b> <b class='flag-5'>SDK</b> 安装准备工作

    RK3568 SDK 的编译

    RK3568 SDK 的编译
    的头像 发表于 12-13 11:46 3087次阅读
    <b class='flag-5'>RK3568</b> <b class='flag-5'>SDK</b> 的编译

    【技术分享】RK3568适配RK628 RGB to HDMI

    RK628是一款多功能视频桥接芯片,支持多种显示接口的转换。本文基于RK3568平台,分享使用RK628桥接芯片实现RGB信号转换为HDMI输出的适配过程。
    的头像 发表于 07-21 16:49 3379次阅读
    【技术分享】<b class='flag-5'>RK3568</b><b class='flag-5'>适配</b><b class='flag-5'>RK</b>628 RGB to HDMI

    RK3568 编译sdk技巧

    我司RK3568对外提供源代码是以sdk的形式提供,包括但不仅限于uboot、kernel、buildroot、debian源码。在编译sdk的过程中往往需要安装大量的第三方安装包,同时也要保证宿主
    的头像 发表于 08-30 11:44 1979次阅读
    <b class='flag-5'>RK3568</b> 编译<b class='flag-5'>sdk</b>技巧

    新品体验 | RK3576开发板

    RK3399、RK3566、RK3568RK3588、RK3576等型号的核心板与评估板。鉴于RK
    的头像 发表于 11-01 08:08 3422次阅读
    新品体验 | <b class='flag-5'>RK3576</b>开发板

    RK3576单板发布倒计时:RK3399与RK3576对比

    好多人说RK3576RK3399的升级版,某种程度上也可以这么说,RK3576在强大的多媒体功能的基础上,性能和接口都进行了升级 一、工艺 性能 rk3576采用 Rockchip
    的头像 发表于 12-03 16:59 2793次阅读
    <b class='flag-5'>RK3576</b>单板发布倒计时:<b class='flag-5'>RK</b>3399与<b class='flag-5'>RK3576</b>对比

    NPU性能深度评测:瑞芯微RK3588、RK3576RK3568RK3562

    随着AI技术不断发展,越来越多的嵌入式设备开始集成NPU(神经网络处理单元),以实现更高效的AI推理。作为国产芯片厂商的佼佼者,瑞芯微推出的RK3588、RK3576RK3568RK
    的头像 发表于 04-03 11:17 7751次阅读
    NPU性能深度评测:瑞芯微<b class='flag-5'>RK</b>3588、<b class='flag-5'>RK3576</b>、<b class='flag-5'>RK3568</b>、<b class='flag-5'>RK</b>3562

    初次编译rk3568rk3576Linux 6.1内核踩坑记录:报错终止到成功解决的完整流程

    很多刚接触瑞芯微 rk 系列芯片开发的小伙伴,在初次编译基于 Linux 6.1 内核的系统时,很容易因为环境依赖问题卡壳。最近我在编译 rk3576rk3568 流程类似)
    的头像 发表于 02-06 16:47 3248次阅读
    初次编译<b class='flag-5'>rk3568</b>(<b class='flag-5'>rk3576</b>)<b class='flag-5'>Linux</b> 6.1内核踩坑记录:<b class='flag-5'>从</b>报错终止到成功解决的完整流程

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
    的头像 发表于 11-21 13:25 1673次阅读
    【迅为工业<b class='flag-5'>RK3568</b>稳定可靠】itop-<b class='flag-5'>3568</b>开发板<b class='flag-5'>Linux</b>驱动开发实战:<b class='flag-5'>RK3568</b>内核模块符号导出详解

    迅为RK3576对比RK3568:AI算力与接口的全面跃迁

    迅为RK3576对比RK3568:AI算力与接口的全面跃迁
    的头像 发表于 12-22 15:24 2486次阅读
    迅为<b class='flag-5'>RK3576</b>对比<b class='flag-5'>RK3568</b>:AI算力与接口的全面跃迁

    迅为电子RK系列开发板SDK内核正式升级至6.1 LTS版本

    迅为RK3568RK3588、RK3576RK3562系列开发板,SDK内核5.10版本正
    的头像 发表于 03-16 16:18 550次阅读