Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Youyeetoo Rockchip BSP

Board Support Package and build framework for Youyeetoo single-board computers based on Rockchip SoCs. This repository contains the SDK glue (build scripts, device configs, Rockchip-overlay userspace) and is the entry point for building bootable firmware.

The flow follows Rockchip's reference Linux SDK layout: the kernel, U-Boot, signed bootloader blobs, Buildroot tree and rootfs overlays each live in their own sibling repository under github.com/youyeetoo and are stitched together at build time.

Supported boards

Board SoC Defconfig
YY3588 Rockchip RK3588 rockchip_rk3588_evb7_v11_yyt_defconfig (default)
YY3588 Rockchip RK3588 rockchip_rk3588_evb1_lp4_v10_yyt_defconfig

Additional Youyeetoo boards plug into the same SDK layout — see Adding a new board.

Repository layout

Repository Contents
yy3588_sdk-bsp (this repo) Build framework: compile.sh, device/rockchip/*, scripts
yy3588_linux Rockchip BSP 6.1 kernel with Youyeetoo board patches
yy3588_u-boot Rockchip BSP rkr3 U-Boot with Youyeetoo board patches
yy3588_rkbin Signed bootloader / TEE / DDR init blobs (Rockchip)
yy3588_buildroot Rockchip Buildroot fork
yy3588_extras Per-board rootfs builders (Debian, Ubuntu), prebuilts, docs

The YY3588 line on kernel 6.1 lives on the main branch of each repository. Additional boards get their own yy3588_<board>_* repositories rather than a branch.

Requirements

A Linux host with:

  • git, bash, ~30 GB free disk
  • Docker (default; auto-installed via apt-get when missing), or a clean Ubuntu 22.04 LTS host if you build without the container

The Docker image bundles every other build dependency (cross-toolchains, live-build, qemu-user-static, debootstrap, mtools, parted, …) so the host needs nothing else.

Quick start

# 1. Clone all six repositories side by side
mkdir youyeetoo && cd youyeetoo
for r in yy3588_sdk-bsp yy3588_linux yy3588_u-boot yy3588_rkbin yy3588_buildroot yy3588_extras; do
    git clone --branch main "https://github.com/youyeetoo/$r.git"
done

# 2. Build
cd yy3588_sdk-bsp
./compile.sh                         # interactive whiptail menu
./compile.sh image debian            # or: direct subcommand

compile.sh detects sibling repositories automatically by walking up one directory from its own location. The first run also builds the Docker builder image (~2 GB, cached afterwards).

compile.sh reference

Targets

Target Result
image [userspace] Full bootable chain: kernel + U-Boot + recovery + rootfs + update.img. userspace is one of buildroot (default), debian, ubuntu
kernel Kernel image and modules
u-boot U-Boot + loader (uboot.img, MiniLoaderAll.bin)
recovery Recovery initramfs (recovery.img)
rootfs Default rootfs (Buildroot)
debian Debian 12 (bookworm) rootfs via live-build
ubuntu Ubuntu 22.04 LTS (jammy) rootfs via live-build
updateimg Repack update.img from existing partition images
clean Wipe outputs and chroot trees
fetch Clone / symlink sources without building
shell Interactive shell inside the stitched build tree

Flags

Flag Effect
--arch arm64|armhf Target architecture for the rootfs (default arm64)
--version <suite> Debian / Ubuntu suite (bookworm, jammy, …)
--defconfig <name> Board defconfig (default rockchip_rk3588_evb7_v11_yyt_defconfig)
--no-docker Run on the host. Only safe on Ubuntu 22.04 LTS
-y, --yes Skip the interactive confirmation prompt
-h, --help Show usage

Environment overrides

Variable Default Purpose
LOCAL_BASE parent of yy3588_sdk-bsp/ Sibling repo checkout root
REMOTE_BASE https://github.com/youyeetoo Upstream when a sibling is missing locally
RELEASE main Branch / tag to clone
DOCKER_IMAGE yy3588-sdk-build:ubuntu22.04 Builder image tag

Build output

All artifacts are surfaced into output/:

output/
├── boot.img                                  # kernel + DTB
├── uboot.img                                 # U-Boot
├── MiniLoaderAll.bin                         # SPL + loader
├── recovery.img                              # recovery initramfs
├── oem.img, userdata.img                     # OEM / user data partitions
├── rootfs.img                                # userspace partition
├── update.img                                # full flashable image (Rockchip tool)
├── yy3588-<distro>-<arch>_<date>.img         # labelled copy of update.img
└── yy3588-<distro>-<arch>_rootfs_<date>.img  # labelled copy of rootfs.img

The labelled copies make it obvious which distribution and date an image corresponds to; the unlabelled originals are preserved so any downstream tooling that expects update.img keeps working.

Flash update.img with Rockchip RKDevTool in MaskROM / Loader mode, or write rootfs.img to an SD card.

Build tree and caching

compile.sh keeps the SDK checkout clean by never placing intermediate files at the top of the working directory:

yy3588_sdk-bsp/
├── compile.sh
├── Dockerfile
├── device/rockchip/      # board configs + build scripts
├── external/             # in-repo userspace components
├── cache/                # all derived state (gitignored)
│   ├── sources/          # symlinks into LOCAL_BASE/* or clones
│   └── .build-tree/      # stitched view that Rockchip's build.sh sees
└── output/               # final artifacts

The stitched build tree is what Rockchip's reference build.sh operates on. Sibling repositories are bind-mounted (in Docker) or symlinked (on a bare host) into it, so a single source tree can drive both flows without copies.

Adding a new board

The SDK is board-agnostic. To add a new Youyeetoo board to this framework:

  1. Add the board defconfig under device/rockchip/<soc-family>/rockchip_<soc>_<board>_defconfig (use an existing Rockchip EVB defconfig as a starting point).
  2. Add the device tree to yy3588_linux/arch/arm64/boot/dts/rockchip/.
  3. Add the U-Boot board files to yy3588_u-boot/.
  4. Build with ./compile.sh --defconfig <your-defconfig> image.

The same compile.sh flow, Docker image, and rootfs builders apply unchanged.

Excluded from this distribution

These components ship in Youyeetoo's commercial SDK tarball but are not included in the public repositories:

  • external/libmali — ARM Mali GPU userspace, distributed under the ARM proprietary EULA
  • external/camera_engine_rkaiq — Rockchip closed-source ISP middleware
  • Pre-built Debian / Ubuntu rootfs tarballs — distributed separately via the Youyeetoo wiki
  • prebuilts/gcc-arm-* cross-toolchains — installed by the Docker image from distribution packages
  • external/rknpu2, external/rknn-toolkit2 — use upstream rockchip-linux/rknpu2 and rockchip-linux/rknn-toolkit2
  • external/mpp — use upstream rockchip-linux/mpp

Builds that need Mali graphics, the closed-source ISP middleware, or the pre-built rootfs images should request the full SDK tarball from Youyeetoo support.

License

This repository contains code under multiple licenses:

  • Files under device/rockchip/ derive from the upstream Rockchip Linux SDK and inherit its license (free to redistribute as part of an SDK).
  • The build wrappers (compile.sh, Dockerfile, device/rockchip/common/scripts/yy3588-build.sh) are released under the same permissive terms as the SDK they wrap.
  • Sibling repositories (yy3588_linux, yy3588_u-boot, yy3588_buildroot) retain the licenses of their upstream projects (GPL-2.0, etc.); see their respective COPYING files.

Refer to each component's source tree for the authoritative license information.

Support

For questions about Youyeetoo hardware, refer to the Youyeetoo wiki and the YY3588 product page.

Issues with the SDK code itself can be reported on the GitHub repository for the relevant component.

About

Youyeetoo YY3588 (Rockchip RK3588) SDK: build framework (sdk-bsp)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages