Skip to main content

Linux BSP User Guide for RK3588 Series Debian11

1. Introduction


This document provides comprehensive instructions for building and deploying Linux BSP for RK3588 series platforms running Debian11. The guide covers environment setup, source code acquisition, building processes for multiple processors platforms, and deployment methods.

2. Linux BSP Version


  • OS: Debian 11.x
  • Kernel: 5.10.xxx

3. Build Environment on Host


Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u20.04-rklbv1 Docker image for developing Rockchip RK3588 projects.

3.1 Docker Installation Commands

$ sudo apt-get update
$ sudo apt-get install -y qemu-user-static
$ sudo apt-get install -y live-build
$ sudo docker pull advrisc/u20.04-rklbv1

3.2 Run Docker Example

  • Step 1: Run Docker Container
    Assume your working directory is home/bsp/myLinux and the Docker container name is rk3588_linux_risc.
    Replace home/bsp/myLinux and rk3588_linux_risc with the actual ones based on your environment.
$ export WORKSPACE="home/bsp/myLinux"
$ export CONTAINER_NAME="rk3588_linux_risc"
$ sudo docker run -it --name ${CONTAINER_NAME} -v ${WORKSPACE}:/home/adv/BSP:rw --privileged advrisc/u20.04-rklbv1:latest /bin/bash
  • Step 2: Change User in Container
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
  • Step 3: Install build dependencies in Container

    • Install live build

      adv@7cc0fa834366:~$ cd ~
      adv@7cc0fa834366:~$ git clone https://salsa.debian.org/live-team/live-build.git --depth 1 -b debian/1%20230131
      adv@7cc0fa834366:~$ cd live-build
      adv@7cc0fa834366:~$ rm -rf manpages/po/
      adv@7cc0fa834366:~$ sudo make install -j8
      adv@7cc0fa834366:~$ cd ~
      adv@7cc0fa834366:~$ rm -rf live-build
    • Install qemeu and binfmts

      adv@7cc0fa834366:~$ sudo apt-get update
      adv@7cc0fa834366:~$ sudo apt-get install binfmt-support qemu-user-static --reinstall
      adv@7cc0fa834366:~$ sudo update-binfmts --enable qemu-aarch64
    • Install gettext

      adv@7cc0fa834366:~$ sudo apt-get update
      adv@7cc0fa834366:~$ sudo apt-get install gettext -y

4. Getting Linux Source Code


Please contact PM to get BSP.

If you have BSP tarball (e.g., ROM6881A1AIM20DBV106015_2025-05-29.bsp.tgz), then you have to copy it into container.

Follow the steps below:

1. Exit Container and Return to Local Machine

$ exit

2. Copy BSP Tarball to Workspace and Change Owner

$ export BSP_TARBALL="ROM6881A1AIM20DBV106015_2025-05-29.bsp.tgz"
$ cp ${BSP_TARBALL} ${WORKSPACE}
$ sudo chown adv:adv ${WORKSPACE}/${BSP_TARBALL}

3. Return to Container

$ docker start ${CONTAINER_NAME}
$ docker attach ${CONTAINER_NAME}

4. Unpack BSP Tarball

$ tar zxvf ${BSP_TARBALL}
NOTE
  • BSP tarball is for fast developing uboot and kernel.
  • BSP tarball does NOT support building recovery debian and update.img.

5. Building


5.1 Choose Project

  • Build ROM-6881 Project
$ export TOP=`pwd`
$ cd $TOP
$ ./build.sh adv_rk3588_rom6881a1_defconfig

5.2 Build U-boot

$ cd $TOP
$ ./build.sh uboot

5.3 Build Kernel

$ cd $TOP
$ ./build.sh kernel

5.4 Build Recovery

$ cd $TOP
$ rm buildroot/output/rockchip_rk3588_recovery -rf
$ ./build.sh recovery

5.5 Build Debian 11.x

$ cd $TOP
$ ./build.sh debian

5.6 Push All Images to Rockdev Folder

$ cd $TOP
$ ./build.sh firmware

The common image files in rockdev/ directory are listed below:

boot.img
misc.img
oem.img
recovery.img
rootfs.img
uboot.img
userdata.img
MiniLoaderAll.bin
parameter.txt

5.7 Make update.img

$ cd $TOP
$ sudo apt-get install bsdmainutils
$ ./build.sh updateimg

You can get update.img in rockdev/ directory.

6. Update Images


There are three ways to update images:

6.1 Using RKDevTool via USB Cable

There is no limitation by this method.

6.2 Local OTA

There are some limitations:

  1. The device must be able to boot up to Debian
  2. Only update images from the same OS (e.g., Debian upgrade to Debian)
  3. Using update.img to upgrade

6.3 Via SD card

  1. Only update images from the same OS (e.g., Debian upgrade to Debian)
  2. Using update.img to upgrade

7. Summary


7.1 Supported Hardware Platforms

  • ROM-6881: Industrial Computer-on-Module with RK3588 processor
  • AOM-3821: AIoT Module with RK3588 processor
  • ASR-A501: AI Edge Server with RK3588 processor
    • B2B EG90 variant
    • B2B RM01 variant
    • B2B RM02 variant

7.2 System Requirements

  • Docker environment with advrisc/u20.04-rklbv1 image
  • Ubuntu 20.04 base system
  • BSP tarball from PM
  • Build tools and dependencies
  • Sufficient disk space for source code and build artifacts
  • Internet connection for package installation
  • Target processors (ROM-6881, AOM-3821, or ASR-A501 variants)

7.3 Build Workflow Summary

  1. Environment Setup → Docker + Ubuntu 20.04
  2. Source Acquisition → BSP tarball from PM
  3. Project Selection → Choose target processors platform
  4. Component Build → U-boot → Kernel → (Recovery)* → (Debian)*
  5. Image Generation → Firmware packaging → (Update image)*
  6. Deployment → AndroidTool, SD/USB storage, or SDDiskTool

Components marked with asterisk () are not supported in BSP tarball mode.

7.4 Development Modes

7.4.1 BSP Tarball Mode (Limited)

  • Use Case: Quick U-boot and kernel development
  • Advantages: Fast setup, smaller download size
  • Limitations: Cannot build recovery, debian, or update images
Important Notes about BSP Tarball

The BSP tarball is designed for fast development of uboot and kernel components. However, it has some limitations.

  • Supported: U-boot building
  • Supported: Kernel building
  • NOT Supported: Recovery building
  • NOT Supported: Debian building
  • NOT Supported: Update image building

For full BSP functionality including recovery, debian, and update image building, please contact your PM for the complete SDK.

7.4.2 Full SDK Mode (Complete)

  • Use Case: Complete system development and customization
  • Advantages: Full build capability, all components supported
  • Requirements: Contact PM for access