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

From ESS-WIKI
Jump to: navigation, search
 
(51 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
 
== Android BSP Version ==
 
== Android BSP Version ==
  
Line 22: Line 23:
 
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>
  
 
== Getting Android Source Code ==
 
== Getting Android Source Code ==
<pre>$ cd ~/code
+
<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_n7
 
$ mkdir rk3399_android_n7
 
$ cd rk3399_android_n7
 
$ cd rk3399_android_n7
 
$ 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 http://advgitlab.eastasia.cloudapp.azure.com/RISC/android-manifest.git -b android-7.1.2 -m default.xml
+
$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3399-Android/_git/android-n7-manifest -b android-7.1.2 -m default.xml
 
$ ../repo/repo sync
 
$ ../repo/repo sync
$ ../repo/repo forall -c git checkout -b local --track origin/android-7.1.2
+
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/android-7.1.2
 
$  
 
$  
 +
</pre>
 +
 +
For DeviceOn, please repo following command
 +
<pre>$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3399-Android/_git/android-n7-manifest -b android-7.1.2 -m deviceon.xml
 
</pre>
 
</pre>
  
Line 46: Line 51:
  
 
== Build U-boot ==
 
== Build U-boot ==
 +
 +
=== Build RSB-4710 U-boot ===
 
<pre>$ cd u-boot
 
<pre>$ cd u-boot
$ make rk3399_rsb4710a1_2G_defconfig
+
$ make rk3399_rsb4710a2_2G_defconfig
 
$ make ARCHV=aarch64
 
$ make ARCHV=aarch64
 
</pre>
 
</pre>
 +
 +
=== Build ROM-5780 U-boot ===
 +
<pre>$ cd u-boot
 +
$ make rk3399_rom5780a3_2G_defconfig
 +
$ make ARCHV=aarch64</pre>
  
 
== Build Kernel ==
 
== Build Kernel ==
  
=== Build for RSB4710 platform ===
+
=== Build RSB-4710 platform ===
 
<pre>$ cd kernel
 
<pre>$ cd kernel
 
$ make ARCH=arm64 rk3399_adv_defconfig -j8
 
$ make ARCH=arm64 rk3399_adv_defconfig -j8
$ make ARCH=arm64 rk3399-rsb4710-a1.img -j12
+
$ make ARCH=arm64 rk3399-rsb4710-a2.img -j12
 
</pre>
 
</pre>
 +
 +
=== Build ROM-5780&nbsp;platform ===
 +
<pre>$ cd kernel
 +
$ make ARCH=arm64 rk3399_adv_defconfig -j8
 +
$ make ARCH=arm64 rk3399-rom5780-a3.img -j12</pre>
  
 
== Build Android ==
 
== Build Android ==
 +
 +
=== Build RSB-4710 platform ===
 
<pre>$ source build/envsetup.sh  
 
<pre>$ source build/envsetup.sh  
 
$ lunch rk3399_rsb4710-userdebug
 
$ lunch rk3399_rsb4710-userdebug
$ make -j4 2>&1 | tee build-log.txt
+
$ make -j4 2&gt;&amp;1 | tee build-log.txt
 
</pre>
 
</pre>
 +
 +
=== Build ROM-5780 platform ===
 +
<pre>$ source build/envsetup.sh
 +
$ lunch rk3399_rom5780-userdebug
 +
$ make -j4 2&gt;&amp;1 | tee build-log.txt</pre>
  
 
== Push all image to rockdev folder ==
 
== Push all image to rockdev folder ==
Line 69: Line 93:
 
</pre>
 
</pre>
  
All image in rockdev/Image-rk3399_rsb4710 ./mkimage.sh at previous step will repack boot.img and system.img, and copy other related image files to the rockdev/Image-rk3399_rsb4710/ directory. The common image files are listed below:
+
All image in rockdev/Image-rk3399_rsb4710 or&nbsp;rockdev/Image-rk3399_rom5780&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:
 
 
  
 +
&nbsp;
 
<pre># boot.img        &nbsp;: Android's initramfs, to initialize and mount system partition.  
 
<pre># boot.img        &nbsp;: Android's initramfs, to initialize and mount system partition.  
 
# kernel.img      &nbsp;: Kernel image.
 
# kernel.img      &nbsp;: Kernel image.
Line 94: Line 118:
 
</pre>
 
</pre>
  
'''<big>Step3</big>'''Rename the out/target/product/rk3399_box/rk3399_box-ota-eng.adv.zip to update.zip
+
'''<big>Step3&nbsp;</big>'''Rename the out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip to update.zip
 
<pre>$mv out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip update.zip
 
<pre>$mv out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip update.zip
 
</pre>
 
</pre>
  
'''<big>Step4</big>'''Copy the update.zip to SD or USB disk.  
+
Note&nbsp;:&nbsp; "adv" in rk3399_rsb4710-ota-eng.<span style="color:#FF0000">adv</span>.zip&nbsp; is the name of your building PC.
  
'''<big>Step5</big>'''Follow Android update.
+
'''<big>Step4&nbsp;</big>'''Copy the update.zip to SD or USB disk.
  
== How to do about update RSB4710 Platform? ==
+
'''<big>Step5&nbsp;</big>'''Follow Android update.
  
Download AndroidTool_Release_v2.42.zip and DriverAssitant_v4.5.zip
+
== How to&nbsp;update images? ==
  
[https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/android_7.1.2 https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/android_7.1.2]
+
There are three ways to update images:
  
'''Step1''' Connect with the OTG port and PC.
+
=== '''[[1._Using_AndroidToool.|1._Using_AndroidToool.]]''' ===
  
'''Step2 '''Double click DriverInstall.
+
There is no limitation by this way.
  
[[File:DriverAssitant.jpg|700px|DriverAssitant.jpg]]
+
=== '''[[2._Using_storage(such_sd_or_USB_disk)with_update.zip_in_it.|2._Using_storage(such&nbsp;sd_or_USB_disk)with_update.zip_in_it.]]''' ===
  
'''Step3''' ADB or Debug console, send command "reboot loader"
+
There are some&nbsp;limitations:
  
[[File:242.jpg|700px|242.jpg]]
+
(1)The device must be able to boot up to Android system.
  
'''Step4''' Select the image path.
+
(2)Only update images from the same os,&nbsp; eg&nbsp;:&nbsp;
  
[[File:2422.jpg|700px|2422.jpg]]
+
&nbsp; &nbsp; &nbsp; &nbsp; Android6.0 upgrade to Android6.0 or&nbsp;Android7.1&nbsp;upgrade to Android7.1.
  
'''Step5''' Finish the update
+
(3)Using update.zip to upgrade. (see more detail in "Create OTA zip" on how to create update.zip)
  
[[File:24222.jpg|700px|24222.jpg]]
+
=== '''[[3._Using_bootup_sd_disk_made_by_SDDiskTool.|3._Using_bootup_sd_disk&nbsp;made_by&nbsp;SDDiskTool.]]''' ===
  
== How to do about test LAN1 and LAN2? ==
+
(1)Only update images from the same os,&nbsp; eg&nbsp;:&nbsp;
  
DS100&nbsp;: LAN1 support DHCP , LAN2 support Static IP
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Android6.0 upgrade to Android6.0 or&nbsp;Android7.1&nbsp;upgrade to Android7.1.
  
LAN2 setting static ip example
+
(2)Using update.img to upgrade.
  
 +
== DeviceOn ==
  
<pre>$ ip rule add from all lookup main pref 9999
+
=== '''Remount /system partition''' ===
$ ifconfig eth1 172.12.1.2 netmask 255.255.0.0
+
<pre>$ adb root
 +
$ adb remount
 
</pre>
 
</pre>
  
 +
=== '''Modify agent_config.xml''' ===
  
 
+
There are following tags have to do update at least.
== How to do about update form USB or SD card? ==
+
<pre><CredentialURL></CredentialURL>
 
+
<IoTKey></IoTKey>
'''Step1''' Create the OTA update.zip
+
<DeviceName></DeviceName>
 
+
<SN></SN>
 
 
<pre>$ cd ~/rk3399/
 
$ make -j4
 
$ make otapackage -j4
 
$ ./mkimage.sh ota
 
 
</pre>
 
</pre>
  
'''Step2''' Rename rk3399/out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip to update.zip
+
=== '''Update agent_config.xml''' ===
 
+
<pre>$ adb push agent_config.xml /system/bin/
 
+
$ adb push agent_config.xml /system/lib/
<pre>$ mv rk3399_rsb4710-ota-eng.adv.zip update.zip</pre>
 
 
 
'''Step3''' Copy to the SD or USB disk
 
 
 
'''Step4''' Insert the USB to RSB4710&nbsp;
 
 
 
'''Step5''' Choose the Install
 
 
 
[[File:OTG1.JPG|400px|OTG1.JPG]]
 
 
 
'''Step6'''
 
 
 
[[File:OTG2.JPG|400px|OTG2.JPG]]
 
 
 
Step7
 
 
 
[[File:OTG3.JPG|400px|OTG3.JPG]]
 
 
 
== SD Card Update Solution ==
 
 
 
RK3399 provide the tools for create the SD Card Update Solution.
 
 
 
'''<big>Step1</big>''' Download tool '''<big>Linux_rockdev_2015-06-17_for_RK3399.zip</big>''' and '''<big>SD_Firmware_Tool._v1.46.zip</big>'''.
 
 
 
Download path&nbsp;: [https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/android_7.1.2 https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/android_7.1.2]
 
 
 
'''<big>Step2</big>''' Copy the Linux_rockdev_2015-06-17_for_RK3399.zip to Linux OS PC and Unzip it. You will get the rockdev folder.
 
 
 
 
 
<pre>$ unzip Linux_rockdev_2015-06-17_for_RK3399.zip
 
$ cd rockdev
 
$ sudo chmod -R 755 *
 
 
</pre>
 
</pre>
  
'''<big>Step3</big>''' Create the new system image and boot image and revoery image. "./mkimage.sh ota"
+
After update agent_config.xml, please reboot device.
 
 
 
 
<pre>$ cd ~/rk3399/
 
$ make -j4
 
$ ./mkimage.sh ota
 
</pre>
 
 
 
'''<big>Step4</big>''' Copy the "MiniLoaderAll.bin parameter.txt uboot.img trust.img misc.img kernel.img resource.img boot.img recovery.img system.img" to rockdev/Image
 
 
 
'''<big>Step5</big>''' Modify the MiniLoader.bin path. (./rkImageMaker -RK330C Image/MiniLoaderAll.bin Image/update.img update.img -os_type:androidos || pause)
 
<pre>$ cd rockdev
 
$ vim mkupdate.sh
 
</pre>
 
 
 
'''<big>Step6</big>''' Run mkupdate.sh
 
<pre>$ ./mkupdate.sh
 
 
 
</pre>
 
 
 
&nbsp;[[File:Mkupdate.jpg|600px|Mkupdate.jpg]]
 
 
 
'''<big>Step7</big>''' Get ok message&nbsp;: Making update.img OK.
 
 
 
'''<big>Step8</big>''' Unzip SD_Firmware_Tool._v1.46.zip in Windows OS and Copy the update.img to SD_Firmware_Tool
 
 
 
'''<big>Step9</big>''' Please follow the picture (Red word). &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 
 
 
Step1 Choose the SD device.
 
 
 
Step2 Choose the "firmware update"
 
 
 
Step3. Choose the update.img path
 
 
 
Step4. Create the update SD
 
 
 
[[File:Sd tool.jpg|400px|Sd tool.jpg]]
 
 
 
'''<big>Step10</big>''' Create the Update SD card Success
 
 
 
[[File:Sd tool success.jpg|400px|Sd tool success.jpg]]
 
 
 
'''<big>Step11</big>''' Please power off in RSB4710.
 
 
 
'''<big>Step12</big>''' Insert the SD card.
 
 
 
'''<big>Step13</big>''' Power on in RSB4710.
 
 
 
'''<big>Step14</big>''' Installing system update
 
 
 
[[File:UPDATE.JPG|400px|UPDATE.JPG]]
 
 
 
'''<big>Step15</big>''' Please Remove the SD Card when RSB4710 show the message "Doing Action succeeded. please remove the sdcard......".
 
 
 
[[File:REMOVE SD.JPG|400px|REMOVE_SD.JPG]]
 
 
 
'''<big>Step16</big>''' Reset RSB4710.
 
 
 
== Modules ==
 
 
 
== Change Host/Client in OTG port? ==
 
 
 
*[[IoTGateway/BSP/Android/Change_HOST/Client_Mode_in_OTG_port|Change HOST/Client Mode in OTG port]]
 
 
 
[[File:Ds100.png|800px|Ds100.png]]
 
 
 
[[File:Ds100l.png|800px|Ds100l.png]]
 
 
 
Pages with broken file links
 

Latest revision as of 03:24, 28 April 2022

Android BSP Version

Android 7.1.2

Kernel 4.4.126

Build Environment on Host

Currently, we adopt Docker as build environment.

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

Docker command:

docker pull advrisc/u16.04-imx6abv5:20170523 

Run Docker example

Step1 Run docker container (example)

 $ docker run -it --name android_n7 -v /home/bsp/myandroid:/home/adv/BSP:rw advrisc/u16.04-imx6abv5:20170523 /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_n7
$ cd rk3399_android_n7
$ 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-n7-manifest -b android-7.1.2 -m default.xml
$ ../repo/repo sync
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/android-7.1.2
$ 

For DeviceOn, please repo following command

$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3399-Android/_git/android-n7-manifest -b android-7.1.2 -m deviceon.xml

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 rk3399_rsb4710a2_2G_defconfig
$ make ARCHV=aarch64

Build ROM-5780 U-boot

$ cd u-boot
$ make rk3399_rom5780a3_2G_defconfig 
$ make ARCHV=aarch64

Build Kernel

Build RSB-4710 platform

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

Build ROM-5780 platform

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

Build Android

Build RSB-4710 platform

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

Build ROM-5780 platform

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

Push all image to rockdev folder

$ ./mkimage.sh

All image in rockdev/Image-rk3399_rsb4710 or rockdev/Image-rk3399_rom5780 ./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         : Android's initramfs, to initialize and mount system partition. 
# kernel.img       : Kernel image.
# misc.img         : Misc partition image, to switch boot mode and pass parameter in recovery mode.
# recovery.img     : Recovery mode image.
# resource.img     : Resource image, containing boot logo and kernel's device tree info.
# system.img       : System partition image with ext4 filesystem format.
# uboot.img        :uboot
# trust.img        :File about sleep
# MiniLoaderAll.bin :Loader

Create OTA zip

Step1 After Build Android, you will be create image for OTA update.

$ ./mkimage.sh ota

Step2 Package the update.zip

$ make otapackage

Step3 Rename the out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip to update.zip

$mv out/target/product/rk3399_rsb4710/rk3399_rsb4710-ota-eng.adv.zip update.zip

Note :  "adv" in rk3399_rsb4710-ota-eng.adv.zip  is the name of your building PC.

Step4 Copy the update.zip to SD or USB disk.

Step5 Follow Android update.

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.

DeviceOn

Remount /system partition

$ adb root
$ adb remount

Modify agent_config.xml

There are following tags have to do update at least.

<CredentialURL></CredentialURL>
<IoTKey></IoTKey>
<DeviceName></DeviceName>
<SN></SN>

Update agent_config.xml

$ adb push agent_config.xml /system/bin/
$ adb push agent_config.xml /system/lib/

After update agent_config.xml, please reboot device.