obj-$(CONFIG_MACH_NCP) += mach-ncp.o
obj-$(CONFIG_MACH_HMT) += mach-hmt.o
obj-$(CONFIG_MACH_SMARTQ) += mach-smartq.o
obj-$(CONFIG_MACH_SMARTQ5) += mach-smartq5.o
obj-$(CONFIG_MACH_SMARTQ7) += mach-smartq7.o
三、About machine Number
打开arch/arm/tools/mach-types文件定位到217行左右,修改如下
at91sam9g20ek MACH_AT91SAM9G20EK AT91SAM9G20EK 1624
qt6410 MACH_QT6410 QT6410 1626
u300 MACH_U300 U300 1627
这需要两者相匹配,如果内核的机器码和bootloader 传入的不匹配,就会经常出现下面的错误:
Uncompressing Linux................................................................................................................................. done, booting
the kernel. 不动了
接着修改linux-2.6.39/arch/arm/mach-s3c64xx/qt6410.c定位到文件末尾处
四、配置、编译测试
root@bootloader:/home/eilian/development/Linux/linux-2.6.39#cp arch/arm/configs/s3c6400_defconfig .config
root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make menuconfig
出现下图所示内核配置根菜单


设置完后退出
root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make uImage
等待若干久后出现
SYSMAP .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
CC arch/arm/boot/compressed/misc.o
CC arch/arm/boot/compressed/decompress.o
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-2.6.39
Created: Mon Dec 12 20:29:35 2011
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1266444 Bytes = 1236.76 kB = 1.21 MB
Load Address: 50008000
Entry Point: 50008000
Image arch/arm/boot/uImage is ready
root@bootloader:/home/eilian/development/Linux/linux-2.6.39#cparch/arm/boot/uImage /tftpboot/
给开发板上电(开发板已烧入uboot)打开超级终端