news 2026/4/18 10:46:18

20260127让天启AIO-3576Q38开发板跑Rockchip瑞芯微原厂的Buildroot【linux-6.1内核】【使用天启Firefly的DTS】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20260127让天启AIO-3576Q38开发板跑Rockchip瑞芯微原厂的Buildroot【linux-6.1内核】【使用天启Firefly的DTS】

20260127让天启AIO-3576Q38开发板跑Rockchip瑞芯微原厂的Buildroot【linux-6.1内核】【使用天启Firefly的DTS】
2026/1/27 15:38


缘起:让天启AIO-3576Q38开发板跑Rockchip瑞芯微原厂的Buildroot【linux-6.1内核】。
为了简单起见,直接【使用天启Firefly的DTS】
原始编译的也可以启动的,就是没有HDMI显示,其它全部的模块都不能用而已!^_


当你把荣品RD-RK3588开发板重新适配一把,就相当于从头做了一个项目:【荣品RD-RK3588开发板】。
当然,开发板的功能都是好的,你免除了调试的过程,也就没有解决相关硬件出错的经验/机会了!


1、直接改名 rk3576-firefly-aio-3576q38.dts 为 rk3576-evb1-v10-linux.dts
Z:\git_RK3576_Linux6.1\kernel-6.1\arch\arm64\boot\dts\rockchip\rk3576-firefly-aio-3576q38.dts
Z:\git_RK3576_Linux6.1\kernel-6.1\arch\arm64\boot\dts\rockchip\rk3576-evb1-v10-linux.dts

【备选修改:】
Z:\git_RK3576_Linux6.1\device\rockchip\.chips\rk3576\rockchip_rk3576_evb1_v10_defconfig

RK_ROOTFS_SYSTEM_DEBIAN=n
RK_UBOOT_SPL=y
RK_KERNEL_DTS_NAME="rk3576-evb1-v10-linux"

RK_USE_FIT_IMG=y


Z:\Linux_SDK\Firefly_SDK\device\rockchip\.chips\rk3576\firefly_rk3576_aio-3576q38_buildroot_defconfig

#include "firefly.config"
RK_KERNEL_DTS_NAME="rk3576-firefly-aio-3576q38"
RK_PRODUCT_MODEL="AIO-3576Q38"


2、编译的时候DTSI出错:
Image(no-signed): rk3576_idblock_v1.09.107.img (with spl, ddr...) is ready
pack uboot.img okay! Input: /home/rootroot/git_RK3576_Linux6.1/rkbin/RKTRUST/RK3576TRUST.ini

Platform RK3576 is build OK, with new .config(make rk3576_defconfig -j48)
/home/rootroot/git_RK3576_Linux6.1/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
Tue Jan 27 10:57:30 CST 2026
+ cd ..
Running mk-loader.sh - build_uboot succeeded.
Using kernel version(6.1) from environment
Toolchain for kernel:
/home/rootroot/git_RK3576_Linux6.1/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

==========================================
Start building kernel
==========================================
# Found kernel's basic config fragment: rk3576.config
+ make -C /home/rootroot/git_RK3576_Linux6.1/kernel/ -j25 CROSS_COMPILE=/home/rootroot/git_RK3576_Linux6.1/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rockchip_linux_defconfig rk3576.config
make: Entering directory '/home/rootroot/git_RK3576_Linux6.1/kernel-6.1'
#
# configuration written to .config
#
Using .config as base
Merging ./arch/arm64/configs/rk3576.config
Value of CONFIG_TOUCHSCREEN_GT9XX is redefined by fragment ./arch/arm64/configs/rk3576.config:
Previous value: # CONFIG_TOUCHSCREEN_GT9XX is not set
New value: CONFIG_TOUCHSCREEN_GT9XX=y

Value of CONFIG_BLK_DEV_RAM_COUNT is redefined by fragment ./arch/arm64/configs/rk3576.config:
Previous value: CONFIG_BLK_DEV_RAM_COUNT=1
New value: CONFIG_BLK_DEV_RAM_COUNT=16

