linux内核-dm9000网卡驱动添加

时间:2021-06-27 12:23:37

*******************************************************************************************************************

#主机操作系统: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

linux内核-dm9000网卡驱动添加

3.vim include/linux/dm9000.h  添加如下头文件

 [zoulei@CentOS linux-3.0]$vim include/linux/dm9000.h
linux内核-dm9000网卡驱动添加

4.make编译 [zoulei@CentOS linux-3.0]$ make
linux内核-dm9000网卡驱动添加
重新make之后,重新生成了linuxrom-s3c2440.bin的可执行文件,我们的内核文件就支持dm9000网卡了,将内核文件重新烧录到
开发板中运行你会发现这时候有网卡eth0了,这时候ping 192.168.1.115(虚拟机ip)也可以ping通。 linux内核-dm9000网卡驱动添加