1. Configs is not compiling

Q: I have modified the kernel to add new drivers but the configs is not compiling (Android12)

❶ Execute the commands to reconfig the kernel.

cd kernel
make ARCH=arm64 menuconfig

❷ After reconfig, rename the file kernel\.config to rockchip_defconfig.

❸ Copy the file kernel\rockchip_defconfig to replace \kernel\arch\arm64\configs\rockchip_defconfig

It is recommended to back up the original rockchip_defconfig before replacing.

Note

  1. Some SDK has multiple kernel directories, eg. kernel, kernel-4.19, kernel-5.10. User need to know which kernel directory is used according to kernel compilation instructions.

  2. The configuration file rockchip_defconfig used by default may be different in different systemsigs, and according to the kernel compilation directives, you can know which configuration file is used in the kernel/arch/arm64/configs/ directory.

2. ERROR: Running build_kernel failed!

Q: I downloaded the source code,when I try to compile, I got this error:

@ubuntu:/home/idea3588/buildroot$  ./build.sh kernel

processing option: kernel

============Start building kernel============

TARGET_ARCH     =arm64
TARGET_KERNEL_CONFIG =rockchip_linux_defconfig
TARGET_KERNEL_DTS  =rk3588-evb2-lp4-v10-edp-linux
TARGET_KERNEL_CONFIG_FRAGMENT =

==========================================

#
# No change to .config
#
  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
  CHK    include/generated/compile.h
  LZ4C    arch/arm64/boot/Image.lz4
fatal: youe current branch 'master' does not have any commits yet
Incorrect parameters
Usage :
     lz4 [arg] [input] [output]
input   : a filename
     with no FILE, or when  FILE is - or stdin, read standard input
Arguments :
 -1   : Fast compression (default)
 -9    : High compression
 -d   : decompression (default for .lz4 extension)
 -z   : force compression
 -f   : overwrite output without prompting
 -h/-H  : display help/long help and exit

arch/arm64/boot/Makefile:31: recipe for target 'arch/arm64/boot/Image.lz4'  failed

make[2]: *** [arch/arm64/boot/Image.lz4] Error 1
make[2]: *** Deleting file 'arch/arm64/boot/Image.lz4'
arch/arm64/Makefile:170: recipe for target 'Image.lz4' failed
make[1]: *** [Image.lz4] Error 2
make[1]: *** Waiting for unfinished jobs....
arch/arm64/Makefile:214: recipe for target 'rk3588-evb2-lp4-v10-edp-linux.img'  failed
make: *** [rk3588-evb2-lp4-v10-edp-linux.img] Error 2
ERROR: Running build_kernel failed!
ERROR: exit code 2 from line 656:
   make ARCH=$RK_ARCH $RK_KERNEL_DTS.img -j$RK_JOBS

Cause: The version of lz4 delivered with the compilation system is too early.

Solution: update to V1.8.3 or later.

lz4 -v            //check the compiler lz4 version
sudo cp /out/host/linux-x86/bin/lz4 /usr/bin/lz4   //copy lz4 from the Android source directory to override the compiler's

or remove the built-in lz4, download and install a new lz4

sudo apt-get remove liblz4-tool
sudo git clone https://github.com/lz4/lz4.git
cd /lz4
sudo make
sudo make install