Difference between revisions of "Linux BSP User Guide for rk3568 series Debian10"

From ESS-WIKI
Jump to: navigation, search
(Created page with "<h2> Linux BSP Version </h2> <p>Debian 10.x </p><p>Kernel 4.19.172 </p> <h2> Build Environment on Host </h2> <p>Currently, we adopt <a href="https://www.docker.com/" alt="http...")
 
Line 1: Line 1:
<h2> Linux BSP Version </h2>
+
== Linux BSP Version ==
<p>Debian 10.x
+
 
</p><p>Kernel 4.19.172
+
Debian 9.x / Debian 10.x&nbsp; / Ubuntu 18.04
</p>
+
 
<h2> Build Environment on Host </h2>
+
Kernel 4.4.194
<p>Currently, we adopt <a href="https://www.docker.com/" alt="https://www.docker.com/" title="https://www.docker.com/">Docker</a> as build environment.
+
 
</p><p>You can get the latest version of advrisc/u18.04-rklbv1 Docker image for developing Rockchip RK3399 projects.
+
== Build Environment on Host ==
</p><p>Docker command:
+
 
</p>
+
Currently, we adopt [https://www.docker.com/ Docker] as build environment.
 +
 
 +
You can get the latest version of advrisc/u18.04-rklbv1 Docker image for developing Rockchip RK3399 projects.
 +
 
 +
Docker command:
 
<pre>docker pull advrisc/u18.04-rklbv1</pre>
 
<pre>docker pull advrisc/u18.04-rklbv1</pre>
<h2> Run Docker example </h2>
+
 
<p>Step1 Run docker container (example)
+
== Run Docker example ==
</p>
+
 
 +
Step1 Run docker container (example)
 
<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>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>
<p>Step2 In container, change the user. (example)
+
 
</p><p>
+
Step2 In container, change the user. (example)
</p>
+
 
 +
 
 
<pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
 
<pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
 
</pre>
 
</pre>
<h2> Install Some tools </h2>
+
 
 +
== Install Some tools ==
 
<pre>$sudo apt-get install expect  
 
<pre>$sudo apt-get install expect  
 
$</pre>
 
$</pre>
<h2> Getting Linux Source Code </h2>
+
 
<p>Debian 9.x / Ubuntu18.04
+
== Getting Linux Source Code ==
</p>
+
 
 +
Debian 9.x / Ubuntu18.04
 
<pre>$ cd ~/BSP
 
<pre>$ cd ~/BSP
 
$ sudo git clone https://github.com/rockchip-linux/repo.git
 
$ sudo git clone https://github.com/rockchip-linux/repo.git
 
$ mkdir rk3399_linux_risc
 
$ mkdir rk3399_linux_risc
 
$ cd rk3399_linux_risc
 
$ cd rk3399_linux_risc
$ git config --global user.name &quot;Your Name&quot;
+
$ 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://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v231_risc -m default.xml
 
$ ../repo/repo init -u https://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v231_risc -m default.xml
Line 36: Line 44:
 
$  
 
$  
 
</pre>
 
</pre>
<p>Debian 10.x
+
 
</p>
+
Debian 10.x
 
<pre>$ cd ~/BSP
 
<pre>$ cd ~/BSP
 
$ sudo git clone https://github.com/rockchip-linux/repo.git
 
$ sudo git clone https://github.com/rockchip-linux/repo.git
 
$ mkdir rk3399_linux_risc
 
$ mkdir rk3399_linux_risc
 
$ cd rk3399_linux_risc
 
$ cd rk3399_linux_risc
$ git config --global user.name &quot;Your Name&quot;
+
$ 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://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v251_risc -m default.xml
 
$ ../repo/repo init -u https://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v251_risc -m default.xml
Line 48: Line 56:
 
$ ../repo/repo forall -c git checkout -b local --track advantech-github/rk3399_linux_v251_risc
 
$ ../repo/repo forall -c git checkout -b local --track advantech-github/rk3399_linux_v251_risc
 
$ </pre>
 
$ </pre>
<h2> Build U-boot </h2>
+
 
<h3> Build RSB-3710 U-boot </h3>
+
== Build U-boot ==
 +
 
 +
=== Build RSB-3710 U-boot ===
 
<pre>$ export TOP=`pwd`
 
<pre>$ export TOP=`pwd`
 
$ cd $TOP
 
$ cd $TOP
Line 55: Line 65:
 
$ ./make.sh rk3399_rsb3710a2_2G
 
$ ./make.sh rk3399_rsb3710a2_2G
 
</pre>
 
</pre>
<h3> Build RSB-4710 U-boot </h3>
+
 
 +
=== Build RSB-4710 U-boot ===
 
<pre>$ export TOP=`pwd`
 
<pre>$ export TOP=`pwd`
 
$ cd $TOP
 
$ cd $TOP
Line 61: Line 72:
 
$ ./make.sh rk3399_rsb4710a2_2G
 
$ ./make.sh rk3399_rsb4710a2_2G
 
</pre>
 
</pre>
<h3> Build ROM-5780 U-boot </h3>
+
 
 +
=== Build ROM-5780 U-boot ===
 
<pre>$ export TOP=`pwd`  
 
<pre>$ export TOP=`pwd`  
 
$ cd $TOP $ cd u-boot  
 
$ cd $TOP $ cd u-boot  
 
$ ./make.sh rk3399_rom5780a3_2G
 
$ ./make.sh rk3399_rom5780a3_2G
 
</pre>
 
</pre>
<h2> Build Kernel </h2>
+
 
<h3> Build RSB-3710 Kernel </h3>
+
== Build Kernel ==
 +
 
 +
=== Build RSB-3710 Kernel ===
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ cd kernel
 
$ cd kernel
Line 73: Line 87:
 
$ make ARCH=arm64 rk3399-rsb3710-a2.img -j12
 
$ make ARCH=arm64 rk3399-rsb3710-a2.img -j12
 
</pre>
 
</pre>
<h3> Build RSB-4710 Kernel </h3>
+
 
 +
=== Build RSB-4710 Kernel ===
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ cd kernel
 
$ cd kernel
Line 79: Line 94:
 
$ make ARCH=arm64 rk3399-rsb4710-a2.img -j12
 
$ make ARCH=arm64 rk3399-rsb4710-a2.img -j12
 
</pre>
 
</pre>
<h3> Build ROM-5780 Kernel </h3>
+
 
 +
=== Build ROM-5780 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-rom5780-a3.img -j12</pre>
 
$ make ARCH=arm64 rk3399-rom5780-a3.img -j12</pre>
<h2> Build Recovery </h2>
+
 
 +
== Build Recovery ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ rm buildroot/output/rockchip_rk3399_recovery -rf
 
$ rm buildroot/output/rockchip_rk3399_recovery -rf
Line 90: Line 107:
 
$ ./build.sh recovery
 
$ ./build.sh recovery
 
</pre>
 
</pre>
<h2> Build Debian 9.x / Debian 10.x </h2>
+
 
 +
== Build Debian 9.x / Debian 10.x ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ source envsetup.sh rockchip_rk3399
 
$ source envsetup.sh rockchip_rk3399
 
$ sudo BUILD_IN_DOCKER=TRUE ./mk-debian.sh
 
$ sudo BUILD_IN_DOCKER=TRUE ./mk-debian.sh
 
</pre>
 
</pre>
<h2> Build ubuntu 18.04 </h2>
+
 
 +
== Build ubuntu 18.04 ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ source envsetup.sh rockchip_rk3399
 
$ source envsetup.sh rockchip_rk3399
Line 102: Line 121:
 
$
 
$
 
</pre>
 
</pre>
<p>You can get ubuntu 18.04 "rootfs.img" in the fold "rootfs_adv/ubuntu18.04" .
+
 
</p>
+
You can get ubuntu 18.04 "rootfs.img" in the fold "rootfs_adv/ubuntu18.04" .
<h2> Push all image to rockdev folder </h2>
+
 
 +
== Push all image to rockdev folder ==
 
<pre>$ ./mkfirmware.sh
 
<pre>$ ./mkfirmware.sh
 
</pre>
 
</pre>
<p>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/&#160;directory. The common image files are listed below:
+
 
</p><p>
+
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/&nbsp;directory. The common image files are listed below:
</p>
+
 
 +
 
 
<pre># board.img       
 
<pre># board.img       
 
# boot.img     
 
# boot.img     
Line 122: Line 143:
 
#  
 
#  
 
</pre>
 
</pre>
<h2> Make update.img </h2>
+
 
 +
== Make update.img ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
 
$ source envsetup.sh rockchip_rk3399
 
$ source envsetup.sh rockchip_rk3399
 
$ ./build.sh updateimg
 
$ ./build.sh updateimg
 
</pre>
 
</pre>
<p>You can get update.img in rockdev/
+
 
</p>
+
You can get update.img in rockdev/
<h2> How to update images? </h2>
+
 
<p>There are three ways to update images:
+
== How to update images? ==
</p>
+
 
<h3> <b><a href="1.%20Using%20AndroidToool.">1._Using_AndroidToool.</a></b> </h3>
+
There are three ways to update images:
<p>There is no limitation by this way.
+
 
</p>
+
=== '''[[1._Using_AndroidToool.|1._Using_AndroidToool.]]''' ===
<h3> <b><a href="2.%20Using%20SD%20with%20update.img%20in%20it%20for%20Linux%20BSP">2._Using_storage(such&#160;sd_or_USB_disk)with_update.zip_in_it.</a></b> </h3>
+
 
<p>There are some&#160;limitations:
+
There is no limitation by this way.
</p><p>(1)The device must be able to boot up to Debian.
+
 
</p><p>(2)Only update images from the same os,&#160; eg&#160;:&#160;
+
=== '''[[2._Using_SD_with_update.img_in_it_for_Linux_BSP|2._Using_storage(such&nbsp;sd_or_USB_disk)with_update.zip_in_it.]]''' ===
</p><p>&#160; &#160; &#160; &#160; Debian upgrade to Debian.
+
 
</p><p>(3)Using update.img to upgrade.&#160;
+
There are some&nbsp;limitations:
</p>
+
 
<h3> <b><a href="3.%20Using%20bootup%20sd%20disk%20made%20by%20SDDiskTool.">3._Using_bootup_sd_disk&#160;made_by&#160;SDDiskTool.</a></b> </h3>
+
(1)The device must be able to boot up to Debian.
<p>(1)Only update images from the same os,&#160; eg&#160;:&#160;
+
 
</p><p>&#160; &#160; &#160; &#160; &#160;Debian upgrade to Debian.
+
(2)Only update images from the same os,&nbsp; eg&nbsp;:&nbsp;
</p><p>(2)Using update.img to upgrade.
+
 
</p>
+
&nbsp; &nbsp; &nbsp; &nbsp; Debian upgrade to Debian.
 +
 
 +
(3)Using update.img to upgrade.&nbsp;
 +
 
 +
=== '''[[3._Using_bootup_sd_disk_made_by_SDDiskTool.|3._Using_bootup_sd_disk&nbsp;made_by&nbsp;SDDiskTool.]]''' ===
 +
 
 +
(1)Only update images from the same os,&nbsp; eg&nbsp;:&nbsp;
 +
 
 +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Debian upgrade to Debian.
 +
 
 +
(2)Using update.img to upgrade.

Revision as of 08:13, 23 November 2021

Linux BSP Version

Debian 9.x / Debian 10.x  / Ubuntu 18.04

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 / 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:

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.