User:Brendlefly62/Rockchip RK3588S OrangePi 5B
Construction of this page began 14 July 2024 (Work in Progress)
This is an inexpensive ($100 at Amazon) "performance" arm64 board based on the rk3588s SOC
* There is currently no direct upstream support for u-boot nor linux kernel development for this board, but there is good armbian community support for this board. So this article documents how the author generated a gentoo system on this board using an armbian-built u-boot boot loader, device tree, and kernel.
Overall status: So far, the board has a gentoo rootfs system, a custom armbian-built amd64-cross-compiled u-boot, and an armbian-built amd64-cross-compiled armbian kernel and initrd. It is also resourced with upstream kernel sources (cdn.kernel.org) using "rockchip-sources" (a custom ebuild is available in the "joetoo" repository -- https://github.com/JosephBrendler/joetoo). The u-boot bootloader, device tree blob (dtb) file, and kernel wwere built on an ubuntu virtualbox client, amd64-cross-compiling desktop workstation. The resulting kernel/dtb/modules tar image is hosted locally in the author's network, for access from custom sys-kernel/linux-rk3588s-orangepi-5_armbian_kernel_image-<version>.ebuild
Hardware
Specifications
Make/model | Notes | |
---|---|---|
Board
Orange Pi 5B(4GB/8GB/16GB) |
dtb: rk3588s-orangepi-5b.dtb | |
SoC | Rockchip RK3588s (8nm LP process) | datasheets |
RAM | 16GB | LPDDR4/4X |
Firmware | U-Boot | cross-compiled by user on Ubuntu in Virtualbox hosted on AMD64 Windows 11 desktop PC |
Trusted Firmware A (ATF) | cross-compiled by user on Ubuntu in Virtualbox hosted on AMD64 Windows 11 desktop PC | |
Boot media | SD card | 128G eMMC ** |
SoC
The hardware is tested on kernel version 6.1.43-vendor-rk35xx (ARM64). The 6.8.12 "current" kernel was been built, but failed to boot
Device | Make/model | Status | kernel drivers | Notes |
---|---|---|---|---|
CPU | 8-core 64-bit processor Rockchip RK3588s
4 x Cortex-A76, freq 2.4GHz 4 x Cortex-A55, freq 1.8GHz |
Works | ||
GPU | Mali-G610 MP4 gpu, Compatible with OpenGL ES1.1/2.0/3.2, OpenCL 2.2 and Vulkan 1.2. | Works | ||
NPU | Built-in AI accelerator NPU with up to 6 TOPS, supports INT4/INT8/INT16 mixed operation. | Not tested | ||
Memory | LPDDR4/4X 16GB 64bit | Works | ||
Storage | 128G eMMC. Tested with Android image but then became inaccessible for re-loading (bug). There is a maskrom button, but the author has not succeeded w/ eMMC recovery, yet. | Did Not Work | eMMC recovery (procedure) | |
Storage | MicroSD (TF) Card slot | Works | ||
Display | HDMI2.1, up to 8K@60Hz
DP1.4 (DisplayPort), maximum output resolution up to 8K@30Hz MIPI DSI 4 lanes via FPC connector 2 * MIPI D-PHY TX 4Lane, configurable up to 4K @60Hz |
HDMI Works | HDMI works. DisplayPort and MIPI not tested. | |
Audio | 3.5mm headphone jack audio input/output
Input: Onboard MIC HDMI 2.1 eARC |
Not tested | CODEC: ES8388 | |
Camera | MIPI CSI 4 Lane. 2 x MIPI D-PHY RX 4 Lane. | Not tested | ||
Wi-Fi, BT module | On-board Wi-Fi6+BT 5.3 module, Wi-Fi6 interface: PCIe, BT interface: PCM+UART
2 x external antennae |
Works | WiFi works w ap6275p.dtbo overlay, dhd driver, wpa_supplicant. BT not tested | |
USB | USB 3.0 OTG X1, upper one, software configurable to be host or OTG,
USB 3.1 HOST x 1 (left, vertical) USB 2.0 HOST x 2 (stacked right, horizontal) USB Type-C (3.1) x 1 |
Works | ||
Ethernet | 10/100/1000Mbps Ethernet | Works | ||
IO | 26-pin expansion header
4 x UART 1 x SPI bus 3 x I2C bus 1 x PCM/I2S 6 x PWM 1 x CAN 16 x GPIO 2 x 5V DC power 2 x 3.3V DC power |
Works | PWM, SPI, I2C, CAN not tested | |
Others | RTC | Not tested | ||
Power | USB C 5V/3A | Works | PMU RK806-1 |
Accessories
- Purchased separately: case, heat sinks, fan, and power supply.
- Keyboard, mouse, micro-HDMI cable, and FTDIboard-with-miniUSB cable provided separately by the user
Board Layout
GCC optimization[1]
COMMON_FLAGS="-O2 -pipe -mcpu=cortex-a76.cortex-a55+crc+crypto"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
For a hardened system consider appending
-fstack-protector-all
Gentoo Installation Options and Procedures
Getting to Know the Board
The purpose of this guide is to document "from scratch" procedures for installing a pure gentoo system on this SBC. However the quicker way to get gentoo up and running is to install another distribution, and replace the root file system contents. See Getting to Know the Board
Bootloader Build and Installation
To build a U-Boot bootloader from sources, see Build-Install-U-Boot
Assemble a Working Gentoo System
To assemble a working Gentoo system with minimal effort, using resources developed above, consult Assemble a Gentoo System
Kernel Build and Installation
To build a gentoo linux kernel (including modules, device tree blobs, etc) from sources, see Build-Install-Kernel
Bootable Gentoo system images
To use pre-built bootable system images files, see Bootable-System-Images
External resources
- OrangePi 5b web site, accessed circa 1 January 2024
- OrangePi 5b user manual, retrieved 14 July 2024
- Orange Pi 5b hosted-software, 14 July 2024
- OS Image Downloads, accessed 14 July 2024
- How to Compile Armbian: Step-by-Step Tutorial for Beginners, first visit circa 23 September 2023
- old Gentoo forum discussion, OP Nov 27, 2023