Difference between revisions of "Debian BSP User Guide for rk3399 risc series"

From ESS-WIKI
Jump to: navigation, search
Line 120: Line 120:
 
There are some limitations:
 
There are some limitations:
  
(1)The device must be able to boot up to Android system.
+
(1)The device must be able to boot up to Debian.
  
 
(2)Only update images from the same os,  eg : 
 
(2)Only update images from the same os,  eg : 
  
        Android6.0 upgrade to Android6.0 or Android7.1 upgrade to Android7.1.
+
        Debian upgrade to Debian.
  
(3)Using update.zip to upgrade. (see more detail in "Create OTA zip" on how to create update.zip)
+
(3)Using update.img to upgrade. 
  
 
=== '''[[3._Using_bootup_sd_disk_made_by_SDDiskTool.|3._Using_bootup_sd_disk made_by SDDiskTool.]]''' ===
 
=== '''[[3._Using_bootup_sd_disk_made_by_SDDiskTool.|3._Using_bootup_sd_disk made_by SDDiskTool.]]''' ===

Revision as of 04:34, 7 July 2020

Linux BSP Version

Debian 9.x / Ubuntu 16.04

Kernel 4.4.194

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 rk3399_linux_v231_risc -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 Linux Source Code

$ cd ~/code
$ 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
$ 

Build U-boot

$ export TOP=`pwd`
$ cd $TOP
$ cd u-boot
$ ./make.sh rk3399_rsb4710a2_2G

Build Kernel

Build for RSB4710 platform

$ cd $TOP
$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig -j8
$ make ARCH=arm64 rk3399-rsb4710-a2.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

$ cd $TOP
$ source envsetup.sh rockchip_rk3399
$ ./mk-debian.sh

Build ubuntu 16.04

$ cd $TOP
$ source envsetup.sh rockchip_rk3399
$ cd rootfs_adv/ubuntu16.04/
$ sudo ./mk-ubuntu-base.sh
$ sudo ./mk-adv.sh
$ sudo ./mk-image.sh
$

You can get ubuntu 16.04 "rootfs.img" in the fold "rootfs_adv/ubuntu16.04" .

Push all image to rockdev folder

$ ./mkimage.sh

All image in rockdev/ ./mkimage.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 do about update RSB4710 Platform?

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.