Difference between revisions of "Linux BSP User Guide for rk3588 series Debian11"

From ESS-WIKI
Jump to: navigation, search
(Created page with "<h2>Linux BSP Version</h2> <p>Debian 10.x</p> <p>Kernel 4.19.219</p> == Build Environment on Host == Currently, we adopt [https://www.docker.com/ Docker] as build environm...")
 
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<h2>Linux BSP Version</h2>
+
== Linux BSP Version ==
  
<p>Debian 10.x</p>
+
<p>Debian 11.x</p>
  
<p>Kernel 4.19.219</p>
+
<p>Kernel 5.10.110</p>
  
 
== Build Environment on Host ==
 
== Build Environment on Host ==
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 advrisc/u18.04-rklbv1 Docker image for developing Rockchip RK3568&nbsp;projects.
+
You can get the latest version of advrisc/u20.04-rklbv1 Docker image for developing Rockchip RK3588&nbsp;projects.
  
 
Docker command:
 
Docker command:
<pre>docker pull advrisc/u18.04-rklbv1</pre>
+
<pre>
 +
sudo apt-get update
 +
sudo apt-get install -y qemu-user-static
 +
sudo apt-get install -y live-build
 +
sudo docker pull advrisc/u20.04-rklbv1
 +
</pre>
  
 
== Run Docker example ==
 
== Run Docker example ==
  
 
Step1 Run docker container (example)
 
Step1 Run docker container (example)
<pre>sudo docker run -it --name rk3568_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u18.04-rklbv1:latest /bin/bash
+
<pre>sudo docker run -it --name rk3588_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u20.04-rklbv1:latest /bin/bash
 
</pre>
 
</pre>
  
Line 26: Line 31:
 
</pre>
 
</pre>
  
== Install Some tools ==
 
<pre>$sudo apt-get install expect
 
$</pre>
 
  
<h2>Getting Linux Source Code</h2>
+
== Getting Linux Source Code ==
  
<p>Debian 10.x</p>
+
Debian 11.x
  
<pre>
+
<span style="color:#0000ff;">Please contact PM to get BSP.</span>
$ cd ~/BSP
 
$ sudo git clone https://github.com/ADVANTECH-Rockchip/repo.git
 
$ mkdir rk3568_linux_risc
 
$ cd rk3568_linux_risc
 
$ git config --global user.name &quot;Your Name&quot;
 
$ git config --global user.email you@example.com
 
$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3568-Linux/_git/manifest -b rk356x_v130_risc -m default.xml
 
$ ../repo/repo sync
 
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/rk356x_v130_risc
 
$ </pre>
 
  
 
== Build Choose Project ==
 
== Build Choose Project ==
  
=== Build Choose Project RSB-4810 ===
+
=== Build Choose Project ROM-6881 ===
 +
'''SDK V106:'''
 
<pre>$ export TOP=`pwd`
 
<pre>$ export TOP=`pwd`
 
$ cd $TOP
 
$ cd $TOP
$ ln -rfs device/rockchip/.target_product/BoardConfig-rk3568-rsb4810a2.mk device/rockchip/.BoardConfig.mk
+
$ ./build.sh BoardConfig-rk3588-rom6881a1.mk
 
$  
 
$  
 
</pre>
 
</pre>
  
=== Build Choose Project ROM-5880 ===
+
'''SDK V130 and after:'''
 
<pre>$ export TOP=`pwd`
 
<pre>$ export TOP=`pwd`
 
$ cd $TOP
 
$ cd $TOP
$ ln -rfs device/rockchip/.target_product/BoardConfig-rk3568-rom5880a1.mk device/rockchip/.BoardConfig.mk
+
$ ./build.sh adv_rk3588_rom6881a1_defconfig
 
$  
 
$  
 
</pre>
 
</pre>
Line 64: Line 57:
 
== Build U-boot ==
 
== Build U-boot ==
  
=== Build RSB-4810 U-boot ===
+
<pre>  
<pre>$ export TOP=`pwd`
 
$ cd $TOP
 
$ cd u-boot
 
$ ./make.sh rk3568_rsb4810a2
 
</pre>
 
 
 
=== Build ROM-5880 U-boot ===
 
<pre>$ export TOP=`pwd`
 
 
$ cd $TOP
 
$ cd $TOP
$ cd u-boot
+
$ ./build.sh uboot
$ ./make.sh rk3568_rom5880a1
 
 
</pre>
 
</pre>
  
 
== Build Kernel ==
 
== Build Kernel ==
  
