Difference between revisions of "Debian BSP User Guide for rk3399 risc series"
From ESS-WIKI
Yunjin.jiang (talk | contribs) |
|||
(36 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | |||
== Linux BSP Version == | == Linux BSP Version == | ||
− | Debian 9.x / Ubuntu | + | Debian 9.x / Debian 10.x |
+ | |||
+ | <!-- Ubuntu 18.04 --> | ||
Kernel 4.4.194 | Kernel 4.4.194 | ||
Line 9: | Line 12: | ||
Currently, we adopt [https://www.docker.com/ Docker] as build environment. | Currently, we adopt [https://www.docker.com/ Docker] as build environment. | ||
− | You can get the latest version of | + | You can get the latest version of advrisc/u18.04-rklbv1 Docker image for developing Rockchip RK3399 projects. |
Docker command: | Docker command: | ||
− | <pre>docker pull advrisc/ | + | <pre>docker pull advrisc/u18.04-rklbv1</pre> |
== Run Docker example == | == Run Docker example == | ||
Step1 Run docker container (example) | Step1 Run docker container (example) | ||
− | <pre>docker run -it --name | + | <pre>sudo docker run -it --name rk3399_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u18.04-rklbv1:latest /bin/bash |
</pre> | </pre> | ||
Step2 In container, change the user. (example) | Step2 In container, change the user. (example) | ||
− | + | | |
<pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP | <pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP | ||
</pre> | </pre> | ||
+ | |||
+ | == Install Some tools == | ||
+ | <pre>$sudo apt-get install expect | ||
+ | $</pre> | ||
== Getting Linux Source Code == | == Getting Linux Source Code == | ||
− | <pre>$ cd ~/ | + | |
− | $ sudo git clone https://github.com/ | + | Debian 9.x |
+ | <pre>$ cd ~/BSP | ||
+ | $ sudo git clone https://github.com/ADVANTECH-Rockchip/repo.git | ||
$ mkdir rk3399_linux_risc | $ mkdir rk3399_linux_risc | ||
$ cd rk3399_linux_risc | $ cd rk3399_linux_risc | ||
Line 38: | Line 47: | ||
$ | $ | ||
</pre> | </pre> | ||
+ | |||
+ | Debian 10.x | ||
+ | <pre>$ cd ~/BSP | ||
+ | $ sudo git clone https://github.com/ADVANTECH-Rockchip/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 | ||
+ | $ </pre> | ||
== Build U-boot == | == Build U-boot == | ||
+ | |||
+ | === Build RSB-3710 U-boot === | ||
+ | <pre>$ export TOP=`pwd` | ||
+ | $ cd $TOP | ||
+ | $ cd u-boot | ||
+ | $ ./make.sh rk3399_rsb3710a2_2G | ||
+ | </pre> | ||
+ | |||
+ | === Build RSB-4710 U-boot === | ||
<pre>$ export TOP=`pwd` | <pre>$ export TOP=`pwd` | ||
$ cd $TOP | $ cd $TOP | ||
$ cd u-boot | $ cd u-boot | ||
$ ./make.sh rk3399_rsb4710a2_2G | $ ./make.sh rk3399_rsb4710a2_2G | ||
+ | </pre> | ||
+ | |||
+ | === Build ROM-5780 U-boot === | ||
+ | <pre>$ export TOP=`pwd` | ||
+ | $ cd $TOP $ cd u-boot | ||
+ | $ ./make.sh rk3399_rom5780a3_2G | ||
</pre> | </pre> | ||
== Build Kernel == | == Build Kernel == | ||
− | === Build | + | === Build RSB-3710 Kernel === |
<pre>$ cd $TOP | <pre>$ cd $TOP | ||
$ cd kernel | $ cd kernel | ||
$ make ARCH=arm64 rk3399_adv_defconfig -j8 | $ make ARCH=arm64 rk3399_adv_defconfig -j8 | ||
− | $ make ARCH=arm64 rk3399- | + | $ make ARCH=arm64 rk3399-rsb3710-a2.img -j12 |
</pre> | </pre> | ||
+ | |||
+ | === Build RSB-4710 Kernel === | ||
+ | |||
+ | |||
+ | |||
+ | === Build ROM-5780 Kernel === | ||
+ | <pre>$ cd $TOP | ||
+ | $ cd kernel | ||
+ | $ make ARCH=arm64 rk3399_adv_defconfig -j8 | ||
+ | $ make ARCH=arm64 rk3399-rom5780-a3.img -j12</pre> | ||
== Build Recovery == | == Build Recovery == | ||
Line 62: | Line 108: | ||
</pre> | </pre> | ||
− | == Build Debian 9.x == | + | == Build Debian 9.x / Debian 10.x == |
<pre>$ cd $TOP | <pre>$ cd $TOP | ||
$ source envsetup.sh rockchip_rk3399 | $ source envsetup.sh rockchip_rk3399 | ||
− | $ ./mk-debian.sh | + | $ sudo BUILD_IN_DOCKER=TRUE ./mk-debian.sh |
</pre> | </pre> | ||
− | < | + | <!-- == Build ubuntu 18.04 == |
− | <pre>$ cd $ | + | <span _fck_mw_customtag="true" _fck_mw_tagname="pre" _fck_mw_tagtype="t" class="fck_mw_special">$ cd $TOPfckLR$ source envsetup.sh rockchip_rk3399fckLR$ cd rootfs_adv/ubuntu18.04/fckLR$ sudo ./mk-ubuntu.shfckLR$fckLR</span> --> |
− | $ source envsetup.sh | + | |
− | $ cd rootfs_adv/ | + | <!--You can get ubuntu 18.04 "rootfs.img" in the fold "rootfs_adv/ubuntu18.04" .--> |
− | $ sudo ./mk-ubuntu | ||
− | $ | ||
− | |||
− | |||
− | < | ||
− | |||
− | |||
== Push all image to rockdev folder == | == Push all image to rockdev folder == | ||
− | <pre>$ ./ | + | <pre>$ ./mkfirmware.sh |
</pre> | </pre> | ||
− | All image in rockdev/ ./ | + | 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: |
− | |||
+ | | ||
<pre># board.img | <pre># board.img | ||
# boot.img | # boot.img | ||
Line 101: | Line 140: | ||
== Make update.img == | == Make update.img == | ||
− | + | <pre>$ cd $TOP | |
$ source envsetup.sh rockchip_rk3399 | $ source envsetup.sh rockchip_rk3399 | ||
$ ./build.sh updateimg | $ ./build.sh updateimg | ||
Line 107: | Line 146: | ||
You can get update.img in rockdev/ | You can get update.img in rockdev/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 02:42, 6 February 2024
Contents
Linux BSP Version
Debian 9.x / Debian 10.x
Kernel 4.4.194
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
$ cd ~/BSP $ sudo git clone https://github.com/ADVANTECH-Rockchip/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/ADVANTECH-Rockchip/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
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
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/