三牛电子工作室 https://bbs.21ic.com/?566798 [收藏] [复制] [RSS] 我的工作室,哈哈哈

日志

【原创】移植linux到mini2440遇到问题总结(一)

已有 1915 次阅读2013-2-21 17:03 |个人分类:嵌入式开发|系统分类:ARM| mini2440, linux

一直没有搞linux的移植,以前都是直接用现成的,总感觉不是自己的知识。于是决定静下心来,好好学习一下怎么移植linux系统,对着《Mini2440 Linux移植开发实战指南》一步步的做,还是遇到了不少问题,这个教程由些地方还是没有讲的很细,还有一些漏洞,于是跟着教程一步步做了,把遇到的问题记下,上网找答案,非常感谢网络上这些资源。希望对和三牛一样,在移植的过程中的遇到问题的同志有帮助。

一.机器码的问题

找到 MACHINE_START(S3C2440, "SMDK2440") ,修改为
MACHINE_START(MINI2440, "FriendlyARM Mini2440 development board")。
请注意S3C2440 修改问MINI2440着是最关键的地方,一定不能搞出,注意大小是MINI2440

二nand FLASH控制器的问题
这个地方教程了漏了一下部分
注意红色字体那部分,怎么手册是没有说明?
static void __init mini2440_machine_init(void)
{
    s3c24xx_fb_set_platdata(&mini2440_fb_info);
    s3c_i2c0_set_platdata(NULL);

    platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
    s3c_device_nand.dev.platform_data = &friendly_arm_nand_info;//添加
//    smdk_machine_init();
}
再增加一些头文件才行
#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>  
串口输出信息
s3c24xx-nand s3c2440-nand: NAND soft ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 4113 at 0x000020220000
Bad eraseblock 6303 at 0x0000313e0000
Bad eraseblock 6891 at 0x000035d60000
Bad eraseblock 7592 at 0x00003b500000
Creating 5 MTD partitions on "NAND 1GiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "supervivi"
uncorrectable error :
0x000000040000-0x000000060000 : "param"
uncorrectable error :
0x000000060000-0x000000560000 : "Kernel"
0x000000560000-0x000040560000 : "root"
mtd: partition "root" extends beyond the end of device "NAND 1GiB 3,3V 8-bit" -- size truncated to 0x3faa0000
ftl_cs: FTL header not found.
0x000000000000-0x000040000000 : "nand"
uncorrectable error :

三,移植yaffs2

特别注意这么地方,教程的上的命令就是不行,可能版本的原因吧,记下啦,要用这个命令参数才能打补丁
./patch-ker.sh c m /opt/FriendlyARM/mini2440/linux-2.6.32.2


暂时就这些吧,其他的按照教程来就OK.
三牛电子工作室http://www.sanliu85.com/

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)