====== Kernel Porting and Configuration ====== ==== Kernel Porting ==== The zipped kernel linux-sunxi-sunxi-3.4.61.tar.gz can be found on [[http://dl.cubieboard.org/parteners/waveshare/Source_Code/COMMON/|linux-sunxi-sunxi-3.4.61.tar.gz]], the kernel config file can be found on [[http://dl.cubieboard.org/parteners/waveshare/Source_Code/a20-cubieboard-dvk/kernel_configs/|cubieboard2_defconfig]] Or can be obtained from the internet: https://github.com/linux-sunxi/linux-sunxi/releases , To avoid unexpected error while porting, please download the 3.4.61 version kernel. === Extract the kernel source code === Assume that the source code was placed under /home/waveshare/cubieboard2/kernel directory, use the following command to extract it: #cd /home/waveshare/cubieboard2/kernel #tar -xzvf linux-sunxi-sunxi-3.4.61.tar.gz Now we get the original linux-sunxi-sunxi-3.4.61 source code, rename it as linux-sunxi-sunxi-3.4.61_A20, as shown in the picture below: {{:tutorials:dvk521:documentations:a20:a20_1.jpg}} === Assign the cross compiler === Modify the Makefile under root directory: #cd linux-sunxi-sunxi-3.4.61_A20 #vi Makefile Edit the following lines: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= As: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= arm-linux-gnueabihf- ARCH specifies the target platform as arm, CROSS_COMPILE assigns the cross compile tool chain. As shown in the picture below: {{:tutorials:dvk521:documentations:a20:a20_2.jpg}} Note: the vim editor is recommended. === Clear the temp files === Under the root directory, enter: #make clean === Copy the default config file === Under the root directory, enter: # cp ../cubieboard2_defconfig .config A hidden .config file will be generated under the root directory. === Config the kernel === Under the root directory, enter: #make menuconfig Config the kernel on the popup window, as shown in the picture below: {{:tutorials:dvk521:documentations:a20:a20_3.jpg}} === Compile the kernel === Under the root directory, enter: #make uImage It will take much time to complete the compiling. When completed, the compressed kernel image will be generated under linux-sunxi-sunxi-3.4.61_A20/arch/arm/boot directory.