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.
| 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 | 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.
A Linux host with:
git,bash, ~30 GB free disk- Docker (default; auto-installed via
apt-getwhen 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.
# 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 subcommandcompile.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).
| 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 |
| 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 |
| 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 |
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.
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.
The SDK is board-agnostic. To add a new Youyeetoo board to this framework:
- Add the board defconfig under
device/rockchip/<soc-family>/rockchip_<soc>_<board>_defconfig(use an existing Rockchip EVB defconfig as a starting point). - Add the device tree to
yy3588_linux/arch/arm64/boot/dts/rockchip/. - Add the U-Boot board files to
yy3588_u-boot/. - Build with
./compile.sh --defconfig <your-defconfig> image.
The same compile.sh flow, Docker image, and rootfs builders apply unchanged.
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 EULAexternal/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 packagesexternal/rknpu2,external/rknn-toolkit2— use upstreamrockchip-linux/rknpu2androckchip-linux/rknn-toolkit2external/mpp— use upstreamrockchip-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.
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 respectiveCOPYINGfiles.
Refer to each component's source tree for the authoritative license information.
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.