Linux BSP User Guide for rk3568 series Debian10
Contents
Linux BSP Version
Debian 10.x
Kernel 4.19.172
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the latest version of advrisc/u18.04-rklbv1 Docker image for developing Rockchip RK3399 projects.
Docker command:
docker pull advrisc/u18.04-rklbv1
Run Docker example
Step1 Run docker container (example)
sudo docker run -it --name rk3399_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u18.04-rklbv1:latest /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Install Some tools
$sudo apt-get install expect $
Getting Linux Source Code
Debian 9.x / Ubuntu18.04
$ cd ~/BSP $ sudo git clone https://github.com/rockchip-linux/repo.git $ mkdir rk3399_linux_risc $ cd rk3399_linux_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ ../repo/repo init -u https://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v231_risc -m default.xml $ ../repo/repo sync $ ../repo/repo forall -c git checkout -b local --track advantech-github/rk3399_linux_v231_risc $
Debian 10.x
$ cd ~/BSP $ sudo git clone https://github.com/rockchip-linux/repo.git $ mkdir rk3399_linux_risc $ cd rk3399_linux_risc $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ ../repo/repo init -u https://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v251_risc -m default.xml $ ../repo/repo sync $ ../repo/repo forall -c git checkout -b local --track advantech-github/rk3399_linux_v251_risc $
Build U-boot
Build RSB-3710 U-boot
$ export TOP=`pwd` $ cd $TOP $ cd u-boot $ ./make.sh rk3399_rsb3710a2_2G
Build RSB-4710 U-boot
$ export TOP=`pwd` $ cd $TOP $ cd u-boot $ ./make.sh rk3399_rsb4710a2_2G
Build ROM-5780 U-boot
$ export TOP=`pwd` $ cd $TOP $ cd u-boot $ ./make.sh rk3399_rom5780a3_2G
Build Kernel
Build RSB-3710 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3399_adv_defconfig -j8 $ make ARCH=arm64 rk3399-rsb3710-a2.img -j12
Build RSB-4710 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3399_adv_defconfig -j8 $ make ARCH=arm64 rk3399-rsb4710-a2.img -j12
Build ROM-5780 Kernel
$ cd $TOP $ cd kernel $ make ARCH=arm64 rk3399_adv_defconfig -j8 $ make ARCH=arm64 rk3399-rom5780-a3.img -j12
Build Recovery
$ cd $TOP $ rm buildroot/output/rockchip_rk3399_recovery -rf $ source envsetup.sh rockchip_rk3399_recovery $ ./build.sh recovery
Build Debian 9.x / Debian 10.x
$ cd $TOP $ source envsetup.sh rockchip_rk3399 $ sudo BUILD_IN_DOCKER=TRUE ./mk-debian.sh
Build ubuntu 18.04
$ cd $TOP $ source envsetup.sh rockchip_rk3399 $ cd rootfs_adv/ubuntu18.04/ $ sudo ./mk-ubuntu.sh $
You can get ubuntu 18.04 "rootfs.img" in the fold "rootfs_adv/ubuntu18.04" .
Push all image to rockdev folder
$ ./mkfirmware.sh
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:
# board.img # boot.img # misc.img # oem.img # recovery.img # rootfs.img # uboot.img # trust.img # MiniLoaderAll.bin # parameter.txt #
Make update.img
$ cd $TOP $ source envsetup.sh rockchip_rk3399 $ ./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.