說明:移植是按照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,//只要添加這段就可以
};