Panel For Example Panel For Example Panel For Example

Porting the Linux Kernel to RK3399

Author : Adrian May 13, 2026

 

Overview

RK3399 is a high-performance processor from Rockchip, a China-based vendor, and is widely used in embedded systems development. Before developing applications, the Linux kernel must be ported to RK3399 so the hardware drivers and features are supported. This article describes the typical steps to port the Linux kernel to RK3399.

 

RK3399 hardware features

RK3399 is based on the ARM architecture, with a dual-core Cortex-A72 and a quad-core Cortex-A53 cluster. It supports the Mali-T864 GPU and provides a range of peripheral interfaces such as USB, HDMI, and Ethernet. When porting the Linux kernel, confirm that the kernel supports these interfaces and features.

 

Obtain the kernel source

Download the Linux kernel source from the official kernel site or an open-source community. Identify the specific RK3399 development board model and manufacturer before selecting the kernel version and configuration, since different boards may require different patches or device tree files.

 

Kernel configuration

After obtaining the source, configure the kernel for RK3399. The kernel configuration file is usually located at the root of the kernel source and is named .config. Open this file with a text editor and enable options appropriate for RK3399, for example ARM64 architecture support and relevant hardware interface drivers.

Each option in the configuration file includes comments explaining its purpose. Enable or disable features as needed, then save and close the file.

 

Build the kernel

Build the kernel by running make from the kernel source root. The build time depends on the host system performance and the amount of enabled features. Ensure the cross-compiler and build environment are set up for ARM64 before building.

 

Generate kernel image and device tree

After a successful build, generate the kernel image and the device tree blob (DTB) files. The kernel image is a binary used to boot the Linux system. Device tree files describe hardware configuration and inform the kernel how to initialize and drive the board peripherals.

 

Flash and test

Flash the kernel image and device tree files to the RK3399 development board storage using the appropriate flashing tools for the board. Connect the board to a display and input devices, then boot the system. If the configuration and drivers are correct, the system should boot and provide the expected hardware functionality.

 

Troubleshooting

During testing, you may encounter issues related to device drivers, hardware compatibility, or configuration errors. Use system logs, kernel debug output, and board-specific documentation to diagnose problems. Community forums and vendor resources can also help identify patches or configuration changes required for specific boards.

 

Summary

Porting the Linux kernel to RK3399 involves understanding the platform hardware, obtaining the correct kernel source, configuring the kernel for ARM64 and RK3399 peripherals, building the kernel, generating the kernel image and device tree files, and flashing and testing on the development board. Following these steps enables embedded system development on RK3399-based boards.