User:Brendlefly62/Rockchip RK3588S OrangePi 5B

From Gentoo Wiki
Jump to:navigation Jump to:search

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

Tip
* 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

"OrangePi 5b in "GeekPi" case, shown with switched 3A power supply attached, and 3 x LEDs connected for monitoring headless status of VPN, services, and cpu temp; also shown with uart header wired for connection to FTDI-USB serial monitor on PC"

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

Note
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]

FILE /etc/portage/make.confRK3399 example
COMMON_FLAGS="-O2 -pipe -mcpu=cortex-a76.cortex-a55+crc+crypto"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Note
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

References