Difference between revisions of "Rock5/5b/singleindex"
Line 455: | Line 455: | ||
* NVME M.2 SDD: /dev/nvme0n1 | * NVME M.2 SDD: /dev/nvme0n1 | ||
+ | == Development == | ||
+ | |||
+ | === Build ROCK 5B Debian === | ||
+ | |||
+ | ==== Get the source code ==== | ||
+ | |||
+ | You need Git to get multiple git repositories to build the image. | ||
+ | |||
+ | Install Git if you don't have it. | ||
+ | |||
+ | sudo apt-get update | ||
+ | sudo apt-get install git | ||
+ | |||
+ | Clone the source code | ||
+ | |||
+ | mkdir ~/rk3588-sdk && cd ~/rk3588-sdk | ||
+ | git clone -b stable-5.10-rock5 https://github.com/radxa/u-boot.git | ||
+ | git clone -b stable-5.10-rock5 https://github.com/radxa/kernel.git | ||
+ | git clone -b master https://github.com/radxa/rkbin.git | ||
+ | git clone -b debian https://github.com/radxa/build.git | ||
+ | git clone -b main https://github.com/radxa/debos-radxa.git | ||
+ | |||
+ | And you will get | ||
+ | |||
+ | build kernel rkbin u-boot | ||
+ | |||
+ | Directories usage introductions: | ||
+ | |||
+ | * build: | ||
+ | ** Some script files and configuration files for building u-boot, kernel and rootfs. | ||
+ | * kernel: | ||
+ | ** kernel source code, current version is 4.19.193. | ||
+ | * rkbin: | ||
+ | ** Prebuilt Rockchip binaries, include first stage loader and ATF(Arm Trustzone Firmware). | ||
+ | * u-boot: | ||
+ | ** u-boot as the second stage bootloader | ||
+ | |||
+ | ==== Install toolchain ==== | ||
+ | |||
+ | wget https://dl.radxa.com/tools/linux/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz | ||
+ | sudo tar zxvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz -C /usr/local/ | ||
+ | |||
+ | Add the following line to the end of file ~/.bashrc | ||
+ | |||
+ | export PATH="/usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH" | ||
+ | |||
+ | And source ~/.bashrc | ||
+ | |||
+ | source ~/.bashrc | ||
+ | |||
+ | Check the version of toolchain | ||
+ | |||
+ | <pre> | ||
+ | radxa@x86-64:~$ which aarch64-none-linux-gnu-gcc | ||
+ | /usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc | ||
+ | |||
+ | radxa@x86-64:~$ aarch64-none-linux-gnu-gcc -v | ||
+ | Using built-in specs. | ||
+ | COLLECT_GCC=aarch64-none-linux-gnu-gcc | ||
+ | COLLECT_LTO_WRAPPER=/usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/../libexec/gcc/aarch64-none-linux-gnu/10.3.1/lto-wrapper | ||
+ | Target: aarch64-none-linux-gnu | ||
+ | Configured with: /data/jenkins/workspace/GNU-toolchain/arm-10/src/gcc/configure --target=aarch64-none-linux-gnu --prefix= --with-sysroot=/aarch64-none-linux-gnu/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/install//aarch64-none-linux-gnu/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --enable-fix-cortex-a53-843419 --with-pkgversion='GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)' | ||
+ | Thread model: posix | ||
+ | Supported LTO compression algorithms: zlib | ||
+ | gcc version 10.3.1 20210621 (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) | ||
+ | </pre> | ||
+ | |||
+ | ==== Install other build tools ==== | ||
+ | |||
+ | sudo apt-get install device-tree-compiler libncurses5 libncurses5-dev build-essential libssl-dev mtools bc python dosfstools | ||
+ | |||
+ | ==== Build u-boot ==== | ||
+ | |||
+ | Need to checkout branch to '''stable-5.10-rock5'''. | ||
+ | |||
+ | Build u-boot with default '''rock-5b-rk3588_defconfig'''. | ||
+ | |||
+ | cd ~/rk3588-sdk | ||
+ | ./build/mk-uboot.sh k3588-rock-5b #For ROCK 5B | ||
+ | |||
+ | The generated images will be copied to out/u-boot folder | ||
+ | |||
+ | ls out/u-boot/ | ||
+ | idbloader.img rk3588_spl_loader_v1.07.111.bin spi u-boot.itb | ||
+ | |||
+ | ==== Apply u-boot ==== | ||
+ | |||
+ | 1. you should check file in out/u-boot should be like this: | ||
+ | |||
+ | ls out/u-boot/ | ||
+ | idbloader.img rk3588_spl_loader_v1.07.111.bin spi u-boot.itb | ||
+ | |||
+ | 2. flash u-boot to you storage | ||
+ | |||
+ | sudo dd if=./idbloader.img of=/path/to/storage/device bs=512 seek=64 | ||
+ | sudo dd if=./u-boot.itb of=/path/to/storage/device bs=512 seek=16384 | ||
+ | |||
+ | ==== Build kernel ==== | ||
+ | |||
+ | Need to checkout branch to '''stable-5.10-rock5'''. | ||
+ | |||
+ | Build kernel with default '''rockchip_linux_defconfig'''. | ||
+ | |||
+ | cd ~/rk3588-sdk | ||
+ | ./build/mk-kernel.sh rk3588-rock-5b #For ROCK 5B | ||
+ | |||
+ | ===== Change kernel config ===== | ||
+ | |||
+ | Optionally, if you want to change the default kernel config | ||
+ | |||
+ | cd ~/rk3588-sdk | ||
+ | cd kernel | ||
+ | export ARCH=arm64 | ||
+ | export CROSS_COMPILE=aarch64-none-linux-gnu- | ||
+ | make rockchip_linux_defconfig | ||
+ | make menuconfig | ||
+ | make savedefconfig | ||
+ | cp defconfig arch/arm64/configs/rockchip_linux_defconfig | ||
+ | cd .. | ||
+ | ./build/mk-kernel.sh rk3588-rock-5b #For ROCK 5B | ||
+ | |||
+ | You will get the kernel image and dtb file | ||
+ | |||
+ | ls out/kernel/ | ||
+ | Image rk3588-rock-5b.dtb | ||
+ | |||
+ | ==== Build kernel deb package ==== | ||
+ | |||
+ | The kernel package build can pack the kernel, device tree, modules and firmware into Debian packages, which makes it easier to install on the ROCK 5. | ||
+ | |||
+ | ./build/pack-kernel.sh -d rockchip_linux_defconfig -r 10 # rockchip_linux_defconfig: kernel defconfig; 1: release number | ||
+ | |||
+ | The generated packages will be copied to out/packages directory. | ||
+ | |||
+ | ls out/packages/ | ||
+ | linux-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.changes | ||
+ | linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb | ||
+ | linux-headers-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.deb | ||
+ | linux-libc-dev_5.10.66-10-rockchip_arm64.deb | ||
+ | linux-image-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.deb | ||
+ | |||
+ | When you want to install specified kernel packages to your OS, try the following steps. | ||
+ | |||
+ | copy linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb to your ROCK 5. | ||
+ | |||
+ | Install them on ROCK 5. | ||
+ | |||
+ | # dpkg -i linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb | ||
+ | |||
+ | ==== Generate system image ==== | ||
+ | |||
+ | Remove old ROCK 5B U-boot and Kernel packages. | ||
+ | |||
+ | $ cd ~/rk3588-sdk/debos-radxa | ||
+ | |||
+ | $ ls rootfs/packages/arm64/kernel/*5.10.66* | ||
+ | rootfs/packages/arm64/kernel/linux-headers-5.10.66-6-rockchip-gbb60f4aeba31_5.10.66-6-rockchip_arm64.deb | ||
+ | rootfs/packages/arm64/kernel/linux-image-5.10.66-6-rockchip-gbb60f4aeba31_5.10.66-6-rockchip_arm64.deb | ||
+ | |||
+ | $ ls rootfs/packages/arm64/u-boot/rock-5b* | ||
+ | rootfs/packages/arm64/u-boot/rock-5b-rk-ubootimg_2017.09-g592fa62ffe2-220419_all.deb | ||
+ | |||
+ | Copy new ROCK 5B U-boot and Kernel packages to the specified place. | ||
+ | Like Kernel packages in rootfs/packages/arm64/kernel/ and U-boot package in rootfs/packages/arm64/u-boot | ||
+ | |||
+ | Set up Docker | ||
+ | |||
+ | $ cd ~/rk3588-sdk/debos-radxa | ||
+ | $ ./docker/dev-shell | ||
+ | |||
+ | Build image in Docker container. | ||
+ | |||
+ | # ./build.sh -c rk3588 -b rock-5b -m debian -d bullseye -v xfce4 -a arm64 -f gpt | ||
+ | |||
+ | The generated system images will be copied to ~/rk3588-sdk/debos-radxa/output directory. | ||
Revision as of 11:15, 18 June 2022
Contents
- 1 Welcome to the ROCK 5B Documentation
- 1.1 Getting Started
- 1.1.1 Close look of ROCK 5B
- 1.1.2 Features
- 1.1.3 What you need
- 1.1.4 Starting the board for the first time
- 1.2 Downloads
- 1.3 Hardware
- 1.4 Radxa OS
- 1.5 Development
- 1.6 FAQs
- 1.1 Getting Started
Welcome to the ROCK 5B Documentation
Getting Started
This guide is designed for ROCK 5B enthusiast. The purpose is to learn about ROCK 5B as well as how to prepare and set up for basic use. When you get a board, you need to know what model it is and which hardware version it is. The information is printed in the top side of the board. We will introduce the board information as much as possible.
Close look of ROCK 5B
- ROCK 5B front view
- ROCK 5B front with an angle view
- ROCK 5B back view
Features
What you need
Necessary
- ROCK 5B main board
- One of the Storage media below:
- microSD, larger than 8GB
- eMMC module, larger than 8GB
- Power supply
- The ROCK 5B is powered by Type-C port and has a wide range of input voltage, from 5V to 21V. ROCK 5B supports USB Type-C PD 2.0 with 9V/2A, 12V/2A, 15V/2A and 20V/2A.
- The Type-C cable you using needs to support data communication. We call it USB Type-C charging data cable.
- USB Keyboard and Mouse
- With four USB-A connectors, ROCK 5B can be equipped with a full sized keyboard and mouse.
- Monitor and HDMI Cable
- ROCK 5B is equipped with a full sized HDMI connector. HDMI capable monitor is recommended.
- HDMI EDID display data is used to determine the best display resolution. On monitors and TVs that support 1080p (or 4K/8K) this resolution will be selected. If 1080p is not supported the next available resolution reported by EDID will be used. This selected mode will work with MOST but not all monitors/TVs.
- USB to TTL serial cable
- ROCK 5B exports a dedicated serial console for CPU, which can access the low level debug message.
- USB type A to typec C cable
- If you want to write image on ROCK 5B from USB OTG port or use fastboot/adb commands you need an USB typec A to type C cable to connect ROCK 5B and PC.
Optional
- microSD Card Reader
- For flashing the image into microSD Card
- USB type A to type C cable
- This is needed for fastboot/adb commands.
- USB to TTL serial cable
- This is needed for serial console.
- Ethernet cable
- ROCK 5B supports Internet access via Ethernet.
- An Ethernet cable is used to connect your ROCK 5B to a local network and the Internet.
- Camera Module
- ROCK 5B supports camera function.
- LCD Module
- ROCK 5B supports LCD display function.
- Audio cable
- Audio can be played through speaker or headphones using a standard 3.5mm jack.
Starting the board for the first time
ROCK 5B can be started with eMMC Module or μSD Card. Now, you are presented with three options when installing your new operating system onto your ROCK 5B.
Prepare
- When starting system with eMMC Module
(Option a) Inster the eMMC Module into ROCK Pi eMMC USB Reader. Then plug the ROCK Pi eMMC USB Reader into host PC.
(Option b) Insert eMMC Module into eMMC to μSD card converter board. Insert the converter board into μSD Card Reader. Then plug the Card Reader into host PC.
- When starting system with μSD Card
(Option c) Insert the μSD Card into μSD Card Reader. Then plug the Card Reader into host PC.
Write Image
- Download the official Ubuntu/Debian system image from Downloads.
- Download the flash tool, etcher, from Downloads. Choose the right version for your host operation system. Here we operate on host Ubuntu 20.04.
- After unpacking the package, we run the tool by double-clicking BalenaEtcher icon.
If you get an error message: "No polkit authentication agent found" you can try and start it with sudo, but do know that this is running the tool as root.
- In the etcher window, click Select image.
- In the etcher window, click Select Drive.
- In the etcher window, click Flash.
- In the etcher window, once it shows us Flash Complete! It is done and can be put into the RockPi.
3. Boot the board
- Now insert the system storage media, μSD Card or eMMC Module into the socket on the board.
- (Optional) Use the USB to TTL serial cable to setup a connection between PC and ROCK 5B board. See Serial Console.
- Power on ROCK 5B by adapter with type C port.
- ROCK 5B will boot with the green power LED on. And after a while, another blue LED starts blinking.
4. Access from the Host PC/Laptop
Option 1: HDMI monitor and Mouse
You would see Desktop on HDMI monitor.
Option 2: Serial console
Check Serial Console
Option 3: SSH
SSH server is enabled on port 22 of ROCK 5B default image.
Please use angryip to find your board IP address.
To access ROCK 5B by SSH, try
ping rock-5b.local ssh rock@rock-5b.local
or if your router/network doesn't support Local Domain, you need to check your network/router administrator page and look for the ROCK 5B ip address.
ping ip-of-device ssh rock@ip-of-device
Note: You can also get the IP of ROCK 5B from option 1 if you can not access network administrator page.
5.Network state
- Look at network configure:
$ sudo ifconfig
- Test network:
$ ping -c 5 www.google.com
6.WIFI Connection
Check WIFI Connection.
7.Bluetooth
Check Bluetooth.
8.LED
ROCK 5B has Power LED and User LED.
- Power LED
The power LED is green. It is always on when ROCK 5B is given power by default,
- User LED
The user LED is blue. By default, its blink status shows the running kernel.
9.GPIO
ROCK 5B has one 40-pin expansion headers. Each pin is distinguished by color, more information click ROCK 5B GPIO.
Development for GPIO. ROCK 5B supports libmraa GPIO library, click here to get more information.
Downloads
Official ROCK Pi system images can also be downloaded from
- ROCK Pi BaiduPan
- ROCK 5 Image Release - The latest system images.
For usernames and passwords please check the FAQ.
Tools
Description | Linux | MacOS | Windows |
---|---|---|---|
Etcher - A user friendly Image Writer | Linux 64bit | Linux 32bit | balenaEtcher-1.4.9.dmg | balenaEtcher-Setup-1.4.9-x86.exe |
Official Images
Third Party Images
Community Built Images
Hardware
Technical information about ROCK 5 Series hardware
ROCK 5B
- ROCK 5 Model B
- v1.1 schematic pdf - Download Schematic of ROCK 5 Model B
- v1.1 2D Top&Bottom dxf - Download 2D CAD of ROCK 5 Model B
- v1.1 CAM pdf - Download components Position Reference of ROCK 5 Model B
- Compliance
- CE RED - EU
Datasheets
- Datasheet
- RK3588 datasheet - The SoC of ROCK 5
- RK3588S datasheet - The SoC of ROCK 5 in small package
Accessories
- Official heatsink
- 3D drawing - 3D model of official heatsink
- Display
- Camera module
Radxa OS
Radxa OS is built based on Debian.
ROCK 5 Debian uses systemd to manage system.
Command prepended by $ means the command may be executed by an unprivileged user. And command prepended by # means the command may be executed by an privileged user. But the symbol, $ or #, is not part of the command.
List of boards supported
- ROCK 5B
Access from the Host PC/Laptop
Option 1: HDMI monitor and Mouse
You would see Desktop on HDMI monitor.
Option 2: Serial console
See Serial Console
Option 3: SSH
SSH server is enabled on port 22 of ROCK 5 default image.
Please use angryip to find your board IP address.
$ ping ip-of-device $ ssh rock@ip-of-device
Debian Default User Account
Non-root User:
User Name : rock Password : rock
Radxa APT
Radxa APT source includes stable one and testing one. Stable source includes stable packages while testing source includes latest but maybe unstable packages.
Radxa APT stable source is added by default while testing source is not added.
You can uncomment line like "deb http://apt.radxa.com/bullseye-testing/ buster main" in file /etc/apt/sources.list.d/apt-radxa-com.list to add testing source.
See file /etc/apt/sources.list.d/apt-radxa-com.list
deb http://apt.radxa.com/bullseye-stable/ buster main deb http://apt.radxa.com/bullseye-testing/ buster main
After adding testing source, you need to update APT and install your needed packages.
$ sudo apt-get update
For more detail about Radxa APT, please see Radxa APT.
Upgrade necessary packages
Here is the example of upgrading rockchip-overlay and kernel packages.
$ sudo apt-get update $ sudo apt-get install -y rockchip-overlay
Ethernet
5B Ethernet
ROCK 5B is equipped with one 2.5G Ethernet port. You can use a network cable (one end connected to the external network port or route) to connect your ROCK 5B to the network. The ROCK 5B will automatically configure the network for your surfing on the Internet.
Ethernet throughput test result table.
Direction | Bitrate |
---|---|
Upstream | 2.34 Gbits/sec |
Downstream | 2.35 Gbits/sec |
To test the Ethernet, we need to follow the steps:
- Switch to super user mode by command
$ sudo su
- Check whether the Ethernet is normal by command, ifconfig, which would show us a network card, eth0 or enP4p65s0 , and the Ethernet IP address. Also, use tool, ping, to connect to a normal domain.
$ ifconfig $ ping www.baidu.com
- If failed to connect to a normal domain. , try
$ sudo dhclient eth0 or $ sudo dhclient enP4p65s0
Storage device
- uSD Card: /dev/mmcblk0
- eMMC: /dev/mmcblk1
- NVME M.2 SDD: /dev/nvme0n1
Development
Build ROCK 5B Debian
Get the source code
You need Git to get multiple git repositories to build the image.
Install Git if you don't have it.
sudo apt-get update sudo apt-get install git
Clone the source code
mkdir ~/rk3588-sdk && cd ~/rk3588-sdk git clone -b stable-5.10-rock5 https://github.com/radxa/u-boot.git git clone -b stable-5.10-rock5 https://github.com/radxa/kernel.git git clone -b master https://github.com/radxa/rkbin.git git clone -b debian https://github.com/radxa/build.git git clone -b main https://github.com/radxa/debos-radxa.git
And you will get
build kernel rkbin u-boot
Directories usage introductions:
- build:
- Some script files and configuration files for building u-boot, kernel and rootfs.
- kernel:
- kernel source code, current version is 4.19.193.
- rkbin:
- Prebuilt Rockchip binaries, include first stage loader and ATF(Arm Trustzone Firmware).
- u-boot:
- u-boot as the second stage bootloader
Install toolchain
wget https://dl.radxa.com/tools/linux/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz sudo tar zxvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz -C /usr/local/
Add the following line to the end of file ~/.bashrc
export PATH="/usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH"
And source ~/.bashrc
source ~/.bashrc
Check the version of toolchain
radxa@x86-64:~$ which aarch64-none-linux-gnu-gcc /usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc radxa@x86-64:~$ aarch64-none-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=aarch64-none-linux-gnu-gcc COLLECT_LTO_WRAPPER=/usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/../libexec/gcc/aarch64-none-linux-gnu/10.3.1/lto-wrapper Target: aarch64-none-linux-gnu Configured with: /data/jenkins/workspace/GNU-toolchain/arm-10/src/gcc/configure --target=aarch64-none-linux-gnu --prefix= --with-sysroot=/aarch64-none-linux-gnu/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/install//aarch64-none-linux-gnu/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-10/build-aarch64-none-linux-gnu/host-tools --enable-fix-cortex-a53-843419 --with-pkgversion='GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)' Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.3.1 20210621 (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29))
Install other build tools
sudo apt-get install device-tree-compiler libncurses5 libncurses5-dev build-essential libssl-dev mtools bc python dosfstools
Build u-boot
Need to checkout branch to stable-5.10-rock5.
Build u-boot with default rock-5b-rk3588_defconfig.
cd ~/rk3588-sdk ./build/mk-uboot.sh k3588-rock-5b #For ROCK 5B
The generated images will be copied to out/u-boot folder
ls out/u-boot/ idbloader.img rk3588_spl_loader_v1.07.111.bin spi u-boot.itb
Apply u-boot
1. you should check file in out/u-boot should be like this:
ls out/u-boot/ idbloader.img rk3588_spl_loader_v1.07.111.bin spi u-boot.itb
2. flash u-boot to you storage
sudo dd if=./idbloader.img of=/path/to/storage/device bs=512 seek=64 sudo dd if=./u-boot.itb of=/path/to/storage/device bs=512 seek=16384
Build kernel
Need to checkout branch to stable-5.10-rock5.
Build kernel with default rockchip_linux_defconfig.
cd ~/rk3588-sdk ./build/mk-kernel.sh rk3588-rock-5b #For ROCK 5B
Change kernel config
Optionally, if you want to change the default kernel config
cd ~/rk3588-sdk cd kernel export ARCH=arm64 export CROSS_COMPILE=aarch64-none-linux-gnu- make rockchip_linux_defconfig make menuconfig make savedefconfig cp defconfig arch/arm64/configs/rockchip_linux_defconfig cd .. ./build/mk-kernel.sh rk3588-rock-5b #For ROCK 5B
You will get the kernel image and dtb file
ls out/kernel/ Image rk3588-rock-5b.dtb
Build kernel deb package
The kernel package build can pack the kernel, device tree, modules and firmware into Debian packages, which makes it easier to install on the ROCK 5.
./build/pack-kernel.sh -d rockchip_linux_defconfig -r 10 # rockchip_linux_defconfig: kernel defconfig; 1: release number
The generated packages will be copied to out/packages directory.
ls out/packages/ linux-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.changes linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb linux-headers-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.deb linux-libc-dev_5.10.66-10-rockchip_arm64.deb linux-image-5.10.66-10-rockchip-ge5013df5e066_5.10.66-10-rockchip_arm64.deb
When you want to install specified kernel packages to your OS, try the following steps.
copy linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb to your ROCK 5.
Install them on ROCK 5.
# dpkg -i linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb
Generate system image
Remove old ROCK 5B U-boot and Kernel packages.
$ cd ~/rk3588-sdk/debos-radxa $ ls rootfs/packages/arm64/kernel/*5.10.66* rootfs/packages/arm64/kernel/linux-headers-5.10.66-6-rockchip-gbb60f4aeba31_5.10.66-6-rockchip_arm64.deb rootfs/packages/arm64/kernel/linux-image-5.10.66-6-rockchip-gbb60f4aeba31_5.10.66-6-rockchip_arm64.deb $ ls rootfs/packages/arm64/u-boot/rock-5b* rootfs/packages/arm64/u-boot/rock-5b-rk-ubootimg_2017.09-g592fa62ffe2-220419_all.deb
Copy new ROCK 5B U-boot and Kernel packages to the specified place. Like Kernel packages in rootfs/packages/arm64/kernel/ and U-boot package in rootfs/packages/arm64/u-boot
Set up Docker
$ cd ~/rk3588-sdk/debos-radxa $ ./docker/dev-shell
Build image in Docker container.
# ./build.sh -c rk3588 -b rock-5b -m debian -d bullseye -v xfce4 -a arm64 -f gpt
The generated system images will be copied to ~/rk3588-sdk/debos-radxa/output directory.
FAQs
General
Q: Rock 5B will have WiFi 6E support. Does the new rock 5b board come with a (6E) wifi chip. Or will this be purchased separately?
- WiFi Card is not included by default since different users require different WiFi speed.