*******************************************************************************************************************
#主机操作系统:CentOS 6.7
#交叉编译环境:arm-linux-gcc
#开发板平台 : fl440
#linux内核版本:linux-3.0
******************************************************************************************************************
之前我的根文件系统挂载起来之后,在开发板上输入ifconfig -a 发现我的以太网卡什么都没有,后来我一个朋友告诉我需要添加网卡驱动,于是
通过上网查资料,后来成功的添加了DM9000网卡驱动,过程比较简单但还是要总结一下!
1.修改内核源代码:
[zoulei@CentOS linux-3.0]$ vim arch/arm/mach-s3c2440/mach-smdk2440.c
#include <linux/dm9000.h> //添加DM9000网卡的头文件
/*并添加如下代码 */ #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.修改platform_device *smdk2440_devices[] __initdata结构体为如下,在其中添加启动DM9000
3.vim include/linux/dm9000.h 添加如下头文件
[zoulei@CentOS linux-3.0]$vim include/linux/dm9000.h4.make编译 [zoulei@CentOS linux-3.0]$ make
重新make之后,重新生成了linuxrom-s3c2440.bin的可执行文件,我们的内核文件就支持dm9000网卡了,将内核文件重新烧录到
开发板中运行你会发现这时候有网卡eth0了,这时候ping 192.168.1.115(虚拟机ip)也可以ping通。