主机操作系统: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.h
4.make编译
[zoulei@CentOS linux-3.0]$ make
重新make之后,重新生成了linuxrom-s3c2440.bin的可执行文件,我们的内核文件就支持dm9000网卡了,将内核文件重新烧录到开发板中运行你会发现这时候有网卡eth0了,这时候ping 192.168.1.115(虚拟机ip)也可以ping通。
本文永久更新地址://m.ajphoenix.com/linux/31147.html