Skip to content

CPU, GPU and RAM

Dave edited this page Aug 11, 2026 · 3 revisions

dArkOSen includes a custom kernel configuration that provides additional CPU performance headroom, along with two tools for controlling the system's CPU, GPU, and memory settings:

These tools provide different approaches to performance management.

CPU Manager is the dArkOSen-native tool and includes a persistent mode that can apply CPU settings across boots without interfering with R36 Tuner.

R36 Tuner provides more direct runtime control over the available CPU, GPU, and memory-related settings.

The two tools can coexist. Persistent CPU Manager settings do not prevent R36 Tuner from being used for runtime adjustments.


dArkOSen Custom Kernel

dArkOSen uses a custom RK3326 kernel configuration with additional CPU frequency support.

It was very much inspired by teacupx's dArkOS CPU Overclock and finished with help from the repository for Arkos4Clone. Pretty much all credit should go to those sources, their methods were implemented in dArkOSen's kernel. The OC kernel I designed really pushed performance but would have cooked a lot of CPUs if people weren't careful. This version is far safer. They deserve a thank you.

The standard dArkOS CPU configuration is constrained by the CPU's device-tree configuration and the silicon-bin information reported by the SoC.

dArkOSen modifies this system so that additional frequency points can be made available on supported hardware.

The current dArkOSen configuration provides:

  • 1296 MHz default CPU frequency
  • 1512 MHz maximum CPU frequency
  • 600 MHz maximum GPU frequency
  • 520 MHz default GPU frequency
  • 768 MB maximum ZRAM

The additional CPU frequencies are not simply a matter of changing the displayed clock value.

The CPU frequency subsystem, Rockchip performance-bin selection, voltage configuration, and device-tree OPP table all have to agree on the available operating points.

The dArkOSen kernel provides the necessary support for selecting the additional operating points, while the dArkOSen DTBs provide the corresponding frequency and voltage definitions.

This is why using an arbitrary DTB with the dArkOSen kernel can prevent the higher frequencies from being available.


CPU Overclocking

The RK3326 uses operating performance points (OPPs) to associate CPU frequencies with the operating conditions required to run them.

A higher frequency requires an appropriate voltage and a valid operating point.

The dArkOSen configuration extends the available CPU operating range beyond the standard configuration, allowing frequencies up to 1512 MHz on supported dArkOSen DTBs.

The kernel also handles the Rockchip CPU performance-bin mechanism used to determine the available operating range.

This is important because simply requesting a higher frequency does not necessarily make the CPU capable of operating at that frequency. The frequency must exist as a valid operating point and the kernel must permit it to be selected.

dArkOSen therefore modifies the CPU frequency path rather than simply reporting a higher number to userspace.


Thermal Protection

Overclocking does not disable the RK3326's thermal management.

The kernel continues to monitor CPU temperature and dynamically restricts CPU frequency when the device becomes too hot.

The thermal system has multiple levels of protection:

  • 70°C: thermal management begins reducing available performance.
  • 85°C: more aggressive thermal throttling is applied.
  • 115°C: emergency thermal protection shuts the system down.

Temperature is monitored continuously by the kernel's thermal management system.

The purpose of these limits is to prevent the CPU from continuing to operate at maximum frequency as temperature rises.

Overclocking therefore does not mean the CPU is forced to operate at 1512 MHz regardless of temperature.


CPU Manager

CPU Manager

CPU Manager provides a controller-friendly interface for managing CPU performance on dArkOSen.

It can be used to change CPU operating parameters without manually editing kernel configuration, boot parameters, or system files.

CPU Manager also provides persistent mode.

Persistent mode is useful when you want a particular CPU configuration to be applied automatically rather than manually setting it after every boot.

Persistent mode and R36 Tuner

CPU Manager's persistent mode is designed so that it does not interfere with R36 Tuner.

This allows CPU Manager to establish the desired persistent configuration while R36 Tuner remains available for runtime tuning.

This is intentional. You do not need to choose one tool and remove the other.


R36 Tuner

R36 Tuner

R36 Tuner provides runtime performance controls for the R36 platform.

It can be used to adjust available CPU and GPU performance settings and memory-related configuration without modifying the underlying dArkOSen installation.

R36 Tuner is particularly useful when testing different performance settings for individual emulators or workloads.

For example, a frequency that provides no measurable benefit for one emulator may provide additional performance for another. Runtime tuning allows those settings to be changed without rebuilding or modifying the system.


GPU

dArkOSen configures the GPU for operation up to 600 MHz, compared with the standard 520 MHz configuration (thanks to R36 Tuner).

The GPU frequency is subject to the same practical limitations as CPU overclocking:

  • Higher frequency does not guarantee higher performance.
  • The workload must actually be GPU-bound for a higher GPU clock to provide a benefit.
  • Higher operating frequency can increase power consumption and heat.
  • Thermal management remains active.

GPU settings can be managed using CPU Manager or R36 Tuner.


ZRAM

dArkOSen enables a default of 768 MB of ZRAM.

ZRAM creates a compressed block device in system RAM that can be used for compressed swap.

Instead of immediately writing inactive memory pages to slower storage, the system can compress those pages in RAM.

This does not increase the physical amount of RAM in the device.

The R36 still has its physical memory limit. ZRAM effectively trades some CPU time for additional usable memory capacity by compressing less-active memory pages.

This can be useful on a device with limited physical RAM, particularly when multiple services or applications are active.


Overclocking and Stability

The maximum frequency is not a guarantee that every individual chip will behave identically.

RK3326 devices are manufactured with normal silicon variation. Two otherwise identical devices can have different stability characteristics at the same operating point.

dArkOSen therefore retains thermal management and the normal CPU frequency control mechanisms rather than forcing the CPU to remain permanently at maximum frequency.

If a particular device becomes unstable at a higher frequency, reduce the CPU or GPU setting rather than assuming that the system or emulator is defective.

Symptoms of an unstable overclock can include:

  • Application crashes
  • Emulator crashes
  • System lockups
  • Reboots
  • Corrupted or incomplete operations
  • Unexpected behaviour under sustained load

If instability occurs, return the relevant setting to a lower frequency and retest.


Recommended Approach

For normal use:

Leave the dArkOSen defaults alone.

The default configuration is already tuned to provide additional performance without requiring the user to manually configure the system.

Use CPU Manager when you want persistent CPU, GPU or memory settings.

Use R36 Tuner when you want to experiment with CPU, GPU, or memory settings at runtime.

Do not assume that maximum frequency is automatically the best setting. The correct setting is the highest stable setting that provides a measurable benefit for the workload.

Clone this wiki locally