=== Build RSB-4810 Kernel ===
+
<pre>
<pre>$ cd $TOP
+
$ cd $TOP
$ cd kernel
+
$ ./build.sh kernel
$ make ARCH=arm64 rk3568_adv_defconfig -j8
 
$ make ARCH=arm64 rk3568-rsb4810-a2.img -j12
 
</pre>
 
 
 
=== Build ROM-5880 Kernel ===
 
<pre>$ cd $TOP
 
$ cd kernel
 
$ make ARCH=arm64 rk3568_adv_defconfig -j8
 
$ make ARCH=arm64 rk3568-rom5880-a1.img -j12
 
 
</pre>
 
</pre>
  
 
== Build Recovery ==
 
== Build Recovery ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
$ rm buildroot/output/rockchip_rk356x_recovery -rf
+
$ rm buildroot/output/rockchip_rk3588_recovery -rf
$ source envsetup.sh rockchip_rk356x_recovery
 
 
$ ./build.sh recovery
 
$ ./build.sh recovery
 
</pre>
 
</pre>
  
== Build&nbsp;Debian 10.x ==
+
== Build&nbsp;Debian 11.x ==
<pre>$ cd $TOP
+
<pre>
$ source envsetup.sh rockchip_rk3568
+
$ cd $TOP
$ sudo BUILD_IN_DOCKER=TRUE ./mk-debian.sh
+
$ sudo dpkg -i debian/ubuntu-build-service/packages/*
 +
$ sudo apt-get install -f -y
 +
$ ./build.sh debian
 
</pre>
 
</pre>
 +
  
 
== Push all image to rockdev folder ==
 
== Push all image to rockdev folder ==
<pre>$ ./mkfirmware.sh
+
 
 +
'''SDK V106:'''
 +
<pre>$ cd $TOP
 +
$ source device/rockchip/.BoardConfig.mk
 +
$ ./mkfirmware.sh
 
</pre>
 
</pre>
  
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:
+
'''SDK V130 and after:'''
 
+
<pre>$ cd $TOP
 +
$ ./build.sh firmware
 +
</pre>
 +
The common image files are listed below:
  
 +
&nbsp;
 
<pre># boot.img     
 
<pre># boot.img     
 
# misc.img     
 
# misc.img     
Line 128: Line 113:
 
== Make update.img ==
 
== Make update.img ==
 
<pre>$ cd $TOP
 
<pre>$ cd $TOP
$ source envsetup.sh rockchip_rk3568
+
$ sudo apt-get install bsdmainutils
 
$ ./build.sh updateimg
 
$ ./build.sh updateimg
 
</pre>
 
</pre>

Latest revision as of 04:08, 10 April 2024

Linux BSP Version

Debian 11.x

Kernel 5.10.110

Build Environment on Host

Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u20.04-rklbv1 Docker image for developing Rockchip RK3588 projects.

Docker command:

sudo apt-get update
sudo apt-get install -y qemu-user-static
sudo apt-get install -y live-build
sudo docker pull advrisc/u20.04-rklbv1

Run Docker example

Step1 Run docker container (example)

sudo docker run -it --name rk3588_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u20.04-rklbv1:latest /bin/bash

Step2 In container, change the user. (example)


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


Getting Linux Source Code

Debian 11.x

Please contact PM to get BSP.

Build Choose Project

Build Choose Project ROM-6881

SDK V106:

$ export TOP=`pwd`
$ cd $TOP
$ ./build.sh BoardConfig-rk3588-rom6881a1.mk
$ 

SDK V130 and after:

$ export TOP=`pwd`
$ cd $TOP
$ ./build.sh adv_rk3588_rom6881a1_defconfig
$ 

Build U-boot

 
$ cd $TOP
$ ./build.sh uboot

Build Kernel

$ cd $TOP
$ ./build.sh kernel

Build Recovery

$ cd $TOP
$ rm buildroot/output/rockchip_rk3588_recovery -rf
$ ./build.sh recovery

Build Debian 11.x

$ cd $TOP
$ sudo dpkg -i debian/ubuntu-build-service/packages/*
$ sudo apt-get install -f -y
$ ./build.sh debian


Push all image to rockdev folder

SDK V106:

$ cd $TOP
$ source device/rockchip/.BoardConfig.mk
$ ./mkfirmware.sh

SDK V130 and after:

$ cd $TOP
$ ./build.sh firmware

The common image files are listed below:

 

# boot.img     
# misc.img    
# oem.img 
# recovery.img    
# rootfs.img    
# uboot.img   
# userdata.img       
# MiniLoaderAll.bin
# parameter.txt
# 

Make update.img

$ cd $TOP
$ sudo apt-get install bsdmainutils
$ ./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.