#
# merged configuration written to .config (needs make)
#
#
# configuration written to .config
#
make: Leaving directory '/home/rootroot/git_RK3576_Linux6.1/kernel-6.1'
+ make -C /home/rootroot/git_RK3576_Linux6.1/kernel/ -j25 CROSS_COMPILE=/home/rootroot/git_RK3576_Linux6.1/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rk3576-evb1-v10-linux.img
make: Entering directory '/home/rootroot/git_RK3576_Linux6.1/kernel-6.1'
SYNC include/config/auto.conf.cmd
DTC arch/arm64/boot/dts/rockchip/rk3576-evb1-v10-linux.dtb
Error: arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q38.dtsi:52.20-21 syntax error
FATAL ERROR: Unable to parse input tree
make[3]: *** [scripts/Makefile.lib:419: arch/arm64/boot/dts/rockchip/rk3576-evb1-v10-linux.dtb] Error 1
make[2]: *** [scripts/Makefile.build:503: arch/arm64/boot/dts/rockchip] Error 2
make[1]: *** [Makefile:1466: rockchip/rk3576-evb1-v10-linux.dtb] Error 2
make[1]: *** Waiting for unfinished jobs....
CALL scripts/checksyscalls.sh
make: *** [arch/arm64/Makefile:221: rk3576-evb1-v10-linux.img] Error 2
make: Leaving directory '/home/rootroot/git_RK3576_Linux6.1/kernel-6.1'
ERROR: Running /home/rootroot/git_RK3576_Linux6.1/device/rockchip/common/scripts/mk-kernel.sh - run_command failed!
ERROR: exit code 2 from line 36:
$@
ERROR: call stack:
build-helper: run_command(36)
mk-kernel.sh: do_build(79)
mk-kernel.sh: build_hook(438)
mk-kernel.sh: main(496)
ERROR: Running /home/rootroot/git_RK3576_Linux6.1/device/rockchip/common/build-hooks/99-all.sh - build_all failed!
ERROR: exit code 2 from line 20:
"$RK_SCRIPTS_DIR/mk-kernel.sh"
ERROR: call stack:
99-all.sh: build_all(20)
99-all.sh: build_hook(136)
build-helper: try_func(63)
build-helper: try_hook(96)
build-helper: source(165)
99-all.sh: main(147)
ERROR: Running /home/rootroot/git_RK3576_Linux6.1/device/rockchip/common/build-hooks/99-all.sh - try_func build_hook all failed!
ERROR: exit code 2 from line 67:
build_hook
ERROR: call stack:
build-helper: try_func(67)
build-helper: try_hook(96)
build-helper: source(165)
99-all.sh: main(147)

rootroot@rootroot-X99-Turbo:~/git_RK3576_Linux6.1$


3、
Z:\git_RK3576_Linux6.1\kernel-6.1\.config

CONFIG_GPIO_ROCKCHIP=y
# CONFIG_GPIO_SIFIVE is not set
CONFIG_GPIO_SYSCON=y
# CONFIG_GPIO_XGENE is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers

#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_AW9110 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_NCA9539 is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders

#
# MFD GPIO expanders
#
# CONFIG_GPIO_TPS6586X is not set
# end of MFD GPIO expanders

#
# PCI GPIO expanders
#
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_PCI_IDIO_16 is not set
# CONFIG_GPIO_PCIE_IDIO_24 is not set
# CONFIG_GPIO_RDC321X is not set
# end of PCI GPIO expanders

#
# SPI GPIO expanders
#
# CONFIG_GPIO_74X164 is not set
# CONFIG_GPIO_MAX3191X is not set
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_XRA1403 is not set
# end of SPI GPIO expanders

#
# USB GPIO expanders
#
# end of USB GPIO expanders

#
# Virtual GPIO drivers
#
# CONFIG_GPIO_AGGREGATOR is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_VIRTIO is not set
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers

# CONFIG_W1 is not set
CONFIG_POWER_RESET=y
# CONFIG_POWER_RESET_BRCMSTB is not set
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y


Z:\git_RK3576_Linux6.1\kernel-6.1\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_GPIO_SYSCON=y
CONFIG_POWER_RESET_GPIO=y

修改为:

CONFIG_GPIO_SYSCON=y
CONFIG_GPIO_PCA953X=y
CONFIG_POWER_RESET_GPIO=y


4、
Z:\git_RK3576_Linux6.1\kernel-6.1\drivers\gpio\gpio-pca953x.c
Z:\git_RK3576_Linux6.1\kernel-6.1\drivers\gpio\Kconfig
Z:\git_RK3576_Linux6.1\kernel-6.1\drivers\gpio\Makefile


5、
Z:\git_RK3576_Linux6.1\kernel-6.1\include\dt-bindings\pinctrl\rockchip.h
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Header providing constants for Rockchip pinctrl bindings.
*
* Copyright (c) 2013 MundoReader S.L.
* Author: Heiko Stuebner <heiko@sntech.de>
*/

