移植linux文件系统遇到的问题 tq2440

时间:2022-01-08 16:30:16

说明:移植是按照tq2440的教程进行移植的。但是其中避免不了出现一些小的问题。

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

1、yaffs2文件系统去哪里下载?

http://www.aleph1.co.uk/gitweb?p=yaffs2.git;a=snapshot;h=4e188b08c5531f99f73383a85251e03a1e667b26;sf=tgz


2、编译buzybox出错

信息如下:

In file included from/opt/EmbedSky/4.3.3/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/if_tunnel.h:5,
 

               from/opt/EmbedSky/BusyBox-1.2.0/networking/libiproute/iptunnel.c:32:
/opt/EmbedSky/4.3.3/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/ip.h:85:error: redefinition of 'struct iphdr'
make[1]: ***[/opt/EmbedSky/BusyBox-1.2.0/networking/libiproute/iptunnel.o]Error 1
make: *** [_all] Error 2


解决办法:

1)试过修改iptunnel.c,注释里面ip.h的引用,可以编译通过,
2)Networking Utilities --->ip tunnel项不选也可解决问题(不知为何我取消不了)


3、移植网卡驱动:明明是按照天嵌的教程来移植的,修改了/driver/net/DM9000.c文件,但是烧上之后为啥就不行呢?(后来检查了一遍教程,不是教程写错了,是我没看到!!)

提示:

no device等等

route: SIOCADDRT: Network is unreachable

因为内核提供的网卡驱动的硬件配置没有修改?怎么修改?  在 arch/arm/mach-s3c2440/mach-smdk2440.c 里面的。

添加如下内容:

#include <linux/dm9000.h>


/* DM9000 */
static struct resource s3c_dm9k_resource[] = {
    [0] = {
        .start    = S3C2410_CS4,
        .end    = S3C2410_CS4 + 3,
        .flags    = IORESOURCE_MEM,
    },
    [1] = {
        .start    = S3C2410_CS4 + 4,
        .end    = S3C2410_CS4 + 4 + 3,
        .flags    = IORESOURCE_MEM,
    },
    [2] = {
        .start    = IRQ_EINT7,
        .end    = IRQ_EINT7,
        .flags    = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,
    }

};
static struct dm9000_plat_data s3c_dm9k_platdata = {
    .flags    = DM9000_PLATF_16BITONLY,
};

struct platform_device s3c_device_dm9000 = {
    .name        = "dm9000",
    .id            = 0,
    .num_resources    = ARRAY_SIZE(s3c_dm9k_resource),
    .resource        = s3c_dm9k_resource,
    .dev            = {
        .platform_data = &s3c_dm9k_platdata,
    }
};
/************************修改这段********************************************/
static struct platform_device *smdk2440_devices[] __initdata = {
    &s3c_device_usb,
    &s3c_device_lcd,
    &s3c_device_wdt,
    &s3c_device_i2c0,
    &s3c_device_iis,
    &s3c_device_dm9000,//只要添加这段就可以
};