Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Rockpi4/dev/kernel-mainline

< Rockpi4‎ | dev
    ROCK Pi 4 >  Development >  Build mainline kernel(5.x)

ROCK Pi 4 is officially supported in mainline kernel since v5.1 thanks to developer Akash Gajjar from Mentor. Below is how to build it on a X86 Linux host PC and run on ROCK Pi 4.

Get the mainline kernel source

   wget https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-5.2-rc6.tar.gz
   tar -xvzf linux-5.2-rc6.tar.gz
   cd linux-5.1.15/

Install toolchain from Linaro

   wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
   sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/
   export ARCH=arm64
   export CROSS_COMPILE=/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

Build kernel

   make menuconfig
  • In the menu-config TUI:
*Navigate to Platform selection  ---> Rockchip Platforms
*Select Rockchip Platforms
   make -j6

copy arch/arm64/boot/Image and arch/arm64/boot/dts/rk3399-rock-pi-4.dtb to your ROCK Pi 4.

If you run on debian you should Install the latest u-boot and kernel before Install mainline kernel on ROCK Pi 4.

Install the latest u-boot and kernel

   apt-get install rockpi4b-rk-u-boot-latest

Manually run the u-boot flash script

   /usr/local/sbin/rockpi4b_upgrade_bootloader.sh


Type YES to perform the uboot.img flashing.

then install kernel

   apt-get install linux-base
   apt-get install linux-4.4-latest


After installation, check file /boot/extlinux/extlinux.conf. It lists all kernel version installed in ROCK Pi. The kernel corresponding to the first label is the newest version and the first boot option.

Install it on ROCK Pi 4.

   rockpi4# cp Image rk3399-rock-pi-4.dtb /boot/
   rockpi4#vi /boot/extlinux/extlinux.conf
  • Change the contents to:
  label kernel-mainline
  kernel /Image
  fdt /rk3399-rock-pi-4.dtb
  append earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m earlyprintk console=ttyS2,1500000n8 rw root=PARTUUID=b921b045-1d rootfstype=ext4 init=/sbin/init rootwait

Reboot you will have the new kernel booting.