Linux BSP User Guide for rk3568 series Debian10
Contents
- 1 Linux BSP Version
- 2 Build Environment on Host
- 3 Run Docker example
- 4 Install Some tools
- 5 Getting Linux Source Code
- 6 Build U-boot
- 7 Build Kernel
- 8 Build Recovery
- 9 Build Debian 9.x / Debian 10.x
- 10 Build ubuntu 18.04
- 11 Push all image to rockdev folder
- 12 Make update.img
- 13 How to update images?
- 13.1 <a href="1.%20Using%20AndroidToool.">1._Using_AndroidToool.</a>
- 13.2 <a href="2.%20Using%20SD%20with%20update.img%20in%20it%20for%20Linux%20BSP">2._Using_storage(such sd_or_USB_disk)with_update.zip_in_it.</a>
- 13.3 <a href="3.%20Using%20bootup%20sd%20disk%20made%20by%20SDDiskTool.">3._Using_bootup_sd_disk made_by SDDiskTool.</a>
Linux BSP Version
Debian 10.x
Kernel 4.19.172
Build Environment on Host
Currently, we adopt <a href="https://www.docker.com/" alt="https://www.docker.com/" title="https://www.docker.com/">Docker</a> 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:
<a href="1.%20Using%20AndroidToool.">1._Using_AndroidToool.</a>
There is no limitation by this way.
<a href="2.%20Using%20SD%20with%20update.img%20in%20it%20for%20Linux%20BSP">2._Using_storage(such sd_or_USB_disk)with_update.zip_in_it.</a>
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.
<a href="3.%20Using%20bootup%20sd%20disk%20made%20by%20SDDiskTool.">3._Using_bootup_sd_disk made_by SDDiskTool.</a>
(1)Only update images from the same os, eg :
Debian upgrade to Debian.
(2)Using update.img to upgrade.