Fl2440内核添加DM9000网卡驱动
2017-03-19 12:08
344 查看
上篇文章对于开发板启动之后无法与主机进行通信的原因进行了分析总结,其中原因之一是内核没有配置网卡驱动,这里就添加网卡驱动做一个总结。
1.检查内核是否有网卡驱动
使用 ifconfig -a 命令可以看到内核当中没有网卡驱动,接下来我们就在内核中添加网卡的配置。
![](https://img-blog.csdn.net/20170319115234773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRWRyb2lkMTUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170319151022922?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRWRyb2lkMTUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170319115247656?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRWRyb2lkMTUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170319121702180?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRWRyb2lkMTUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
到此,fl2440开发板的整个网卡驱动配置就已经完成了。
1.检查内核是否有网卡驱动
使用 ifconfig -a 命令可以看到内核当中没有网卡驱动,接下来我们就在内核中添加网卡的配置。
2.修改内核源码,添加网卡驱动编译
2-1.在mach-smdk2440.c文件中添加如下代码
[lwn@localhost linux-lwn-3.0.1]$ vim ./arch/arm/mach-s3c2440/mach-smdk2440.c #include <linux/dm9000.h> //添加DM9000网卡的头文件 /* add DM9000 ethernet drivers ,whitch is bodify by liuchengdeng */ #define DM9000_BASE (S3C2410_CS4 + 0x300) static struct resource s3c_dm9000_resource[] = { [0] = { .start = DM9000_BASE, .end = DM9000_BASE + 3, .flags = IORESOURCE_MEM }, [1] = { .start = DM9000_BASE + 4, .end = DM9000_BASE + 7, .flags = IORESOURCE_MEM }, [2] = { .start = IRQ_EINT7, .end = IRQ_EINT7, .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, } }; /* * The DM9000 has no eeprom, and it's MAC address is set by * the bootloader before starting the kernel. */ static struct dm9000_plat_data s3c_dm9000_pdata = { .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), }; static struct platform_device s3c_device_dm9000 = { .name = "dm9000", .id = -1, .num_resources = ARRAY_SIZE(s3c_dm9000_resource), .resource = s3c_dm9000_resource, .dev = { .platform_data = &s3c_dm9000_pdata, }, };
2-2.添加成员变量
在mach-smdk2440.c文件中的结构体platform_device *smdk2440_devices[] __initdata中添加如下成员变量。static struct platform_device *smdk2440_devices[] __initdata = { &s3c_device_ohci, &s3c_device_lcd, &s3c_device_wdt, &s3c_device_i2c0, &s3c_device_iis, &s3c_device_dm9000,//添加dm9000成员变量 };
2-3.添加头文件
在 dm9000.h中添加如下头文件vim include/linux/dm9000.h #ifndef __DM9000_PLATFORM_DATA #define __DM9000_PLATFORM_DATA __FILE__ #include <linux/io.h> //添加 linux/io.h 头文件 /* IO control flags */
3.网卡使能
使用make命令重新编译内核并烧录到开发板上,再使用ifconfig -a命令已经可以网卡驱动已经添加上了,但是此刻依然不能与主机通信,因为还没有配置ip,即网卡没有使能。3-1.暂时使能
下面 使用ifconfig命令将网卡使能。使能之后我们可以看到已经可以和主机进行通信了。3-2.永久使能
注意这个时候我们只是暂时性的使能了网卡,开发板下次启动的时候需要重新使能。如果我们想要网卡使能长期有效,修改开发板上的配置文件>: vim etc/init.d/S01_network #!/bin/bash ifconfig eth0 192.168.1.199 netmask 255.255.255.0
到此,fl2440开发板的整个网卡驱动配置就已经完成了。
相关文章推荐
- fl2440——移植USB驱动、内核添加USB支持、U盘挂载
- fl2440——添加DM9000网卡支持
- linux-2.6.35内核配置和网卡驱动添加 .
- S3c6410 linux内核移植(2)--- 添加dm9000网卡驱动
- fl2440——RTC(实时时钟)的学习、内核添加RTC支持
- linux-2.6.35内核移植—网卡驱动的添加
- 【技术支持】如何添加OV9650 camera驱动到FL2440 wince系统中
- fl2440——linux内核自带的led驱动添加
- linux内核-dm9000网卡驱动添加
- Linux 2.6.35内核配置和网卡驱动添加
- fl2440内核移植(四)——DM9000移植
- 在linux-2.6.29.1内核中修改添加DM9000的驱动
- fl2440内核自带按键驱动移植及hexdump命令
- 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通
- 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
- 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通
- FL2440移植LINUX-3.4.2(五)-- 添加DM9000的支持
- linux-2.6.35内核配置和网卡驱动添加
- U-Boot2010.06移植(2440)-----移植网卡DM9000驱动
- 内核linux-3.0移植到fl2440-----添加U盘,MMC和LCD驱动