linux移植3g网卡,Linux3.4内核网卡驱动的移植

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Linux3.4内核网卡驱动的移植

作者:李老师,华清远见嵌入式学院讲师。

【实验目的】

通过上一篇文章我们能够获得一个内核,但是这个内核只是一个最基本的配置,很多的功能并没有包含。

网卡是嵌入式产品最常用的设备,这里我们需要完成网卡驱动的移植。FS_S5PC100使用的是DM9000网卡,我们通过这个实验能够了解如何在内核中添加网卡驱动及网络功能的基本配置。

【实验环境】

· 主机:Ubuntu 10.10 (64bit);

· 目标机:FS_S5PC100平台;

· 交叉编译工具链:arm-eabi-4.4.0(Android4.0.4自带交叉工具链);

【实验步骤】

1.平台代码修改

修改板级配置文件;

$ vim arch/arm/mach-s5pc100/mach-smdkc100.c

添加需要的头文件:

1 // vim arch/arm/mach-s5pc100/mach-smdkc100.c

2

3 #if defined (CONFIG_DM9000)

4 #include

5 #include

6 #endif

平台设备的添加:

01 /* DM9000 Support */

02

03 #if defined(CONFIG_DM9000)

04 static struct resource dm9000_resources[] = {

05 [0] = {

06 .start = 0x88000000,

07 .end = 0x88000000 + 0x3,

08 .flags = IORESOURCE_MEM,

09 },

10 [1] = {

11 .start = 0x88000000 + 0x4,

12 .end = 0x88000000 + 0x4 +0x3,

13 .flags = IORESOURCE_MEM,

14 },

15 [2] = {

16 .start = IRQ_EINT(10),

17 .end = IRQ_EINT(10),

18 .flags = IORESOURCE_IRQ | IRQ_TYPE_LEVEL_HIGH,

19 },

20 };

21

22 static struct dm9000_plat_data s5pc100_dm9000_platdata = {

23 .flags = DM9000_PLATF_16BITONLY,

24 .dev_addr[0] = 0x00,

25 .dev_addr[1] = 0x00,

26 .dev_addr[2] = 0x3e,

27 .dev_addr[3] = 0x26,

28 .dev_addr[4] = 0x0a,

29 .dev_addr[5] = 0x00,

30 };

31

32 static struct platform_device s5pc100_device_dm9000 = {

33 .name = "dm9000",

34 .id = -1,

35 .num_resources = ARRAY_SIZE(dm9000_resources),

36 .resource = dm9000_resources,

37 .dev = {

38 .platform_data = & s5pc100_dm9000_platdata,

39 }

40 };

41 #endif

平台设备列表的添加:

在smdkc100_devices[]结构体数组中添加如下内容:

1 // vim arch/arm/mach-s5pc100/mach-smdkc100.c

2

3 #ifdefined(CONFIG_DM9000)

4 &s5pc100_device_dm9000,

5 #endif

配置内核

$ make menuconfig

网络配置:

[*] Networking support (NEW) --->

Networking options --->

Packet socket

Unix domain sockets

[*] TCP/IP networking

[*] IP: multicasting

[*] IP: kernel level autoconfiguration

[*] IP: BOOTP support

<> The ipv6 protocol

网卡驱动配置:

Device Drivers --->

[*] Network device support --->

[*] Ethernet driver support --->

DM9000 support

网络文件系统的配置:

File systems --->

[*] Network File Systems --->

NFS client suppor

[*] NFS client support for NFS version 3

[*] NFS client support for the NFSv3 ACL protocol extension

[*] Root file system on NFS

编译内核

编译内核,并拷贝到tftpboot目录下。

$ make zImage

$ cp arch/arm/boot/zImage /tftpboot

测试

启动开发板,修改内核启动参数,通过NFS方式挂载根文件系统。

6fbd9e45ad39a73effd561a520e8e988.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值