天天看点

【Linux基础】网络接口驱动移植

一、Linux-2.6.30 内核DM9000网卡驱动移植 网卡驱动选择Networking支持,及Network device support->Ethernet (10 or 100Mbit)->DM9000,这个对应的是l 00Mbit的以太网。 1 、在arch/arm/plat-s3c24xx/common-smdk.c 增加D的平台设备。Linux入门培训 #vim arch/arm/plat-s3c24xx/common-smdk.c 添加头文件及 DM9000平台设备结构 下面部分内容添加到static struct platform_device __initdata *smdk_devs[]结构体前面 #include <linux/dm9000.h> #if defined(CONFIG_DM9000)||(defined(CONFIG_DM9000_MODULE)) static struct resource s3c_dm9k_resource[]={ [0] = { .start = 0x10000000, .end = 0x10000003 , .flags = IORESOURCE_MEM, }, [1] = { .start = 0x11000000, .end = 0x11000003, .flags = IORESOURCE_MEM, }, [2] = { .start = IRQ_EINT0, .end = IRQ_EINT0, .flags = IORESOURCE_IRQ, } }; static struct dm9000_plat_data s3c_dm9k_platdata = { .flags = DM9000_PLATF_16BITONLY, }; static struct platform_device s3c_device_dm9k = { .name = "dm9000", .id = 0, .num_resources = ARRAY_SIZE(s3c_dm9k_resource), .resource = s3c_dm9k_resource, .dev = { .platform_data = &s3c_dm9k_platdata, } }; #endif (2) 在 static struct platform_device __initdata *smdk_devs[]C语言教程中加入网卡设备 static struct platform_device __initdata *smdk_devs[] = { &s3c_device_nand, &smdk_led4, &smdk_led5, &smdk_led6, &smdk_led7, &s3c_device_dm9k, }; 2 、 修改dm9000.c及dm9000.h文件 将当前dm9000目录下dm9000.c替代内核源码下driver/net/dm9000.c 将当前dm9000目录下dm9000.h替代内核源码下driver/net/dm9000.h 3 、 配置内核将 DM9000 编译入内核 #make menuconfig 做如下修改: Device Driver ---> Network device support ---> [ * ] Network device support Ethernet(10 or 100Mbit)---> < * >DM9000 support 再新编译 #make 至此,DM9000网卡可以驱动起来。可以使用ping指令尝试ping宿主机,但要注意ping的次数,一定要加上次数,应为此时的开发板系统是经过移植裁剪的系统,与宿主机系统有区别。ping时未加上次数限制,则会一直ping下去,令你无法操作C语言入门。 #ping -c4 192.168.2.100 //-c4指完成4次ping。 可能出现问题 现象如图 15‑14所示。
【Linux基础】网络接口驱动移植

01.jpg (24.03 KB, 下载次数: 1)

下载附件 保存到相册 设为封面

Linux入门培训网络接口驱动移植

昨天 21:17 上传

解决方法 第一种方法:将1269行的priv改为ml_priv 第二种方法: # vi include/linux/netdevice.h 修改net_device结构体如下 623 */ 624 // void *priv; 625 char name[IFNAMSIZ]; 本文转载于C语言程序设计,http://www.weicedu.com/thread-275845-1-1.html

继续阅读