按照官方手册进行mini2440 linux移植及遇到的问题

按照”Mini2440 Linux移植开发实战指南.pdf”(2010-4-14版)来操作

一.按部就班

1.安装arm-linux-gcc 4.3.2

2.修改顶层makefile指定交叉编译变量:


export KBUILD_BUILDHOST := $(SUBARCH)
ARCH    ?= $(SUBARCH)
CROSS_COMPILE ?= 
改为
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH    ?= arm
CROSS_COMPILE ?= arm-linux-

3.将 linux-2.6.32.2/arch/arm/mach-s3c2440/目录下的 mach-smdk2440.c 复制一份。命名为
mach-mini2440.c ,找到 MACHINE_START(S3C2440, "SMDK2440") ,修改为
MACHINE_START(MINI2440, "Cody’s mini2440 DevBoard")。

4. 修改时钟源频率为12MHz(12000000)

5. 替换所有mach-mini2440.c中的smdk2440为mini2440,在 mini2440_machine_init(void)函数中,把
smdk_machine_init()函数调用注释掉.

6. make mini2440_defconfig然后make zImage,成功!

7. 把生成的zImage文件烧到板上运行,出现如下错误:

Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySA
C0"
MACH_TYPE = 1999
NOW, Booting Linux......
Uncompressing Linux.............................................................
.................................................................... done, booti
ng the kernel.

到这里就不动了,把开关拨到从Nand启动,还是出现上面几行字就不动了.

二.先不管它,按照实战手册后面的说明继续做下去.在mach-mini2440.c中加入如下代码:

Code

 

再修改如下信息,加入红色那一行

static struct platform_device *mini2440_devices[] __initdata = {
    &s3c_device_usb,
    &s3c_device_lcd,
    &s3c_device_wdt,
    &s3c_device_i2c0,
    &s3c_device_iis,
   &s3c_device_nand, //;把nand flash设备添加到开发板的设备列表结构
};

重新make zImage,这次出现很多错误,看不懂

错误信息

baidu一下,发现有人(原文)遇到同样的错误,OK,按照原文的做,在mach-mini2440.c加入头文件,在 static void __init mini2440_map_io(void)加入红色内容

#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <plat/nand.h>

static void __init mini2440_map_io(void)
{
    s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));
    s3c24xx_init_clocks(120000000);
    s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs));
    s3c_device_nand.dev.platform_data = &mini2440_nand_info;
}

再次make试试看....

还是出现错误,提示找不到mini2440_nand_info'

错误信息

可能是分区信息在文件的后面导致找不到的原因,把第二步加入的分区信息移到最前面试试看…经过十多分钟,make成功了,把zImage下载到板上试试看

郁闷,跟第一步信息一下,到booting the kernel.就不到了. 下班了,先吃饭去,下午再回来试试.

-------------------------------------------------------------------------------------------

下午,实在不知道问题在哪里,修改一下mach-mini2440.c,源代码如下(网上copy的):

mach-mini2440.c

可以启动了,神了,但是还是有错误:

错误信息

 

 

可能是分区不对,先不管,移植文件系统再说.贴上完整的启动信息

启动信息


 

posted @ 2010-07-08 14:18  OpenUSB  阅读(3402)  评论(0)    收藏  举报