日期:2014-05-16  浏览次数:21183 次

linux-2.6.36.4移植到TQ2440

一、内核配置和编译

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

   &