Linux kernel on Orange Pi 4
Using Linux kernel on an Orange Pi 4.
This page is focused just on building a kernel. For the related required components, see Linux on Orange Pi 4.
Prerequisite: U-Boot on Orange Pi 4
Next steps: rootfs on Orange Pi 4
TODO: THIS!
Contents
Overview
In order to build a Linux kernel you'll need:
- Linux kernel source
- (optional) Patches to add support for the specific hardware
- Cross-compilation toolchain if building on a different device than Orange Pi 4
Setup
Linux kernel
TODO: Git clone
Kernel patches
TODO: Switch to a Mainline Linux. Right now we're using a BSP Linux kernel which already supports Orange Pi 4.
Cross-compilation
This is needed only if you're building on a different architecture, e.g. on an x86_64 computer.
TODO: Linaro + instructions?
CROSS_COMPILE=/path/to/toolchain/bin/aarch64-linux-gnu-
Compiling
TODO: compilation
Generate .config file
cd linux make ARCH=arm64 CROSS_COMPILE=$CROSS_COMPILE rk3399_linux_defconfig
Compile the kernel
CORES=4 # number of CPU cores
make ARCH=arm64 CROSS_COMPILE=$CROSS_COMPILE -j${CORES} rk3399-orangepi.img
You should see something like this at the end of the compilation:
Pack to resource.img successed! Image: resource.img (with rk3399-orangepi.dtb logo.bmp logo_kernel.bmp) is ready Image: boot.img (with Image resource.img) is ready Image: zboot.img (with Image.lz4 resource.img) is ready
TODO: Customize boot logo.
TODO: Modules? Img to flash? boot.img
Flashing
TODO: Building an SD Card image file would be better
dd if=boot.img of=sdb seek=32768
Related
External Links
- Mainline Linux kernel [1]
- Github mirror [2]
- Rockchip Kernel [3]
- Xunlong BSP kernel [4]
- instructions for older Orange Pis [5]
- compilation script [6]
- Armbian kernel patches [7]