#ifndef __DT_BINDINGS_ROCKCHIP_PINCTRL_H__
#define __DT_BINDINGS_ROCKCHIP_PINCTRL_H__

#define RK_PA0 0
#define RK_PA1 1
#define RK_PA2 2
#define RK_PA3 3
#define RK_PA4 4
#define RK_PA5 5
#define RK_PA6 6
#define RK_PA7 7
#define RK_PB0 8
#define RK_PB1 9
#define RK_PB2 10
#define RK_PB3 11
#define RK_PB4 12
#define RK_PB5 13
#define RK_PB6 14
#define RK_PB7 15
#define RK_PC0 16
#define RK_PC1 17
#define RK_PC2 18
#define RK_PC3 19
#define RK_PC4 20
#define RK_PC5 21
#define RK_PC6 22
#define RK_PC7 23
#define RK_PD0 24
#define RK_PD1 25
#define RK_PD2 26
#define RK_PD3 27
#define RK_PD4 28
#define RK_PD5 29
#define RK_PD6 30
#define RK_PD7 31

#define RK_FUNC_GPIO 0

//PCA953X
#define PCA_IO0_0 0
#define PCA_IO0_1 1
#define PCA_IO0_2 2
#define PCA_IO0_3 3
#define PCA_IO0_4 4
#define PCA_IO0_5 5
#define PCA_IO0_6 6
#define PCA_IO0_7 7
#define PCA_IO1_0 8
#define PCA_IO1_1 9
#define PCA_IO1_2 10
#define PCA_IO1_3 11
#define PCA_IO1_4 12
#define PCA_IO1_5 13
#define PCA_IO1_6 14
#define PCA_IO1_7 15

#endif

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 13:52:57

基于Simulink的电机轴电压与轴电流抑制仿真

目录 手把手教你学Simulink 一、引言:为什么“新电机用半年就轴承烧毁”?——轴电压是隐形杀手! 二、轴电压产生机理:从PWM到轴承电蚀的路径 1. 共模电压来源 2. 耦合路径:寄生电容网络 三、应用场景:新能源汽车驱动电机的轴承保护设计 系统参数 设计目标 四、建…

作者头像 李华
网站建设 2026/4/18 0:41:14

基于SpringBoot的网上蛋糕售卖店管理系统毕设源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。 一、研究目的 本研究旨在设计并实现一个基于SpringBoot框架的网上蛋糕售卖店管理系统&#xff0c;以满足现代电子商务环境下蛋糕售卖行业的业务需求。具体研究目的如下&am…

作者头像 李华
网站建设 2026/4/18 8:15:29

Windows Telephony 服务权限提升漏洞(CVE-2026-20931)

前言 在不断演变的网络安全领域&#xff0c;即使现代基础设施正在远离过时技术&#xff0c;Windows遗留服务中的漏洞仍继续构成重大风险。最近&#xff0c;Positive Technologies的研究人员发现了一个关键的远程代码执行&#xff08;RCE&#xff09;漏洞&#xff0c;该漏洞位于…

作者头像 李华
网站建设 2026/4/18 8:30:17

哪些参考因素可以体现Java系统的性能?

上月公司来了一位大佬&#xff0c;入职不到一周就把公司现有项目的性能优化了一遍&#xff0c;直接给公司节省了一半的成本。一问情况&#xff0c;才知道这位仁兄也是一路被虐过来的。去年年底被裁&#xff0c;本以为自己技术还行&#xff0c;看了一段时间面经&#xff0c;复习…

作者头像 李华
网站建设 2026/4/18 8:40:04

网络安全kali渗透学习之web渗透入门—WireShark抓包及常用协议分析,黑客技术零基础入门到精通实战教程!

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换。 这篇文章教大家WireShark抓包及常用协议分析 WireShark的应用 网络管理…

作者头像 李华
网站建设 2026/4/18 10:08:32

2025年主流Web自动化测试工具对比与推荐

Web自动化测试是保障软件质量与交付效率的关键手段&#xff0c;其核心在于通过脚本或工具模拟用户操作&#xff0c;对Web应用的功能、兼容性、性能等维度进行高效验证。2025年&#xff0c;随着企业数字化进程加速与测试需求复杂化&#xff0c;主流Web自动化测试工具在技术架构、…

作者头像 李华