7.1 Compile Kernel Image
to compile the image of kernel. After the compilation is done, there will be a file named zImages under "arch/arm/boot", we can burn this file into the TQ2440 board, and the boot will be like:
7.2 Save the Image to the specified location
For conviency, I also change the "Makefile" under "arch/arm/boot", in line 58, we added the following marked as red. The red part move the generated zImage to the root directory of the kernel, i.e.e, linux-184.108.40.206, and rename it as zImage.bin:
@cp -f arch/arm/boot/zImage zImage.bin
@echo ' Kernel: $@ is ready'
We also change the Makefile under the root directory, line line 1156 (220.127.116.11) and line 1255 (18.104.22.168), add the following (marked as red), so that when we do
to clean the generated files, the zImage under the root will also be removed.
@find $(srctree) $(RCS_FIND_IGNORE)
( -name '*.orig' -o -name '*.rej' -o -name '*~' -o -name '*.bak' -o -name '#*#' -o -name '.*.orig'
-o -name '.*.rej' -o -size 0
-o -name '*%' -o -name '.*.cmd' -o -name 'core' )
-type f -print | xargs rm -f rm -f zImage.bin
Note 1: until now, the kernel can just barely boot, we haven't done any driver work of NAND Flash, so this is just first step.
Additional comments: We can also add a platform option for our board TQ2440, how to do?
An example explained using linux-22.214.171.124:
Add our own platform TQ2440 (follows SMDK244), first we analyze the dependency relationship of SMDK2440, mainly look at the Kconfig and Makefile under "arch/arm/machs3c2410/"
¡¢"arch/arm/mach-s3c2440/" and "arch/arm/plat-s3c24xx/". Two important options ARCH_S3C2410 and MACH_SMDK. We follow it to make our own platform config.
Copy "arch/arm/mach-s3c2440/mach-smdk2440.c" as "mach-tq2440.c"
(Note: in the already ported kernel source files we provided, because we first modify config of smdk2440 options, and then copy to TQ2440, so machsmdk2330.c and mach-tq2440.c are almost identical.)
Copy "arch/arm/plat-s3c24xx/common-smdk.c" as "common-EmbedSky.c"£¬
Copy "arch/arm/plat-s3c24xx/include/plat/common-smdk.h" as"common-EmbedSky.h"¡£
You can also refer to the ported kernel source files for reference.
Note 2: When porting Linux-126.96.36.199, modifying mac-smdk2440.c referring to mach-tq2440.c in our files, and
modifying common-smdk.c refering to common-EmbedSky.c in the source files we provided.