日期:2014-05-16 浏览次数:21164 次
一、内核配置和编译
1.修改顶层Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux- 根据自己的环境修改交叉编译器前缀
2.修改arch/arm/boot/Makefile增加一行
@echo ' Kernel: $@ is ready'
cp $@ /tftpboot/ 根据自己的ftp服务器目录修改
3.匹配机器码
1) 启动u-boot执行bdinfo将输出开发板的相关信息,包括机器码
TQ2440 # bd
arch_number = 0x0000016A 机器码362
boot_params = 0x30000100
DRAM bank = 0x00000000
-> start = 0x30000000
-> size = 0x04000000
ethaddr = 00:01:02:03:04:05
ip_addr = 192.168.1.100
baudrate = 115200 bps
TLB addr = 0x33FF0000
relocaddr = 0x33F40000
reloc off = 0x33F40000
irq_sp = 0x33B2FF68
sp start = 0x33B2FF58
FB base = 0x00000000
TQ2440 #
2) 新版u-boot可以设置环境变量machid来更改机器码
TQ2440 # set machid 0x16A
3) 内核机器码:arch/arm/mach-s3c2440/mach-smdk2440.c
MACHINE_START(S3C2440,"SMDK2440")
其中的S3C2440即为机器码
再查看arch/arm/tools/mach-types 第379行即为S3C2440所对应的机器码362,必须和u-boot的机器码相同,否则没法启动内核
4.修改系统时钟
arch/arm/mach-s3c2440/mach-smdk2440.c我们的开发板使用12MHZ
s3c24xx_init_clocks(12000000);
5.执行默认配置
root@zjh:/home/work/linux-2.6.36.4#make s3c2410_defconfig
6.配置内核
root@zjh:/home/work/linux-2.6.36.4#make menuconfig
Kernel Features --->
[*] Use the ARM EABI tocompile the kernel
&