Linux BSP User Guide for rk3568 series Debian11
Contents
Linux BSP Version
Debian 11.x
Kernel 5.10.160
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 RK3568 projects.
Docker command:
sudo docker pull advrisc/u20.04-rklbv1
Run Docker example
Step1 Run docker container (example)
sudo docker run -it --name rk356x_linux5.10_v130_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u20.04-rklbv1:latest /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Getting Linux Source Code
$ cd ~/BSP $ git clone https://github.com/ADVANTECH-Rockchip/repo.git $ mkdir rk356x_linux5.10_v130_risc $ cd rk356x_linux5.10_v130_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3568-Linux/_git/manifest -b rk356x_linux5.10_v130_risc -m default.xml $ ../repo/repo sync $ ../repo/repo forall -c git checkout -b local --track advantech-azure/rk356x_linux5.10_v130_risc $
Build Choose Project
Build Choose Project RSB-4810
$ export TOP=`pwd` $ cd $TOP $ ./build.sh adv_rk3568_rsb4810a2_defconfig $
Build Choose Project ROM-5880
$ export TOP=`pwd` $ cd $TOP $ ln -rfs device/rockchip/.target_product/BoardConfig-rk3568-rom5880a1.mk device/rockchip/.BoardConfig.mk $
Build Choose Project KEDGE-350
$ export TOP=`pwd` $ cd $TOP $ ln -rfs device/rockchip/.target_product/BoardConfig-rk3568-kedge350a1.mk device/rockchip/.BoardConfig.mk $
Build Choose Project EBC-RB07
$ export TOP=`pwd` $ cd $TOP $ ln -rfs device/rockchip/.target_product/BoardConfig-rk3568-ebcrb07a1.mk device/rockchip/.BoardConfig.mk $
Build U-boot
$ cd $TOP $ ./build.sh uboot
Build Kernel
Build RSB-4810 Kernel
$ cd $TOP $ ./build.sh kernel
Build ROM-5880 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3568_adv_defconfig -j8 $ make ARCH=arm64 rk3568-rom5880-a1.img -j12
Build KEDGE-350 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3568_adv_defconfig -j8 $ make ARCH=arm64 rk3568-kedge350-a1.img -j12
Build EBC-RB07 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3568_adv_defconfig -j8 $ make ARCH=arm64 rk3568-ebcrb07-a1.img -j12
Build Recovery
$ cd $TOP $ rm buildroot/output/rockchip_rk3568_recovery -rf $ ./build.sh recovery
Build Debian 11.x
$ cd $TOP $ sudo dpkg -i debian/ubuntu-build-service/packages/* $ sudo apt-get install -f -y $ ./build.sh debian
Push all image to rockdev folder
$ cd $TOP $ ./build.sh firmware
All image in rockdev/ ./mkfirmware.sh at previous step will repack boot.img and rootfs.img, and copy other related image files to the rockdev/ directory. The common image files are listed below:
# boot.img # misc.img # oem.img # recovery.img # rootfs.img # uboot.img # userdata.img # MiniLoaderAll.bin # parameter.txt #
Make update.img
$ cd $TOP $ ./build.sh updateimg
You can get update.img in rockdev/
How to update images?
There are three ways to update images:
1._Using_AndroidToool.
There is no limitation by this way.
2._Using_storage(such sd_or_USB_disk)with_update.zip_in_it.
There are some limitations:
(1)The device must be able to boot up to Debian.
(2)Only update images from the same os, eg :
Debian upgrade to Debian.
(3)Using update.img to upgrade.
3._Using_bootup_sd_disk made_by SDDiskTool.
(1)Only update images from the same os, eg :
Debian upgrade to Debian.
(2)Using update.img to upgrade.