Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138003
  • 博文数量: 28
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-14 10:02
文章分类

全部博文(28)

文章存档

2014年(12)

2013年(16)

我的朋友

分类: 嵌入式

2014-07-09 14:44:30

本移植主要参考友善之臂移植手册完成,做个笔记以备不时之需
Linux-2.6.32 在Mini2440上的移植(一)
使用环境:fedora9
交叉编译工具链:arm-linux-gcc-4.4.3
内核源码来源:
内核存放目录:/opt/mymini2440/linux-2.6.32
说明:红色部分为代码修改部分

(1)指定交叉编译变量
#cd /opt/mymini2440/linux-2.6.32/
#vim Makefile
在182行附近做如下修改:
  1. 182 export KBUILD_BUILDHOST := $(SUBARCH)
  2. 183 ARCH ?= arm
  3. 184 CROSS_COMPILE ?= arm-linux-
#make s3c2410_defconfig
#make zImage
(2)克隆自己的目标平台
删除原有的mach-mini240.c
#rm -rf arch/arm/mach-s3c2440/mach-mini2440.c 
复制mach-smdk2440.c并命名为mach-mini2440.c
#cp -r arch/arm/mach-s3c2440/mach-smdk2440.c arch/arm/mach-s3c2440/mach-mini2440.c
#vim arch/arm/mach-s3c2440/mach-mini2440.c
在176行附近作如下修改:
  1. 176 MACHINE_START(MINI2440, "FriendlyAR MINI2440 Board")
  2. 177 /* Maintainer: Ben Dooks <ben@fluff.org> */
  3. 178 .phys_io = S3C2410_PA_UART,
在163行附近修改时钟频率为12M
  1. 160 static void __init smdk2440_map_io(void)
  2. 161 {
  3. 162 s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
  4. 163 s3c24xx_init_clocks(12000000);
  5. 164 s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
  6. 165 }
在173行附近注释掉 smdk_machine_init()
  1. 167 static void __init mini2440_machine_init(void)
  2. 168 {
  3. 169 s3c24xx_fb_set_platdata(&mini2440_fb_info);
  4. 170 s3c_i2c0_set_platdata(NULL);
  5. 171
  6. 172 platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
  7. 173 //smdk_machine_init();
  8. 174 }
从smdk2440到mini2440
:%s/smdk2440/mini2440/g
使用Linux官方自带的mini2440配置配置内核并编译
#ma
ke mini2440_defconfig
#make zImage

至此已成功克隆了自己的目标平台(上一次移植时进行了编译下载和启动,经证实能顺利启动),本次为了节省时间我们不做编译,我们将在后续修改完nand分区表和添加了yaffs2支持后一起编译



阅读(1592) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~