Difference between revisions of "Android BSP User Guide for rk3399 series 10.0"

From ESS-WIKI
Jump to: navigation, search
 
(9 intermediate revisions by 3 users not shown)
Line 9: Line 9:
 
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 [https://hub.docker.com/r/advrisc/u16.04-imx6abv5 advrisc/u16.04-imx6abv5] Docker image for developing Rockchip RK3399 projects.
+
You can get the latest version of [https://hub.docker.com/r/advrisc/u18.04-rk3399abv10 advrisc/u18.04-rk3399abv10] Docker image for developing Rockchip RK3399 projects.
  
 
Docker command:
 
Docker command:
<pre>docker pull advrisc/u16.04-imx6abv5:20170523&nbsp;</pre>
+
<pre>docker pull advrisc/u18.04-rk3399abv10:latest;</pre>
  
 
== Run Docker example ==
 
== Run Docker example ==
  
 
Step1 Run docker container (example)
 
Step1 Run docker container (example)
<pre>&nbsp;$&nbsp;docker run -it --name android_n7 -v /home/bsp/myandroid:/home/adv/BSP:rw advrisc/u16.04-imx6abv5:20170523 /bin/bash
+
<pre>&nbsp;$&nbsp;docker run -it --name android_Q10 -v /home/bsp/myandroid:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10:latest /bin/bash
 
</pre>
 
</pre>
  
Line 28: Line 28:
 
== Getting Android Source Code ==
 
== Getting Android Source Code ==
 
<pre>$ cd ~/BSP
 
<pre>$ cd ~/BSP
$ sudo git clone https://github.com/rockchip-linux/repo.git
+
$ sudo git clone https://github.com/ADVANTECH-Rockchip/repo.git
 
$ mkdir rk3399_android_Q10
 
$ mkdir rk3399_android_Q10
 
$ cd rk3399_android_Q10
 
$ cd rk3399_android_Q10
 
$ git config --global user.name "Your Name"
 
$ git config --global user.name "Your Name"
 
$ git config --global user.email you@example.com
 
$ git config --global user.email you@example.com
$ ../repo/repo init -u https://gitlab.edgecenter.io/risc/rockchip/android-manifest.git -b rk3399-androidQ10 -m default.xml
+
$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3399-Android/_git/android-q10-manifest -b rk3399-androidQ10 -m default.xml
 
$ ../repo/repo sync
 
$ ../repo/repo sync
$ ../repo/repo forall -c git checkout -b local --track advantech-gitlab/rk3399-androidQ10
+
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/rk3399-androidQ10
 
</pre>
 
</pre>
  
Line 50: Line 50:
 
$ ./make.sh rk3399_rsb4710a2_2G
 
$ ./make.sh rk3399_rsb4710a2_2G
  
 +
</pre>
 +
 +
=== Build RSB-3710 U-boot ===
 +
<pre>$ cd u-boot
 +
$ ./make.sh rk3399_rsb3710a2_2G
 
</pre>
 
</pre>
  
Line 66: Line 71:
 
To build the kernel, it needs to install extra packages
 
To build the kernel, it needs to install extra packages
 
<pre>sudo apt install libssl-dev liblz4-tool -y</pre>
 
<pre>sudo apt install libssl-dev liblz4-tool -y</pre>
 +
 +
=== Build RSB-3710 platform ===
 +
<pre>$ cd kernel
 +
$ make ARCH=arm64 rk3399_adv_defconfig
 +
$ make ARCH=arm64 rk3399-rsb3710-a2.img -j12
 +
</pre>
  
 
=== Build ROM-5780&nbsp;platform ===
 
=== Build ROM-5780&nbsp;platform ===
Line 79: Line 90:
 
$ make -j12 2&gt;&amp;1 | tee build-log.txt
 
$ make -j12 2&gt;&amp;1 | tee build-log.txt
 
</pre>
 
</pre>
 +
 +
=== Build RSB-3710 platform ===
 +
<pre>$ source build/envsetup.sh
 +
$ lunch rsb3710_Android10-userdebug
 +
$ make -j12 2&gt;&amp;1 | tee build-log.txt</pre>
  
 
=== Build ROM-5780 platform ===
 
=== Build ROM-5780 platform ===
Line 89: Line 105:
 
</pre>
 
</pre>
  
All image in rockdev/Image-rsb4710_Android10 or&nbsp;rockdev/Image-rom5780_Android10&nbsp;./mkimage.sh at previous step will repack boot.img and system.img, and copy other related image files to the rockdev/Image-project/ directory. The common image files are listed below:
+
All image in
  
 +
rockdev/Image-rsb4710_Android10
 +
 +
or&nbsp;rockdev/Image-rsb3710_Android10
 +
 +
or&nbsp;rockdev/Image-rom5780_Android10&nbsp;
 +
 +
./mkimage.sh at previous step will repack boot.img and system.img, and copy other related image files to the rockdev/Image-project/ directory. The common image files are listed below:
 +
<pre>boot.img
 +
config.cfg
 +
dtbo.img
 +
kernel.img
 +
MiniLoaderAll.bin
 +
misc.img
 +
odm.img
 +
parameter.txt
 +
pcba_small_misc.img
 +
pcba_whole_misc.img
 +
recovery.img
 +
resource.img
 +
super.img
 +
system.img
 +
trust.img
 +
uboot.img
 +
vbmeta.img
 +
vendor.img
 +
</pre>
  
<pre />
 
 
== How to&nbsp;update images? ==
 
== How to&nbsp;update images? ==
  

Latest revision as of 03:44, 1 April 2022

Android BSP Version

Android 10.0

Kernel 4.19.111

Build Environment on Host

Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u18.04-rk3399abv10 Docker image for developing Rockchip RK3399 projects.

Docker command:

docker pull advrisc/u18.04-rk3399abv10:latest;

Run Docker example

Step1 Run docker container (example)

 $ docker run -it --name android_Q10 -v /home/bsp/myandroid:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10:latest /bin/bash

Step2 In container, change the user. (example)


 adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP

Getting Android Source Code

$ cd ~/BSP
$ sudo git clone https://github.com/ADVANTECH-Rockchip/repo.git
$ mkdir rk3399_android_Q10
$ cd rk3399_android_Q10
$ 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-RK3399-Android/_git/android-q10-manifest -b rk3399-androidQ10 -m default.xml
$ ../repo/repo sync
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/rk3399-androidQ10

Build Instructions

$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
$ export PATH=$JAVA_HOME/bin:$PATH
$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

Build U-boot

Build RSB-4710 U-boot

$ cd u-boot
$ ./make.sh rk3399_rsb4710a2_2G

Build RSB-3710 U-boot

$ cd u-boot
$ ./make.sh rk3399_rsb3710a2_2G

Build ROM-5780 U-boot

$ cd u-boot
$ ./make.sh rk3399_rom5780a3_2G

Build Kernel

Build RSB-4710 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rsb4710-a2.img -j12

To build the kernel, it needs to install extra packages

sudo apt install libssl-dev liblz4-tool -y

Build RSB-3710 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rsb3710-a2.img -j12

Build ROM-5780 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rom5780-a3.img -j12

Build Android

Build RSB-4710 platform

$ source build/envsetup.sh 
$ lunch rsb4710_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Build RSB-3710 platform

$ source build/envsetup.sh 
$ lunch rsb3710_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Build ROM-5780 platform

$ source build/envsetup.sh 
$ lunch rom5780_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Push all image to rockdev folder

$ ./mkimage.sh

All image in

rockdev/Image-rsb4710_Android10

or rockdev/Image-rsb3710_Android10

or rockdev/Image-rom5780_Android10 

./mkimage.sh at previous step will repack boot.img and system.img, and copy other related image files to the rockdev/Image-project/ directory. The common image files are listed below:

boot.img
config.cfg
dtbo.img
kernel.img
MiniLoaderAll.bin
misc.img
odm.img
parameter.txt
pcba_small_misc.img
pcba_whole_misc.img
recovery.img
resource.img
super.img
system.img
trust.img
uboot.img
vbmeta.img
vendor.img

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 Android system.

(2)Only update images from the same os,  eg : 

        Android6.0 upgrade to Android6.0 or Android7.1 upgrade to Android7.1.

(3)Using update.zip to upgrade. (see more detail in "Create OTA zip" on how to create update.zip)

3._Using_bootup_sd_disk made_by SDDiskTool.

(1)Only update images from the same os,  eg : 

         Android6.0 upgrade to Android6.0 or Android7.1 upgrade to Android7.1.

(2)Using update.img to upgrade.