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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